Re: [PATCH v3 3/9] drm: bridge: analogix: Destroy connector when unbinding

From: jeffy
Date: Thu Apr 06 2017 - 08:20:51 EST


Hi Andrzej,

On 04/06/2017 03:19 PM, Andrzej Hajda wrote:
On 05.04.2017 10:29, Jeffy Chen wrote:
Normally we do this in drm_mode_config_cleanup. But analogix dp's
connector is allocated in bind, and freed after unbind. So we need
to destroy it in unbind to avoid further access.

Signed-off-by: Jeffy Chen <jeffy.chen@xxxxxxxxxxxxxx>

Reviewed-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx>

One comment below

---

Changes in v3: None
Changes in v2: None

drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
index 7b75f82..a96fd55 100644
--- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
+++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
@@ -1439,6 +1439,7 @@ void analogix_dp_unbind(struct device *dev, struct device *master,
struct analogix_dp_device *dp = dev_get_drvdata(dev);

analogix_dp_bridge_disable(dp->bridge);

Not related to the patch, but what about bridge, above it is only
disabled, but not detached, encoder cleanup code should do it but it is
also missing.
right, i should notice there's a drm_encoder_cleanup(dp->encoder) when failed to create bridge...thanx for pointing that out :)

Regards
Andrzej

+ dp->connector.funcs->destroy(&dp->connector);

if (dp->plat_data->panel) {
if (drm_panel_unprepare(dp->plat_data->panel))