diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c b/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c index 6e03d9b0be60c..c2afc4368553a 100644 --- a/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c +++ b/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c @@ -888,6 +888,7 @@ static int ili9881c_dsi_probe(struct mipi_dsi_device *dsi) ctx->dsi = dsi; ctx->desc = of_device_get_match_data(&dsi->dev); + ctx->panel.prepare_upstream_first = true; drm_panel_init(&ctx->panel, &dsi->dev, &ili9881c_funcs, DRM_MODE_CONNECTOR_DSI); @@ -913,7 +914,11 @@ static int ili9881c_dsi_probe(struct mipi_dsi_device *dsi) dsi->format = MIPI_DSI_FMT_RGB888; dsi->lanes = 4; - return mipi_dsi_attach(dsi); + ret = mipi_dsi_attach(dsi); + if (ret) + drm_panel_remove(&ctx->panel); + + return ret; } static int ili9881c_dsi_remove(struct mipi_dsi_device *dsi)