Hi,
On 05/12/2020 20:15, Sam Ravnborg wrote:
Hi Neil,
+static int khadas_ts050_panel_probe(struct mipi_dsi_device *dsi) +{
- struct khadas_ts050_panel *khadas_ts050;
- int err;
- dsi->lanes = 4;
- dsi->format = MIPI_DSI_FMT_RGB888;
- dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST |
MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_EOT_PACKET;
- khadas_ts050 = devm_kzalloc(&dsi->dev, sizeof(*khadas_ts050),
GFP_KERNEL);
- if (!khadas_ts050)
return -ENOMEM;
- mipi_dsi_set_drvdata(dsi, khadas_ts050);
- khadas_ts050->link = dsi;
- err = khadas_ts050_panel_add(khadas_ts050);
- if (err < 0)
return err;
- return mipi_dsi_attach(dsi);
+}
If mipi_dsi_attach() failes then da a drm_panel_remove() like this:
ret = mipi_dsi_attach(dsi); if (ret) drm_panel_remove(&khadas_ts050->base);
return ret;
This is again something several panels gets wrong.
With this fixed: Reviewed-by: Sam Ravnborg sam@ravnborg.org
I assume you will fix it while applying.
Sure, thanks !
Neil
Sam