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:
@@ -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
|
||||
|
Reference in New Issue
Block a user