Hi,
* Tomi Valkeinen tomi.valkeinen@ideasonboard.com [210316 14:12]:
Hi Sebastian, Sam, Thierry,
On 27/02/2021 23:45, Sebastian Reichel wrote:
From: Sebastian Reichel sre@kernel.org
Disable TE for Droid 4 panel, since implementation is currently broken. Also disable it for N950 panel, which is untested.
Reported-by: Tony Lindgren tony@atomide.com Reported-by: Tomi Valkeinen tomi.valkeinen@ideasonboard.com Fixes: 4c1b935fea54 ("drm/omap: dsi: move TE GPIO handling into core") Signed-off-by: Sebastian Reichel sre@kernel.org
I suggest to start by fix the regression like this and look into proper Droid 4 TE support separatly. Assumption is, that Tomi tested taal panel, droid4 panel is 'broken' and N950 (himalaya) is untested [*], so choosing safe default. Patch is compile-tested only.
[*] N950 display is not yet functional on mainline, since it needs the omap3 FIFO workaround: https://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-n900.git/commit/?h...
drivers/gpu/drm/panel/panel-dsi-cm.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-)
Reviewed-by: Tomi Valkeinen tomi.valkeinen@ideasonboard.com
Sam, Thierry, will you pick this up or can I push to drm-misc-fixes?
Looks like this regression fix is still pending, can you guys please apply?
Regards,
Tony
diff --git a/drivers/gpu/drm/panel/panel-dsi-cm.c b/drivers/gpu/drm/panel/panel-dsi-cm.c index af381d756ac1..5fbfb71ca3d9 100644 --- a/drivers/gpu/drm/panel/panel-dsi-cm.c +++ b/drivers/gpu/drm/panel/panel-dsi-cm.c @@ -37,6 +37,7 @@ struct dsic_panel_data { u32 height_mm; u32 max_hs_rate; u32 max_lp_rate;
- bool te_support; }; struct panel_drv_data {
@@ -334,9 +335,11 @@ static int dsicm_power_on(struct panel_drv_data *ddata) if (r) goto err;
- r = mipi_dsi_dcs_set_tear_on(ddata->dsi, MIPI_DSI_DCS_TEAR_MODE_VBLANK);
- if (r)
goto err;
- if (ddata->panel_data->te_support) {
r = mipi_dsi_dcs_set_tear_on(ddata->dsi, MIPI_DSI_DCS_TEAR_MODE_VBLANK);
if (r)
goto err;
- } /* possible panel bug */ msleep(100);
@@ -619,6 +622,7 @@ static const struct dsic_panel_data taal_data = { .height_mm = 0, .max_hs_rate = 300000000, .max_lp_rate = 10000000,
- .te_support = true, }; static const struct dsic_panel_data himalaya_data = {
@@ -629,6 +633,7 @@ static const struct dsic_panel_data himalaya_data = { .height_mm = 88, .max_hs_rate = 300000000, .max_lp_rate = 10000000,
- .te_support = false, }; static const struct dsic_panel_data droid4_data = {
@@ -639,6 +644,7 @@ static const struct dsic_panel_data droid4_data = { .height_mm = 89, .max_hs_rate = 300000000, .max_lp_rate = 10000000,
- .te_support = false, }; static const struct of_device_id dsicm_of_match[] = {