linux-arm-msm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v6 00/21] drm/bridge: Make panel and bridge probe order consistent
@ 2021-10-25 15:15 Maxime Ripard
  2021-10-25 15:15 ` [PATCH v6 01/21] drm/bridge: adv7533: Switch to devm MIPI-DSI helpers Maxime Ripard
                   ` (20 more replies)
  0 siblings, 21 replies; 48+ messages in thread
From: Maxime Ripard @ 2021-10-25 15:15 UTC (permalink / raw)
  To: Thierry Reding, Laurent Pinchart, Andrzej Hajda, Robert Foss,
	Jonas Karlman, Daniel Vetter, David Airlie, Maarten Lankhorst,
	Thomas Zimmermann, Maxime Ripard, Jernej Skrabec, Sam Ravnborg,
	Neil Armstrong
  Cc: Seung-Woo Kim, linux-arm-msm, Joonyoung Shim, Rob Clark,
	Tian Tao, Chen Feng, Xinwei Kong, Kyungmin Park,
	linux-samsung-soc, Xinliang Liu, John Stultz, linux-kernel,
	Inki Dae, dri-devel, freedreno, Sean Paul

Hi,

We've encountered an issue with the RaspberryPi DSI panel that prevented the
whole display driver from probing.

The issue is described in detail in the commit 7213246a803f ("drm/vc4: dsi:
Only register our component once a DSI device is attached"), but the basic idea
is that since the panel is probed through i2c, there's no synchronization
between its probe and the registration of the MIPI-DSI host it's attached to.

We initially moved the component framework registration to the MIPI-DSI Host
attach hook to make sure we register our component only when we have a DSI
device attached to our MIPI-DSI host, and then use lookup our DSI device in our
bind hook.

However, all the DSI bridges controlled through i2c are only registering their
associated DSI device in their bridge attach hook, meaning with our change
above, we never got that far, and therefore ended up in the same situation than
the one we were trying to fix for panels.

The best practice to avoid those issues is to register its functions only after
all its dependencies are live. We also shouldn't wait any longer than we should
to play nice with the other components that are waiting for us, so in our case
that would mean moving the DSI device registration to the bridge probe.

This has been tested on vc4 (with sn65dsi83 and ps8640), msm (sn65dsi86,
lt9611), kirin (adv7511) and exynos.

Let me know what you think,
Maxime

---

Changes from v5:
  - Collected more tags
  - Fixed a compilation error for ps8640

Changes from v4:
  - Rebased on current drm-misc-next
  - Collected the various tags
  - Fix for Kirin
  - Added conversion patch for msm

Changes from v3:
  - Converted exynos and kirin
  - Converted all the affected bridge drivers
  - Reworded the documentation a bit

Changes from v2:
  - Changed the approach as suggested by Andrzej, and aligned the bridge on the
    panel this time.
  - Fixed some typos

Changes from v1:
  - Change the name of drm_of_get_next function to drm_of_get_bridge
  - Mention the revert of 87154ff86bf6 and squash the two patches that were
    reverting that commit
  - Add some documentation
  - Make drm_panel_attach and _detach succeed when no callback is there

Maxime Ripard (20):
  drm/bridge: adv7533: Switch to devm MIPI-DSI helpers
  drm/bridge: adv7511: Register and attach our DSI device at probe
  drm/bridge: anx7625: Switch to devm MIPI-DSI helpers
  drm/bridge: anx7625: Register and attach our DSI device at probe
  drm/bridge: lt8912b: Switch to devm MIPI-DSI helpers
  drm/bridge: lt8912b: Register and attach our DSI device at probe
  drm/bridge: lt9611: Switch to devm MIPI-DSI helpers
  drm/bridge: lt9611: Register and attach our DSI device at probe
  drm/bridge: lt9611uxc: Switch to devm MIPI-DSI helpers
  drm/bridge: lt9611uxc: Register and attach our DSI device at probe
  drm/bridge: ps8640: Switch to devm MIPI-DSI helpers
  drm/bridge: ps8640: Register and attach our DSI device at probe
  drm/bridge: sn65dsi83: Fix bridge removal
  drm/bridge: sn65dsi83: Switch to devm MIPI-DSI helpers
  drm/bridge: sn65dsi83: Register and attach our DSI device at probe
  drm/bridge: sn65dsi86: Switch to devm MIPI-DSI helpers
  drm/bridge: sn65dsi86: Register and attach our DSI device at probe
  drm/bridge: tc358775: Switch to devm MIPI-DSI helpers
  drm/bridge: tc358775: Register and attach our DSI device at probe
  drm/kirin: dsi: Adjust probe order

Rob Clark (1):
  drm/msm/dsi: Adjust probe order

 drivers/gpu/drm/bridge/adv7511/adv7511.h     |   1 -
 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c |  15 ++-
 drivers/gpu/drm/bridge/adv7511/adv7533.c     |  20 +---
 drivers/gpu/drm/bridge/analogix/anx7625.c    |  40 ++++---
 drivers/gpu/drm/bridge/lontium-lt8912b.c     |  31 ++----
 drivers/gpu/drm/bridge/lontium-lt9611.c      |  62 ++++-------
 drivers/gpu/drm/bridge/lontium-lt9611uxc.c   |  65 +++++-------
 drivers/gpu/drm/bridge/parade-ps8640.c       | 105 ++++++++++---------
 drivers/gpu/drm/bridge/tc358775.c            |  50 +++++----
 drivers/gpu/drm/bridge/ti-sn65dsi83.c        |  88 ++++++++--------
 drivers/gpu/drm/bridge/ti-sn65dsi86.c        | 101 +++++++++---------
 drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c |  52 +++++----
 drivers/gpu/drm/msm/dsi/dsi.c                |  50 +++++----
 drivers/gpu/drm/msm/dsi/dsi.h                |   2 +-
 drivers/gpu/drm/msm/dsi/dsi_host.c           |  22 ++--
 drivers/gpu/drm/msm/dsi/dsi_manager.c        |   6 +-
 drivers/gpu/drm/msm/msm_drv.h                |   2 +
 17 files changed, 348 insertions(+), 364 deletions(-)

-- 
2.31.1


^ permalink raw reply	[flat|nested] 48+ messages in thread

end of thread, other threads:[~2021-10-29  8:46 UTC | newest]

Thread overview: 48+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-25 15:15 [PATCH v6 00/21] drm/bridge: Make panel and bridge probe order consistent Maxime Ripard
2021-10-25 15:15 ` [PATCH v6 01/21] drm/bridge: adv7533: Switch to devm MIPI-DSI helpers Maxime Ripard
2021-10-27 20:09   ` (subset) " Maxime Ripard
2021-10-25 15:15 ` [PATCH v6 02/21] drm/bridge: adv7511: Register and attach our DSI device at probe Maxime Ripard
2021-10-27 20:09   ` (subset) " Maxime Ripard
     [not found]   ` <CGME20211029062347eucas1p1431402205321b066349e3ccf432d2452@eucas1p1.samsung.com>
2021-10-29  6:23     ` [v6,02/21] " Marek Szyprowski
2021-10-29  8:05       ` Maxime Ripard
2021-10-29  8:36         ` Marek Szyprowski
2021-10-29  8:46           ` Maxime Ripard
2021-10-25 15:15 ` [PATCH v6 03/21] drm/bridge: anx7625: Switch to devm MIPI-DSI helpers Maxime Ripard
2021-10-27 20:09   ` (subset) " Maxime Ripard
2021-10-25 15:15 ` [PATCH v6 04/21] drm/bridge: anx7625: Register and attach our DSI device at probe Maxime Ripard
2021-10-27 20:09   ` (subset) " Maxime Ripard
2021-10-25 15:15 ` [PATCH v6 05/21] drm/bridge: lt8912b: Switch to devm MIPI-DSI helpers Maxime Ripard
2021-10-27 20:09   ` (subset) " Maxime Ripard
2021-10-25 15:15 ` [PATCH v6 06/21] drm/bridge: lt8912b: Register and attach our DSI device at probe Maxime Ripard
2021-10-27 20:09   ` (subset) " Maxime Ripard
2021-10-25 15:15 ` [PATCH v6 07/21] drm/bridge: lt9611: Switch to devm MIPI-DSI helpers Maxime Ripard
2021-10-27 20:09   ` (subset) " Maxime Ripard
2021-10-25 15:15 ` [PATCH v6 08/21] drm/bridge: lt9611: Register and attach our DSI device at probe Maxime Ripard
2021-10-27 20:09   ` (subset) " Maxime Ripard
2021-10-25 15:15 ` [PATCH v6 09/21] drm/bridge: lt9611uxc: Switch to devm MIPI-DSI helpers Maxime Ripard
2021-10-27 20:09   ` (subset) " Maxime Ripard
2021-10-25 15:15 ` [PATCH v6 10/21] drm/bridge: lt9611uxc: Register and attach our DSI device at probe Maxime Ripard
2021-10-27 20:09   ` (subset) " Maxime Ripard
2021-10-25 15:15 ` [PATCH v6 11/21] drm/bridge: ps8640: Switch to devm MIPI-DSI helpers Maxime Ripard
2021-10-27 20:09   ` (subset) " Maxime Ripard
2021-10-25 15:15 ` [PATCH v6 12/21] drm/bridge: ps8640: Register and attach our DSI device at probe Maxime Ripard
2021-10-27 20:09   ` (subset) " Maxime Ripard
2021-10-25 15:15 ` [PATCH v6 13/21] drm/bridge: sn65dsi83: Fix bridge removal Maxime Ripard
2021-10-27 20:09   ` (subset) " Maxime Ripard
2021-10-25 15:15 ` [PATCH v6 14/21] drm/bridge: sn65dsi83: Switch to devm MIPI-DSI helpers Maxime Ripard
2021-10-27 20:09   ` (subset) " Maxime Ripard
2021-10-25 15:15 ` [PATCH v6 15/21] drm/bridge: sn65dsi83: Register and attach our DSI device at probe Maxime Ripard
2021-10-27 20:09   ` (subset) " Maxime Ripard
2021-10-25 15:15 ` [PATCH v6 16/21] drm/bridge: sn65dsi86: Switch to devm MIPI-DSI helpers Maxime Ripard
2021-10-27 20:09   ` (subset) " Maxime Ripard
2021-10-25 15:15 ` [PATCH v6 17/21] drm/bridge: sn65dsi86: Register and attach our DSI device at probe Maxime Ripard
2021-10-27 20:09   ` (subset) " Maxime Ripard
2021-10-25 15:15 ` [PATCH v6 18/21] drm/bridge: tc358775: Switch to devm MIPI-DSI helpers Maxime Ripard
2021-10-27 20:09   ` (subset) " Maxime Ripard
2021-10-25 15:15 ` [PATCH v6 19/21] drm/bridge: tc358775: Register and attach our DSI device at probe Maxime Ripard
2021-10-27 20:09   ` (subset) " Maxime Ripard
2021-10-25 15:15 ` [PATCH v6 20/21] drm/kirin: dsi: Adjust probe order Maxime Ripard
2021-10-27 18:34   ` John Stultz
2021-10-27 20:09   ` (subset) " Maxime Ripard
2021-10-25 15:15 ` [PATCH v6 21/21] drm/msm/dsi: " Maxime Ripard
2021-10-27 20:09   ` (subset) " Maxime Ripard

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).