summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/imx
diff options
context:
space:
mode:
authorPhilipp Zabel2016-08-29 11:13:27 +0200
committerPhilipp Zabel2016-08-29 16:30:48 +0200
commitc15d493cb636f331898f40c5c6989e9deee62b09 (patch)
treee2c459e57a104671f78b2df471bb40ebcf18687f /drivers/gpu/drm/imx
parentdrm/imx: imx-ldb: detach bridge on unbind (diff)
downloadkernel-qcow2-linux-c15d493cb636f331898f40c5c6989e9deee62b09.tar.gz
kernel-qcow2-linux-c15d493cb636f331898f40c5c6989e9deee62b09.tar.xz
kernel-qcow2-linux-c15d493cb636f331898f40c5c6989e9deee62b09.zip
drm/imx: parallel-display: detach bridge or panel on unbind
Don't leave any bridge or panel attached to a stale driver instance when unbinding, to allow reattachment on a rebind. Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Diffstat (limited to 'drivers/gpu/drm/imx')
-rw-r--r--drivers/gpu/drm/imx/parallel-display.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/gpu/drm/imx/parallel-display.c b/drivers/gpu/drm/imx/parallel-display.c
index f20333790728..d796ada2a47a 100644
--- a/drivers/gpu/drm/imx/parallel-display.c
+++ b/drivers/gpu/drm/imx/parallel-display.c
@@ -293,6 +293,11 @@ static void imx_pd_unbind(struct device *dev, struct device *master,
{
struct imx_parallel_display *imxpd = dev_get_drvdata(dev);
+ if (imxpd->bridge)
+ drm_bridge_detach(imxpd->bridge);
+ if (imxpd->panel)
+ drm_panel_detach(imxpd->panel);
+
kfree(imxpd->edid);
}