drm/msm: Centralize connector registration/unregistration

Move the drm_connector registration from the encoder(HDMI/DSI etc) drivers
to the msm platform driver. This will simplify the task of ensuring that
the connectors are registered only after the drm_device itself is
registered.

The connectors' destroy ops are made to use kzalloc instead of
devm_kzalloc to ensure that that the connectors can be successfully
unregistered when the msm driver module is removed. The memory for the
connectors is unallocated when drm_mode_config_cleanup() is called
during either during an error or during driver remove.

Signed-off-by: Archit Taneja <architt@codeaurora.org>
Signed-off-by: Rob Clark <robdclark@gmail.com>
This commit is contained in:
Archit Taneja
2016-05-02 11:05:53 +05:30
committed by Rob Clark
parent c899f93584
commit 8208ed931e
5 changed files with 26 additions and 62 deletions

View File

@@ -199,6 +199,8 @@ static int msm_unload(struct drm_device *dev)
drm_kms_helper_poll_fini(dev);
drm_connector_unregister_all(dev);
#ifdef CONFIG_DRM_FBDEV_EMULATION
if (fbdev && priv->fbdev)
msm_fbdev_free(dev);
@@ -414,6 +416,12 @@ static int msm_load(struct drm_device *dev, unsigned long flags)
goto fail;
}
ret = drm_connector_register_all(dev);
if (ret) {
dev_err(dev->dev, "failed to register connectors\n");
goto fail;
}
drm_mode_config_reset(dev);
#ifdef CONFIG_DRM_FBDEV_EMULATION