Message ID | 20210901201934.1084250-1-dianders@chromium.org |
---|---|
Headers | show |
Series | eDP: Support probing eDP panels dynamically instead of hardcoding | expand |
Hi, On Sun, Sep 5, 2021 at 11:55 AM Sam Ravnborg <sam@ravnborg.org> wrote: > > Hi Douglas, > > On Wed, Sep 01, 2021 at 01:19:18PM -0700, 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@google.com/ > > [2] https://lore.kernel.org/r/YRTsFNTn%2FT8fLxyB@ravnborg.org/ > > > > Changes in v3: > > - Decode hex product ID w/ same endianness as everyone else. > > - ("Reorder logicpd_type_28...") patch new for v3. > > - Split eDP panels patch new for v3. > > - Move wayward panels patch new for v3. > > - ("Non-eDP panels don't need "HPD" handling") new for v3. > > - Split the delay structure out patch just on eDP now. > > - ("Better describe eDP panel delays") new for v3. > > - Fix "prepare_to_enable" patch new for v3. > > - ("Don't re-read the EDID every time") moved to eDP only patch. > > - Generic "edp-panel" handled by the eDP panel driver now. > > - Change init order to we power at the end. > > - Adjust endianness of product ID. > > - Fallback to conservative delays if panel not recognized. > > - Add Sharp LQ116M1JW10 to table. > > - Add AUO B116XAN06.1 to table. > > - Rename delays more generically so they can be reused. > > > > Changes in v2: > > - No longer allow fallback to panel-simple. > > - Add "-ms" suffix to delays. > > - Don't support a "fallback" panel. Probed panels must be probed. > > - Not based on patch to copy "desc"--just allocate for probed panels. > > - Add "-ms" suffix to delays. > > > > Douglas Anderson (16): > > dt-bindings: drm/panel-simple-edp: Introduce generic eDP panels > > drm/edid: Break out reading block 0 of the EDID > > drm/edid: Allow the querying/working with the panel ID from the EDID > > drm/panel-simple: Reorder logicpd_type_28 / mitsubishi_aa070mc01 > > drm/panel-simple-edp: Split eDP panels out of panel-simple > > ARM: configs: Everyone who had PANEL_SIMPLE now gets PANEL_SIMPLE_EDP > > arm64: defconfig: Everyone who had PANEL_SIMPLE now gets > > PANEL_SIMPLE_EDP > > MIPS: configs: Everyone who had PANEL_SIMPLE now gets PANEL_SIMPLE_EDP > > drm/panel-simple-edp: Move some wayward panels to the eDP driver > > drm/panel-simple: Non-eDP panels don't need "HPD" handling > > drm/panel-simple-edp: Split the delay structure out > > drm/panel-simple-edp: Better describe eDP panel delays > > drm/panel-simple-edp: hpd_reliable shouldn't be subtraced from > > hpd_absent > > drm/panel-simple-edp: Fix "prepare_to_enable" if panel doesn't handle > > HPD > > drm/panel-simple-edp: Don't re-read the EDID every time we power off > > the panel > > drm/panel-simple-edp: Implement generic "edp-panel"s probed by EDID > > Thanks for looking into this. I really like the outcome. > We have panel-simple that now (mostly) handle simple panels, > and thus all the eDP functionality is in a separate driver. > > I have provided a few nits. > My only take on this is the naming - as we do not want to confuse > panel-simple and panel-edp I strongly suggest renaming the driver to > panel-edp. Sure, I'll do that. I was trying to express the fact that the new "panel-edp" driver won't actually handle _all_ eDP panels, only the eDP panels that are (comparatively) simpler. For instance, I'm not planning to handle panel-samsung-atna33xc20.c in "panel-edp". I guess people will figure it out, though. > And then rename the corresponding Kconfig entry. > > With these few changes all patches are: > Acked-by: Sam Ravnborg <sam@ravnborg.org> Thanks, I'll add it to the patches. If there's anything major I need to change I'll give you a yell to make sure you see it. > For bisectability I suggest to move the defconfig patches up before you > introduce the new Kconfig symbol. Or maybe they will be added via > another tree and then this is not possible to control Yup, I'll do that. There was some question about the defconfig patch but they are hopefully cleared up now. > I assume you will apply the patches yourself. Sure, I can do that with your Ack. I'll also make sure that patches that Jani commented on get resolved. -Doug