Re: [PATCH v3 00/16] eDP: Support probing eDP panels dynamically instead of hardcoding

From: Andrzej Hajda
Date: Thu Sep 02 2021 - 18:10:23 EST



Removed most CC: SMTP server protested.

On 01.09.2021 22:19, Douglas Anderson wrote:
> The goal of this patch series is to move away from hardcoding exact
> eDP panels in device tree files. As discussed in the various patches
> in this series (I'm not repeating everything here), most eDP panels
> are 99% probable and we can get that last 1% by allowing two "power
> up" delays to be specified in the device tree file and then using the
> panel ID (found in the EDID) to look up additional power sequencing
> delays for the panel.
>
> This patch series is the logical contiunation of a previous patch
> series where I proposed solving this problem by adding a
> board-specific compatible string [1]. In the discussion that followed
> it sounded like people were open to something like the solution
> proposed in this new series.
>
> In version 2 I got rid of the idea that we could have a "fallback"
> compatible string that we'd use if we didn't recognize the ID in the
> EDID. This simplifies the bindings a lot and the implementation
> somewhat. As a result of not having a "fallback", though, I'm not
> confident in transitioning any existing boards over to this since
> we'll have to fallback to very conservative timings if we don't
> recognize the ID from the EDID and I can't guarantee that I've seen
> every panel that might have shipped on an existing product. The plan
> is to use "edp-panel" only on new boards or new revisions of old
> boards where we can guarantee that every EDID that ships out of the
> factory has an ID in the table.
>
> Version 3 of this series now splits out all eDP panels to their own
> driver and adds the generic eDP panel support to this new driver. I
> believe this is what Sam was looking for [2].
>
> [1] https://lore.kernel.org/r/YFKQaXOmOwYyeqvM@xxxxxxxxxx/
> [2] https://lore.kernel.org/r/YRTsFNTn%2FT8fLxyB@xxxxxxxxxxxx/
>
I like the idea - if something can be configured dynamically lets do it.
But I have few questions:
1. Have you read different real panels id's? In many cases (MIPI DSI,
LVDS with EDID) manufacturers often forgot to set proper id fields. I do
not know how EDID's ids are reliable in case of edp panels.
2. You are working with edp panels - beside EDID they have DPCD which
contains things like IEEE_OUI and "Device Identification String", I
guess they could be also used for detecting panels, have you considered
it? I think DPCD Id should be assigned to EDP-Sink interface, and EDID
Id to the actual panel behind it. With this assumption one could
consider which timings should be property of which entity.


Regards
Andrzej