[PATCH] Revert "drm/bridge: lt9611: Do not generate HFP/HBP/HSA and EOT packet"
Marek Vasut
marex at denx.de
Wed Aug 2 17:29:44 UTC 2023
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 at denx.de>
>>> Cc: Robert Foss <rfoss at kernel.org>
>>> Cc: Jagan Teki <jagan at amarulasolutions.com>
>>> Cc: Dmitry Baryshkov <dmitry.baryshkov at linaro.org>
>>> Cc: Abhinav Kumar <quic_abhinavk at quicinc.com>
>>> Fixes: 8ddce13ae69 ("drm/bridge: lt9611: Do not generate HFP/HBP/HSA
>>> and EOT packet")
>>> Reported-by: Amit Pundir <amit.pundir at linaro.org>
>>> Link:
>>> https://lore.kernel.org/r/CAMi1Hd0TD=2z_=bcDrht3H_wiLvAFcv8Z-U_r_KUOoeMc6UMjw@mail.gmail.com/
>>> Signed-off-by: Neil Armstrong <neil.armstrong at linaro.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.
More information about the dri-devel
mailing list