[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <a2a5fa44-90d5-d104-2268-29a14a27b514@denx.de>
Date: Wed, 2 Aug 2023 19:29:44 +0200
From: Marek Vasut <marex@...x.de>
To: Dmitry Baryshkov <dmitry.baryshkov@...aro.org>,
Neil Armstrong <neil.armstrong@...aro.org>,
Andrzej Hajda <andrzej.hajda@...el.com>,
Robert Foss <rfoss@...nel.org>,
Laurent Pinchart <Laurent.pinchart@...asonboard.com>,
Jonas Karlman <jonas@...boo.se>,
Jernej Skrabec <jernej.skrabec@...il.com>,
David Airlie <airlied@...il.com>,
Daniel Vetter <daniel@...ll.ch>
Cc: dri-devel@...ts.freedesktop.org, linux-kernel@...r.kernel.org,
Jagan Teki <jagan@...rulasolutions.com>,
Abhinav Kumar <quic_abhinavk@...cinc.com>,
Amit Pundir <amit.pundir@...aro.org>
Subject: Re: [PATCH] Revert "drm/bridge: lt9611: Do not generate HFP/HBP/HSA
and EOT packet"
On 8/2/23 15:16, Dmitry Baryshkov wrote:
> On 02/08/2023 15:07, Marek Vasut wrote:
>> On 8/2/23 10:52, Neil Armstrong wrote:
>>> This reverts commit [1] to fix display regression on the Dragonboard
>>> 845c
>>> (SDM845) devboard.
>>>
>>> There's a mismatch on the real action of the following flags:
>>> - MIPI_DSI_MODE_VIDEO_NO_HSA
>>> - MIPI_DSI_MODE_VIDEO_NO_HFP
>>> - MIPI_DSI_MODE_VIDEO_NO_HBP
>>> which leads to a non-working display on qcom platforms.
>>>
>>> [1] 8ddce13ae696 ("drm/bridge: lt9611: Do not generate HFP/HBP/HSA
>>> and EOT packet")
>>>
>>> Cc: Marek Vasut <marex@...x.de>
>>> Cc: Robert Foss <rfoss@...nel.org>
>>> Cc: Jagan Teki <jagan@...rulasolutions.com>
>>> Cc: Dmitry Baryshkov <dmitry.baryshkov@...aro.org>
>>> Cc: Abhinav Kumar <quic_abhinavk@...cinc.com>
>>> Fixes: 8ddce13ae69 ("drm/bridge: lt9611: Do not generate HFP/HBP/HSA
>>> and EOT packet")
>>> Reported-by: Amit Pundir <amit.pundir@...aro.org>
>>> Link:
>>> https://lore.kernel.org/r/CAMi1Hd0TD=2z_=bcDrht3H_wiLvAFcv8Z-U_r_KUOoeMc6UMjw@mail.gmail.com/
>>> Signed-off-by: Neil Armstrong <neil.armstrong@...aro.org>
>>
>> This breaks LT9611 operation on i.MX8M Mini/Nano/Plus, so, NAK.
>>
>> I am currently using this LT9611 with Linux 6.1.y in production and
>> this is not acceptable. I also believe the correct fix is on the MSM
>> side, not on the LT9611 driver side, since MSM incorrectly implements
>> these flags.
>
> There is no indication that MSM gets these flags wrong.
>
> Let me quote the DSI 1.3 (I think Abhinav already quoted DSI 1.2).
>
> Chapter 8.11.1 Transmission Packet Sequences:
>
> ========
> If a peripheral timing specification for HBP or HFP minimum period is
> zero, the corresponding Blanking
> Packet may be omitted. If the HBP or HFP maximum period is zero, the
> corresponding blanking packet
> shall be omitted.
> ========
>
> Next, chapter 8.11.2 Non-Burst Mode with Sync Pulses
>
> ======
> Normally, periods shown as HSA (Horizontal Sync Active), HBP (Horizontal
> Back Porch) and HFP
> (Horizontal Front Porch) are filled by Blanking Packets, with lengths
> (including packet overhead)
> calculated to match the period specified by the peripheral’s data sheet.
> Alternatively, if there is sufficient
> time to transition from HS to LP mode and back again, a timed interval
> in LP mode may substitute for a
> Blanking Packet, thus saving power. During HSA, HBP and HFP periods, the
> bus should stay in the LP-11
> state.
> ========
>
> So, by the spec, sending the HSA / HBP / HFP as blanking packets should
> always be accepted (and it is the default mode). Switching to LP-11
> should be permitted if there is a sufficient time to switch to LP-11 and
> back. Not sending the packets is only possible if the peripheral
> (lt9611) says so.
>
> We already know that lt9611 breaks if we try switching to LP-11 during
> this period. We know that the there is a requirement time for the HSA /
> HBP / HFP, because the HDMI monitor needs them. Thus, I can only
> emphasise that the behaviour before the offending patch was correct.
>
> Last, but not least, breaking the in-kernel platform for the out-of-tree
> peripheral doesn't sound correct.
Except the MX8M support is all in-tree now, so please drop the
"out-of-tree" argument. That I am using 6.1.y on those platforms in
production makes no difference.
> I can only propose the following steps:
>
> 1. land the revert to unbreak existing users.
That's just trading breaking one set of users for breaking another set
of users.
> 2. Marek to propose and land the DT bindings & driver change that will
> enable the workaround for the particular platform (i.MX8m).
Since I have no access to the QCOM hardware or datasheet, can you have a
look at the NXP.com MX8M M/N/P datasheets (those are available) and
compare their behavior with the QCOM behavior ? I assume you do have the
QCOM datasheets available.
Powered by blists - more mailing lists