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

Hi,\r
\r
We've encountered an issue with the RaspberryPi DSI panel that prevented the\r
whole display driver from probing.\r
\r
The issue is described in detail in the commit 7213246a803f ("drm/vc4: dsi:\r
Only register our component once a DSI device is attached"), but the basic idea\r
is that since the panel is probed through i2c, there's no synchronization\r
between its probe and the registration of the MIPI-DSI host it's attached to.\r
\r
We initially moved the component framework registration to the MIPI-DSI Host\r
attach hook to make sure we register our component only when we have a DSI\r
device attached to our MIPI-DSI host, and then use lookup our DSI device in our\r
bind hook.\r
\r
However, all the DSI bridges controlled through i2c are only registering their\r
associated DSI device in their bridge attach hook, meaning with our change\r
above, we never got that far, and therefore ended up in the same situation than\r
the one we were trying to fix for panels.\r
\r
The best practice to avoid those issues is to register its functions only after\r
all its dependencies are live. We also shouldn't wait any longer than we should\r
to play nice with the other components that are waiting for us, so in our case\r
that would mean moving the DSI device registration to the bridge probe.\r
\r
I also had a look at all the DSI hosts, and it seems that exynos, kirin and msm\r
would be affected by this and wouldn't probe anymore after those changes.\r
Exynos and kirin seems to be simple enough for a mechanical change (that still\r
requires to be tested), but the changes in msm seemed to be far more important\r
and I wasn't confortable doing them.\r
\r
Let me know what you think,\r
Maxime\r
\r
---\r
\r
Changes from v3:\r
  - Converted exynos and kirin\r
  - Converted all the affected bridge drivers\r
  - Reworded the documentation a bit\r
\r
Changes from v2:\r
  - Changed the approach as suggested by Andrzej, and aligned the bridge on the\r
    panel this time.\r
  - Fixed some typos\r
\r
Changes from v1:\r
  - Change the name of drm_of_get_next function to drm_of_get_bridge\r
  - Mention the revert of 87154ff86bf6 and squash the two patches that were\r
    reverting that commit\r
  - Add some documentation\r
  - Make drm_panel_attach and _detach succeed when no callback is there\r
\r
Maxime Ripard (24):\r
  drm/bridge: Add documentation sections\r
  drm/bridge: Document the probe issue with MIPI-DSI bridges\r
  drm/mipi-dsi: Create devm device registration\r
  drm/mipi-dsi: Create devm device attachment\r
  drm/bridge: adv7533: Switch to devm MIPI-DSI helpers\r
  drm/bridge: adv7511: Register and attach our DSI device at probe\r
  drm/bridge: anx7625: Switch to devm MIPI-DSI helpers\r
  drm/bridge: anx7625: Register and attach our DSI device at probe\r
  drm/bridge: lt8912b: Switch to devm MIPI-DSI helpers\r
  drm/bridge: lt8912b: Register and attach our DSI device at probe\r
  drm/bridge: lt9611: Switch to devm MIPI-DSI helpers\r
  drm/bridge: lt9611: Register and attach our DSI device at probe\r
  drm/bridge: lt9611uxc: Switch to devm MIPI-DSI helpers\r
  drm/bridge: lt9611uxc: Register and attach our DSI device at probe\r
  drm/bridge: ps8640: Switch to devm MIPI-DSI helpers\r
  drm/bridge: ps8640: Register and attach our DSI device at probe\r
  drm/bridge: sn65dsi83: Switch to devm MIPI-DSI helpers\r
  drm/bridge: sn65dsi83: Register and attach our DSI device at probe\r
  drm/bridge: sn65dsi86: Switch to devm MIPI-DSI helpers\r
  drm/bridge: sn65dsi86: Register and attach our DSI device at probe\r
  drm/bridge: tc358775: Switch to devm MIPI-DSI helpers\r
  drm/bridge: tc358775: Register and attach our DSI device at probe\r
  drm/kirin: dsi: Adjust probe order\r
  drm/exynos: dsi: Adjust probe order\r
\r
 Documentation/gpu/drm-kms-helpers.rst        |  12 +++\r
 drivers/gpu/drm/bridge/adv7511/adv7511.h     |   1 -\r
 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c |  15 ++-\r
 drivers/gpu/drm/bridge/adv7511/adv7533.c     |  20 +---\r
 drivers/gpu/drm/bridge/analogix/anx7625.c    |  40 ++++----\r
 drivers/gpu/drm/bridge/lontium-lt8912b.c     |  31 ++----\r
 drivers/gpu/drm/bridge/lontium-lt9611.c      |  62 +++++-------\r
 drivers/gpu/drm/bridge/lontium-lt9611uxc.c   |  65 +++++-------\r
 drivers/gpu/drm/bridge/parade-ps8640.c       | 101 ++++++++++---------\r
 drivers/gpu/drm/bridge/tc358775.c            |  50 +++++----\r
 drivers/gpu/drm/bridge/ti-sn65dsi83.c        |  86 ++++++++--------\r
 drivers/gpu/drm/bridge/ti-sn65dsi86.c        |  94 ++++++++---------\r
 drivers/gpu/drm/drm_bridge.c                 |  69 ++++++++++++-\r
 drivers/gpu/drm/drm_mipi_dsi.c               |  81 +++++++++++++++\r
 drivers/gpu/drm/exynos/exynos_drm_dsi.c      |  19 ++--\r
 drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c |  27 +++--\r
 include/drm/drm_mipi_dsi.h                   |   4 +\r
 17 files changed, 460 insertions(+), 317 deletions(-)\r
\r
-- \r
2.31.1\r
\r

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

end of thread, other threads:[~2021-10-18 15:50 UTC | newest]

Thread overview: 53+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-10 10:11 [PATCH v4 00/24] drm/bridge: Make panel and bridge probe order consistent Maxime Ripard
2021-09-10 10:11 ` [PATCH v4 01/24] drm/bridge: Add documentation sections Maxime Ripard
2021-09-24 17:52   ` (subset) " Maxime Ripard
2021-09-10 10:11 ` [PATCH v4 02/24] drm/bridge: Document the probe issue with MIPI-DSI bridges Maxime Ripard
2021-09-13  6:29   ` Andrzej Hajda
2021-09-14 14:35     ` Maxime Ripard
2021-09-14 19:00       ` Andrzej Hajda
2021-09-22  8:57         ` Maxime Ripard
2021-09-24 17:52   ` (subset) " Maxime Ripard
2021-09-10 10:11 ` [PATCH v4 03/24] drm/mipi-dsi: Create devm device registration Maxime Ripard
2021-09-24 17:52   ` (subset) " Maxime Ripard
2021-09-10 10:11 ` [PATCH v4 04/24] drm/mipi-dsi: Create devm device attachment Maxime Ripard
2021-09-24 17:52   ` (subset) " Maxime Ripard
2021-09-10 10:11 ` [PATCH v4 05/24] drm/bridge: adv7533: Switch to devm MIPI-DSI helpers Maxime Ripard
2021-09-10 10:12 ` [PATCH v4 06/24] drm/bridge: adv7511: Register and attach our DSI device at probe Maxime Ripard
2021-09-10 10:12 ` [PATCH v4 07/24] drm/bridge: anx7625: Switch to devm MIPI-DSI helpers Maxime Ripard
2021-09-10 10:12 ` [PATCH v4 08/24] drm/bridge: anx7625: Register and attach our DSI device at probe Maxime Ripard
2021-09-10 10:12 ` [PATCH v4 09/24] drm/bridge: lt8912b: Switch to devm MIPI-DSI helpers Maxime Ripard
2021-09-10 10:12 ` [PATCH v4 10/24] drm/bridge: lt8912b: Register and attach our DSI device at probe Maxime Ripard
2021-09-10 10:12 ` [PATCH v4 11/24] drm/bridge: lt9611: Switch to devm MIPI-DSI helpers Maxime Ripard
2021-09-10 10:12 ` [PATCH v4 12/24] drm/bridge: lt9611: Register and attach our DSI device at probe Maxime Ripard
2021-09-10 10:12 ` [PATCH v4 13/24] drm/bridge: lt9611uxc: Switch to devm MIPI-DSI helpers Maxime Ripard
2021-09-10 10:12 ` [PATCH v4 14/24] drm/bridge: lt9611uxc: Register and attach our DSI device at probe Maxime Ripard
2021-09-10 10:12 ` [PATCH v4 15/24] drm/bridge: ps8640: Switch to devm MIPI-DSI helpers Maxime Ripard
2021-09-10 10:12 ` [PATCH v4 16/24] drm/bridge: ps8640: Register and attach our DSI device at probe Maxime Ripard
2021-09-10 10:12 ` [PATCH v4 17/24] drm/bridge: sn65dsi83: Switch to devm MIPI-DSI helpers Maxime Ripard
2021-09-10 10:12 ` [PATCH v4 18/24] drm/bridge: sn65dsi83: Register and attach our DSI device at probe Maxime Ripard
2021-09-10 10:12 ` [PATCH v4 19/24] drm/bridge: sn65dsi86: Switch to devm MIPI-DSI helpers Maxime Ripard
2021-09-10 10:12 ` [PATCH v4 20/24] drm/bridge: sn65dsi86: Register and attach our DSI device at probe Maxime Ripard
2021-09-10 10:12 ` [PATCH v4 21/24] drm/bridge: tc358775: Switch to devm MIPI-DSI helpers Maxime Ripard
2021-09-10 10:12 ` [PATCH v4 22/24] drm/bridge: tc358775: Register and attach our DSI device at probe Maxime Ripard
2021-09-10 10:12 ` [PATCH v4 23/24] drm/kirin: dsi: Adjust probe order Maxime Ripard
2021-09-10 10:12 ` [PATCH v4 24/24] drm/exynos: " Maxime Ripard
2021-09-13 10:30   ` Andrzej Hajda
2021-09-17 12:35     ` Marek Szyprowski
2021-09-22  8:53       ` Maxime Ripard
2021-09-23  8:14         ` Marek Szyprowski
2021-09-29 21:27 ` [PATCH v4 00/24] drm/bridge: Make panel and bridge probe order consistent John Stultz
2021-09-29 21:32   ` John Stultz
2021-09-29 21:51     ` John Stultz
2021-09-29 23:25       ` Rob Clark
2021-09-29 23:25         ` John Stultz
2021-09-30  2:30         ` John Stultz
2021-09-30 19:49         ` Amit Pundir
2021-09-30 20:20           ` Caleb Connolly
2021-10-13 14:16             ` Maxime Ripard
2021-10-14  0:16               ` [Freedreno] " Rob Clark
2021-10-18 12:34                 ` Maxime Ripard
2021-10-18 15:55                   ` Rob Clark
2021-09-29 23:29       ` John Stultz
2021-10-13 13:45         ` Maxime Ripard
2021-09-29 21:56 ` Laurent Pinchart
2021-10-03 13:25   ` Laurent Pinchart

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).