linux/drivers/gpu/drm/bridge
Douglas Anderson b137406d96 drm/bridge: ti-sn65dsi86: If refclk, DP AUX can happen w/out pre-enable
Let's reorganize how we init and turn on the reference clock in the
code to allow us to turn it on early (even before pre_enable()) so
that we can read the EDID early. This is handy for eDP because:
- We always assume that a panel is there.
- Once we report that a panel is there we get asked to read the EDID.
- Pre-enable isn't called until we know what pixel clock we want to
  use and we're ready to turn everything on. That's _after_ we get
  asked to read the EDID.

NOTE: the above only works out OK if we "refclk" is provided. Though I
don't have access to any hardware that uses ti-sn65dsi86 and _doesn't_
provide a "refclk", I believe that we'll have trouble reading the EDID
at bootup in that case. Specifically I believe that if there's no
"refclk" we need the MIPI source clock to be active before we can
successfully read the EDID. My evidence here is that, in testing, I
couldn't read the EDID until I turned on the DPPLL in the bridge chip
and that the DPPLL needs the input clock to be active.

Since this is hard to support, let's punt trying to handle this case
if there's no "refclk". In that case we'll enable comms in
pre_enable() like we always did.

I don't believe there are any users of the ti-sn65dsi86 bridge chip
that _don't_ use "refclk". The bridge chip is _very_ inflexible in
that mode. The only time I've seen that mode used was for some really
early prototype hardware that was thrown in the e-waste bin years ago
when we realized how inflexible it was.

Even if someone is using the bridge chip without the "refclk" they're
in no worse shape than they were before the (fairly recent) commit
58074b08c0 ("drm/bridge: ti-sn65dsi86: Read EDID blob over DDC").

Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20210423095743.v5.13.Ie8cf556114953c6e7634564cc0d3ddbd103cb96c@changeid
2021-05-03 13:21:08 -07:00
..
adv7511 drm: bridge: adv7511: Support I2S IEC958 encoded PCM format 2021-04-23 10:30:07 +02:00
analogix drm/bridge: anx7625: Fix power on delay 2021-04-28 17:45:51 +02:00
cadence drm/dp: Add backpointer to drm_device in drm_dp_aux 2021-04-27 18:43:42 -04:00
synopsys drm/bridge/synopsys: dw-hdmi: Add an option to suppress loading CEC driver 2021-04-20 17:22:38 +02:00
cdns-dsi.c
chipone-icn6211.c drm: bridge: Add Chipone ICN6211 MIPI-DSI to RGB bridge 2021-03-25 17:46:08 +01:00
chrontel-ch7033.c
display-connector.c drm/bridge: display-connector: add DP support 2020-12-08 13:01:10 +02:00
ite-it66121.c drm: bridge: add it66121 driver 2021-04-21 13:51:29 +02:00
Kconfig drm/bridge: ti-sn65dsi86: Break GPIO and MIPI-to-eDP bridge into sub-drivers 2021-05-03 13:21:08 -07:00
lontium-lt8912b.c A few fixes for the next merge window, with some build fixes for anx7625 2021-04-23 13:53:07 +10:00
lontium-lt9611.c drm/bridge: lt9611: Fix handling of 4k panels 2021-03-25 16:18:31 +01:00
lontium-lt9611uxc.c drm: bridge: convert sysfs sprintf/snprintf family to sysfs_emit 2021-03-25 17:26:22 +01:00
lvds-codec.c drm/bridge: lvds-codec: Use dev_err_probe for error handling 2020-11-08 15:45:55 +01:00
Makefile drm: bridge: add it66121 driver 2021-04-21 13:51:29 +02:00
megachips-stdpxxxx-ge-b850v3-fw.c drm/brige/megachips: Add checking if ge_b850v3_lvds_init() is working correctly 2020-08-23 17:08:51 +02:00
nwl-dsi.c drm/bridge: nwl-dsi: Get MIPI DSI controller and PHY ready in ->mode_set() 2021-04-30 10:39:28 +02:00
nwl-dsi.h
nxp-ptn3460.c
panel.c drm: bridge/panel: Cleanup connector on bridge detach 2021-03-29 16:46:01 +01:00
parade-ps8622.c
parade-ps8640.c drm/bridge: ps8640: Rework power state handling 2020-09-15 15:12:24 +02:00
sii902x.c drm/bridge: sii902x: Enable I/O and core VCC supplies if present 2020-11-08 11:53:37 +01:00
sii9234.c
sil-sii8620.c
sil-sii8620.h
simple-bridge.c
tc358762.c drm/bridge: tc358762: Add basic driver for Toshiba TC358762 DSI-to-DPI bridge 2020-08-12 22:06:18 +02:00
tc358764.c drm/bridge: tc358764: restore connector support 2020-10-05 16:25:25 +02:00
tc358767.c drm/dp: Add backpointer to drm_device in drm_dp_aux 2021-04-27 18:43:42 -04:00
tc358768.c
tc358775.c drm/bridge/tc358775: Remove unneeded semicolon 2020-09-10 08:46:24 +02:00
thc63lvd1024.c drm/bridge: thc63lvd1024: Fix regulator_get_optional() misuse 2021-01-05 07:19:48 +02:00
ti-sn65dsi86.c drm/bridge: ti-sn65dsi86: If refclk, DP AUX can happen w/out pre-enable 2021-05-03 13:21:08 -07:00
ti-tfp410.c
ti-tpd12s015.c drm/bridge: tpd12s015: Fix irq registering in tpd12s015_probe 2020-11-05 22:09:09 +01:00