summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/imx/parallel-display.c
diff options
context:
space:
mode:
authorPhilipp Zabel <p.zabel@pengutronix.de>2016-08-29 11:13:27 +0200
committerPhilipp Zabel <p.zabel@pengutronix.de>2016-08-29 16:30:48 +0200
commitc15d493cb636f331898f40c5c6989e9deee62b09 (patch)
treee2c459e57a104671f78b2df471bb40ebcf18687f /drivers/gpu/drm/imx/parallel-display.c
parent60203c90bfec627b619643523cbc17f0005964f7 (diff)
downloadlinux-0-day-c15d493cb636f331898f40c5c6989e9deee62b09.tar.gz
linux-0-day-c15d493cb636f331898f40c5c6989e9deee62b09.tar.xz
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/parallel-display.c')
-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 f203337907283..d796ada2a47ab 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);
}