[Letux-kernel] [PATCH letux] panel-boe-w667l: hack-fix disapble oopses
H. Nikolaus Schaller
hns at goldelico.com
Sat Dec 1 09:36:43 CET 2018
Hi Andreas,
> Am 01.12.2018 um 09:04 schrieb Andreas Kemnade <andreas at kemnade.info>:
>
> Hi,
>
> panel-dsi-cm also seems not to do in->opes->disable(),
> so maybe it should really be removed.
Yes, that should be right.
There are two aspects:
1. calling in->ops->disable is (was?) needed when chaining the panel behind the ssd2258 rotator chip so that it is informed about panel disable
2. there was a big change in 4.20-rc1 how in and in->ops are set up and passed down to panel drivers
The panel-dsi-cm is not prepared for such encoder chaining.
So it might or might not be necessary to keep it. All this is something which I wasn't able to debug so far.
Of course we should not call in->ops->disable if in->ops == NULL :)
So I will add your patch at least for debugging.
BR,
Nikolaus
>
> Regards,
> Andreas
>
> On Fri, 30 Nov 2018 23:09:09 +0100
> Andreas Kemnade <andreas at kemnade.info> wrote:
>
>> no idea if this is right, what the real fix is.
>> depends on:
>> https://patchwork.kernel.org/cover/10692757/
>>
>> Signed-off-by: Andreas Kemnade <andreas at kemnade.info>
>> ---
>> drivers/gpu/drm/omapdrm/displays/panel-boe-w677l.c | 10 +++++++++-
>> 1 file changed, 9 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/omapdrm/displays/panel-boe-w677l.c b/drivers/gpu/drm/omapdrm/displays/panel-boe-w677l.c
>> index 5db180711d79..b3a86d66b028 100644
>> --- a/drivers/gpu/drm/omapdrm/displays/panel-boe-w677l.c
>> +++ b/drivers/gpu/drm/omapdrm/displays/panel-boe-w677l.c
>> @@ -786,16 +786,24 @@ static void w677l_disable(struct omap_dss_device *dssdev)
>>
>> ddata->enabled = 0;
>> in->ops->dsi.disable_video_output(in, ddata->pixel_channel);
>> - in->ops->disable(in);
>> + dev_dbg(&ddata->pdev->dev, "disabled video()\n");
>> + if (in->ops->disable) {
>> + in->ops->disable(in);
>> + } else {
>> + dev_dbg(&ddata->pdev->dev, "no disable op??\n");
>> + }
>> + dev_dbg(&ddata->pdev->dev, "disabled in()\n");
>> mdelay(10);
>> w677l_reset(dssdev, true); /* activate reset */
>> w677l_regulator(dssdev, false); /* switch power off - after stopping video stream */
>> mdelay(20);
>> /* here we can also power off IOVCC */
>>
>> + dev_dbg(&ddata->pdev->dev, "unlock bus()\n");
>> in->ops->dsi.bus_unlock(in);
>>
>> mutex_unlock(&ddata->lock);
>> + dev_dbg(&ddata->pdev->dev, "disable finished)\n");
>>
>> dssdev->state = OMAP_DSS_DISPLAY_DISABLED;
>> }
>
> _______________________________________________
> http://projects.goldelico.com/p/gta04-kernel/
> Letux-kernel mailing list
> Letux-kernel at openphoenux.org
> http://lists.goldelico.com/mailman/listinfo.cgi/letux-kernel
More information about the Letux-kernel
mailing list