diff --git a/drivers/gpu/drm/imx/imx-ldb.c b/drivers/gpu/drm/imx/imx-ldb.c index 72e612a6b07c2e38ae9ab253f7eff63d253b56af..aa51b73ddb0219461c7040e3e0a3ebfac66a1147 100644 --- a/drivers/gpu/drm/imx/imx-ldb.c +++ b/drivers/gpu/drm/imx/imx-ldb.c @@ -1482,6 +1482,14 @@ static void imx_ldb_unbind(struct device *dev, struct device *master, if (channel->panel) drm_panel_detach(channel->panel); + /* make sure the connector exists, and then cleanup */ + if (channel->connector.dev) + imx_drm_connector_destroy(&channel->connector); + + /* make sure the encoder exists, and then cleanup */ + if (channel->encoder.dev) + imx_drm_encoder_destroy(&channel->encoder); + kfree(channel->edid); i2c_put_adapter(channel->ddc); }