Commit 2390cd11bfbe8d2b1b28c4e0f01fe7e122f7196d

Authored by Dave Airlie
1 parent 40377ef2d9

drm/crtc: add interface to reinitialise the legacy mode group

This can be called to update things after dynamic connectors/encoders
are created/deleted.

Reviewed-by: Todd Previte <tprevite@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>

Showing 2 changed files with 10 additions and 0 deletions Side-by-side Diff

drivers/gpu/drm/drm_crtc.c
... ... @@ -1513,6 +1513,15 @@
1513 1513 }
1514 1514 EXPORT_SYMBOL(drm_mode_group_init_legacy_group);
1515 1515  
  1516 +void drm_reinit_primary_mode_group(struct drm_device *dev)
  1517 +{
  1518 + drm_modeset_lock_all(dev);
  1519 + drm_mode_group_destroy(&dev->primary->mode_group);
  1520 + drm_mode_group_init_legacy_group(dev, &dev->primary->mode_group);
  1521 + drm_modeset_unlock_all(dev);
  1522 +}
  1523 +EXPORT_SYMBOL(drm_reinit_primary_mode_group);
  1524 +
1516 1525 /**
1517 1526 * drm_crtc_convert_to_umode - convert a drm_display_mode into a modeinfo
1518 1527 * @out: drm_mode_modeinfo struct to return to the user
include/drm/drm_crtc.h
... ... @@ -942,6 +942,7 @@
942 942 extern void drm_fb_release(struct drm_file *file_priv);
943 943 extern int drm_mode_group_init_legacy_group(struct drm_device *dev, struct drm_mode_group *group);
944 944 extern void drm_mode_group_destroy(struct drm_mode_group *group);
  945 +extern void drm_reinit_primary_mode_group(struct drm_device *dev);
945 946 extern bool drm_probe_ddc(struct i2c_adapter *adapter);
946 947 extern struct edid *drm_get_edid(struct drm_connector *connector,
947 948 struct i2c_adapter *adapter);