JFYI I haven't had a chance yet but I'm hoping to look at this this week On Mon, 2021-05-17 at 13:08 -0700, Douglas Anderson wrote: > The primary goal of this series is to try to properly fix EDID reading > for eDP panels using the ti-sn65dsi86 bridge. > > Previously we had a patch that added EDID reading but it turned out > not to work at bootup. This caused some extra churn at bootup as we > tried (and failed) to read the EDID several times and also ended up > forcing us to use the hardcoded mode at boot. With this patch series I > believe EDID reading is reliable at boot now and we never use the > hardcoded mode. > > High level note: in this series the EDID reading is driven by the > panel driver, not by the bridge chip driver. I believe this makes a > reasonable amount of sense since the panel driver already _could_ > drive reading the EDID if provided with the DDC bus and in future > planned work we'll want to give the panel driver the DDC bus (to make > decisions based on EDID) and the AUX bus (to control the > backlight). There are also planned patches from Laurent to make > ti-sn65dsi86 able to drive full DP monitors. In that case the bridge > chip will still be in charge of reading the EDID, but it's not hard to > make this dynamic. > > This series is the logical successor to the 3-part series containing > the patch ("drm/bridge: ti-sn65dsi86: Properly get the EDID, but only > if refclk") [1]. > > This patch was tested against drm-misc-next commit 60a6b73dd821 > ("drm/ingenic: Fix pixclock rate for 24-bit serial panels") on a > sc7180-trogdor-lazor device. > > At v7 now, this patch series grew a bit from v6 because it introduces > the DP AUX bus. > > Between v2 and v3, high-level view of changes: > - stop doing the EDID caching in the core. > > Between v3 and v4, high-level view of changes: > - EDID reading is actually driven by the panel driver now. See above. > - Lots of chicken-and-egg problems solved w/ sub-devices. > > Between v4 and v5, high-level view of changes. > - Some of the early patches landed, so dropped from series. > - New pm_runtime_disable() fix (fixed a patch that already landed). > - Added Bjorn's tags to most patches > - Fixed problems when building as a module. > - Reordered debugfs patch and fixed error handling there. > - Dropped last patch. I'm not convinced it's safe w/out more work. > > Between v5 and v6, high-level view of changes: > - Added the patch ("drm/dp: Allow an early call to register DDC i2c > bus") > - Many patches had been landed, so only a few "controversial" ones > left. > > Between v6 and v7, high-level view of changes: > - New AUX DP bus! > > [1] > https://lore.kernel.org/r/20210304155144.3.I60a7fb23ce4589006bc95c64ab8d15c74b876e68@changeid/ > > Changes in v7: > - pm_runtime_dont_use_autosuspend() fix new for v7. > - List hpd properties bindings patch new for v7. > - ti-sn65dsi86: Add aux-bus child patch new for v7. > - Patch introducing the DP AUX bus is new for v7. > - Patch to allow panel-simple to be DP AUX EP new for v7. > - Patch using the DP AUX for DDC new for v7. > - Remove use of now-dropped drm_dp_aux_register_ddc() call. > - Beefed up commit message in context of the DP AUX bus. > - Set the proper sub-device "dev" pointer in the AUX structure. > - Patch to support for DP AUX bus on ti-sn65dsi86 new for v7. > - Adjusted commit message to talk about DP AUX bus. > - Panel now under bridge chip instead of getting a link to ddc-i2c > > Changes in v6: > - Use new drm_dp_aux_register_ddc() calls. > > Douglas Anderson (10): > drm/panel: panel-simple: Add missing pm_runtime_dont_use_autosuspend() > calls > dt-bindings: display: simple: List hpd properties in panel-simple > dt-bindings: drm/bridge: ti-sn65dsi86: Add aux-bus child > drm: Introduce the DP AUX bus > drm/panel: panel-simple: Allow panel-simple be a DP AUX endpoint > device > drm/panel: panel-simple: Stash DP AUX bus; allow using it for DDC > drm/bridge: ti-sn65dsi86: Promote the AUX channel to its own sub-dev > drm/bridge: ti-sn65dsi86: Add support for the DP AUX bus > drm/bridge: ti-sn65dsi86: Don't read EDID blob over DDC > arm64: dts: qcom: sc7180-trogdor: Move panel under the bridge chip > > .../bindings/display/bridge/ti,sn65dsi86.yaml | 22 +- > .../bindings/display/panel/panel-simple.yaml | 2 + > arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi | 30 +- > drivers/gpu/drm/Kconfig | 5 + > drivers/gpu/drm/Makefile | 2 + > drivers/gpu/drm/bridge/Kconfig | 1 + > drivers/gpu/drm/bridge/ti-sn65dsi86.c | 111 ++++-- > drivers/gpu/drm/drm_dp_aux_bus.c | 322 ++++++++++++++++++ > drivers/gpu/drm/panel/Kconfig | 1 + > drivers/gpu/drm/panel/panel-simple.c | 66 +++- > include/drm/drm_dp_aux_bus.h | 57 ++++ > 11 files changed, 563 insertions(+), 56 deletions(-) > create mode 100644 drivers/gpu/drm/drm_dp_aux_bus.c > create mode 100644 include/drm/drm_dp_aux_bus.h > -- Sincerely, Lyude Paul (she/her) Software Engineer at Red Hat Note: I deal with a lot of emails and have a lot of bugs on my plate. If you've asked me a question, are waiting for a review/merge on a patch, etc. and I haven't responded in a while, please feel free to send me another email to check on my status. I don't bite!