Skip to content

Commit

Permalink
drm/rockchip: register all connectors after bind
Browse files Browse the repository at this point in the history
Register connectors with userspace after all components are bound.

Signed-off-by: Daniel Kurtz <djkurtz@chromium.org>
Reviewed-by: Dominik Behr <dbehr@chromium.org>

drm_connector_get_name -> connector->name
This patch is necessary to make X11 see screens it seems.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
  • Loading branch information
Daniel Kurtz authored and Mark Yao committed Apr 3, 2015
1 parent 7f53fbb commit d3007da
Showing 1 changed file with 19 additions and 0 deletions.
19 changes: 19 additions & 0 deletions drivers/gpu/drm/rockchip/rockchip_drm_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,7 @@ static int rockchip_drm_load(struct drm_device *drm_dev, unsigned long flags)
struct rockchip_drm_private *private;
struct dma_iommu_mapping *mapping;
struct device *dev = drm_dev->dev;
struct drm_connector *connector;
int ret;

private = devm_kzalloc(drm_dev->dev, sizeof(*private), GFP_KERNEL);
Expand Down Expand Up @@ -171,6 +172,23 @@ static int rockchip_drm_load(struct drm_device *drm_dev, unsigned long flags)
if (ret)
goto err_detach_device;

/*
* All components are now added, we can publish the connector sysfs
* entries to userspace. This will generate hotplug events and so
* userspace will expect to be able to access DRM at this point.
*/
list_for_each_entry(connector, &drm_dev->mode_config.connector_list,
head) {
ret = drm_connector_register(connector);
if (ret) {
dev_err(drm_dev->dev,
"[CONNECTOR:%d:%s] drm_connector_register failed: %d\n",
connector->base.id,
connector->name, ret);
goto err_unbind;
}
}

/* init kms poll for handling hpd */
drm_kms_helper_poll_init(drm_dev);

Expand Down Expand Up @@ -200,6 +218,7 @@ static int rockchip_drm_load(struct drm_device *drm_dev, unsigned long flags)
drm_vblank_cleanup(drm_dev);
err_kms_helper_poll_fini:
drm_kms_helper_poll_fini(drm_dev);
err_unbind:
component_unbind_all(dev, drm_dev);
err_detach_device:
arm_iommu_detach_device(dev);
Expand Down

0 comments on commit d3007da

Please sign in to comment.