mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 00/35] drm/panel: let the panels use the atomic state
@ 2026-10-26 11:09 Dmitry Baryshkov
  2026-10-26 11:09 ` [PATCH 01/35] drm/panel: remove the get_timings() callback Dmitry Baryshkov
                   ` (26 more replies)
  0 siblings, 27 replies; 28+ messages in thread
From: Dmitry Baryshkov @ 2026-10-26 11:09 UTC (permalink / raw)
  To: Douglas Anderson, Neil Armstrong, Jessica Zhang,
	Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
	David Airlie, Simona Vetter, Jyri Sarha, Tomi Valkeinen,
	Andrzej Hajda, Robert Foss, Laurent Pinchart, Jonas Karlman,
	Jernej Skrabec, Luca Ceresoli, Paul Cercueil, Marek Vasut,
	Stefan Agner, Frank Li, Sascha Hauer, Pengutronix Kernel Team,
	Fabio Estevam, Laurent Pinchart, Tomi Valkeinen, Kieran Bingham,
	Geert Uytterhoeven, Magnus Damm, Biju Das, Linus Walleij,
	Sandy Huang, Heiko Stübner, Andy Yan, Jonathan Corbet,
	Shuah Khan, Randy Dunlap, Inki Dae, Seung-Woo Kim, Kyungmin Park,
	Krzysztof Kozlowski, Peter Griffin, Alim Akhtar, Alison Wang,
	Paul Kocialkowski, Yannick Fertre, Raphael Gallais-Pou,
	Philippe Cornu, Maxime Coquelin, Alexandre Torgue, Chen-Yu Tsai,
	Samuel Holland, Thierry Reding, Mikko Perttunen, Jonathan Hunter,
	Jagan Teki, Ondrej Jirman, Javier Martinez Canillas,
	Igor Reznichenko, Michael Walle, Dario Binacchi, Jagan Teki,
	Jianhua Lu, Guido Günther, Purism Kernel Team, Jerry Han,
	Joel Selvaraj, Icenowy Zheng, Michael Trimarchi, Sumit Semwal,
	Casey Connolly, Michael Tretter, Cristian Cozzolino, Junjie Cao,
	Ryan Brue, Nickolay Goppen, Stefan Mavrodiev, Florian Fainelli,
	Broadcom internal kernel review list, Robert Chiras,
	Alexander Koskovich, Markuss Broks, Artur Weber,
	David Heidelberg, Dzmitry Sankouski, Yedaya Katsman
  Cc: dri-devel, linux-kernel, linux-mips, imx, linux-arm-kernel,
	linux-renesas-soc, linux-rockchip, linux-doc, linux-samsung-soc,
	linux-stm32, linux-sunxi, linux-tegra, linux-rpi-kernel

The panel is the only element of the display pipeline which never sees
the atomic commit. Its prepare() and enable() callbacks get nothing but
the panel, so a panel which has to be programmed differently depending
on the mode can only guess it. The NT35950 driver, for example, saves
the connector in get_modes() and reads connector->state->crtc->state
while being prepared: without the locks, from the current state rather
than from the one being committed, and with no way to reject a mode it
doesn't know.

Every panel has a struct drm_bridge embedded into it, and the bridge
already has all the missing parts: atomic_check(), a state object which
can be subclassed and the commit passed to the callbacks. Rather than
growing struct drm_panel_funcs into a copy of that, let the panel driver
provide struct drm_bridge_funcs for the embedded bridge. This is opt-in:
the panels which have no use for the atomic state keep using struct
drm_panel_funcs and are not touched by it.

To get there the bridge callbacks become the entry point to the panel,
with drm_panel_prepare() and friends calling them rather than the other
way around. The panel core still has to track the panel state, notify
the panel followers and handle the backlight, so the driver doesn't fill
in the power callbacks directly, it wraps its functions with the macros
doing that part. NT35950 is converted as the first user.

The bulk of the series is the cleanup of what the panel core and the
bridge need from the panel driver, so that a panel providing the bridge
callbacks doesn't need struct drm_panel_funcs for anything:

- get_timings() had no callers.

- The connector type was stored both in the panel and in its bridge, and
  the display drivers could override it while creating the panel bridge.

- The orientation was read from the DT, stored and returned by nearly
  identical code in more than twenty panel drivers, and some of them
  also had to set it on the connector from get_modes(), with a TODO
  asking for a better place. The core reads it now. It is applied to the
  connector from the new connector_init() bridge callback, which is not
  specific to the panels: other bridges have properties to set up on the
  connector being created too (HDCP, DP link properties), and currently
  have nowhere to do it.

- disable() and unprepare() returned an error which nobody could act on.
  Worse, a failed unprepare() left the panel marked as prepared, so it
  was never initialised again.

Behaviour changes worth knowing about:

- Panels with the rotation property whose driver ignored it now get the
  orientation property. In the tree this is the Motorola Mapphone panel
  (panel-dsi-cm).

- sun6i_mipi_dsi, sti_dvo and the Tegra DSI get their panel after the
  DRM device has been registered, which is too late to create the
  property, so they lose the orientation which the panel drivers used to
  set from get_modes(). None of the rotated panels in the tree are used
  with them.

- A panel implementing atomic_check() can only be driven through the
  bridge chain. The display drivers calling drm_panel_prepare() directly
  have no commit to pass.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
Dmitry Baryshkov (35):
      drm/panel: remove the get_timings() callback
      drm/panel: remove the unused struct panel_bridge
      drm/tidss: get the panel type from the embedded bridge
      drm/bridge: lvds-codec: use devm_drm_panel_bridge_add()
      drm/ingenic: use devm_drm_panel_bridge_add()
      drm: mxsfb: use devm_drm_panel_bridge_add()
      drm: rcar-du: use devm_drm_panel_bridge_add()
      drm: rz-du: use devm_drm_panel_bridge_add()
      drm/mcde: use drm_panel_bridge_add()
      drm/pl111: use drm_panel_bridge_add()
      drm/rockchip: lvds: use drm_panel_bridge_add()
      drm/rockchip: rgb: use drm_panel_bridge_add()
      drm/panel: remove the _typed() panel bridge functions
      drm/panel: remove drm_panel.connector_type
      drm/bridge: anx6345: set the panel orientation on the connector
      drm/exynos: dpi: set the panel orientation on the connector
      drm/fsl-dcu: set the panel orientation on the connector
      drm/logicvc: set the panel orientation on the connector
      drm/stm: lvds: set the panel orientation on the connector
      drm/sun4i: set the panel orientation on the connector
      drm/tegra: sor: set the panel orientation on the connector
      drm/panel: drop the orientation workaround from get_modes()
      drm/panel: read the panel orientation in the core
      drm/panel: use the orientation from the panel core
      drm/panel: remove the get_orientation() callback
      drm/bridge: add the connector_init callback
      drm/bridge-connector: let the bridges set up the connector
      drm/panel: let the bridges set up the panel connector
      drm/panel: set the orientation from the connector_init callback
      drm/panel: make the disable and unprepare callbacks return void
      drm/panel: don't hold the follower lock over the panel callbacks
      drm/panel: route the panel calls through the bridge callbacks
      drm/panel: let the panel drivers provide struct drm_bridge_funcs
      drm/panel: novatek-nt35950: provide struct drm_bridge_funcs
      drm/panel: novatek-nt35950: use the atomic state to select the mode

 Documentation/gpu/todo.rst                         |   1 -
 drivers/gpu/drm/bridge/analogix/analogix-anx6345.c |   5 +
 drivers/gpu/drm/bridge/lvds-codec.c                |   3 +-
 drivers/gpu/drm/display/drm_bridge_connector.c     |  12 +-
 drivers/gpu/drm/drm_bridge.c                       |  31 +
 drivers/gpu/drm/drm_connector.c                    |   8 +-
 drivers/gpu/drm/drm_panel.c                        | 653 +++++++++++++--------
 drivers/gpu/drm/exynos/exynos_drm_dpi.c            |   1 +
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c          |   5 +
 drivers/gpu/drm/ingenic/ingenic-drm-drv.c          |   3 +-
 drivers/gpu/drm/logicvc/logicvc_interface.c        |   7 +
 drivers/gpu/drm/mcde/mcde_drv.c                    |   3 +-
 drivers/gpu/drm/mxsfb/mxsfb_drv.c                  |   3 +-
 drivers/gpu/drm/panel/panel-abt-y030xx067a.c       |   8 +-
 drivers/gpu/drm/panel/panel-anbernic-td4310.c      |  18 +-
 drivers/gpu/drm/panel/panel-arm-versatile.c        |   4 +-
 .../gpu/drm/panel/panel-asus-z00t-tm5p5-n35596.c   |   4 +-
 drivers/gpu/drm/panel/panel-auo-a030jtn01.c        |   8 +-
 drivers/gpu/drm/panel/panel-boe-bf060y8m-aj0.c     |   4 +-
 drivers/gpu/drm/panel/panel-boe-himax8279d.c       |  12 +-
 drivers/gpu/drm/panel/panel-boe-td4320.c           |   4 +-
 .../gpu/drm/panel/panel-boe-th101mb31ig002-28a.c   |  33 +-
 drivers/gpu/drm/panel/panel-boe-tv101wum-ll2.c     |   4 +-
 drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c     |  30 +-
 drivers/gpu/drm/panel/panel-chipone-icna35xx.c     |  24 +-
 drivers/gpu/drm/panel/panel-chipwealth-ch13726a.c  |  24 +-
 drivers/gpu/drm/panel/panel-dsi-cm.c               |  11 +-
 drivers/gpu/drm/panel/panel-ebbg-ft8719.c          |   8 +-
 drivers/gpu/drm/panel/panel-edp.c                  |  53 +-
 drivers/gpu/drm/panel/panel-elida-kd35t133.c       |  22 +-
 drivers/gpu/drm/panel/panel-feixin-k101-im2ba02.c  |   8 +-
 .../gpu/drm/panel/panel-feiyang-fy07024di26a30d.c  |   8 +-
 drivers/gpu/drm/panel/panel-focaltech-ota7290b.c   |  21 +-
 drivers/gpu/drm/panel/panel-himax-hx8279.c         |   8 +-
 drivers/gpu/drm/panel/panel-himax-hx83102.c        |  22 +-
 drivers/gpu/drm/panel/panel-himax-hx83112a.c       |   8 +-
 drivers/gpu/drm/panel/panel-himax-hx83112b.c       |   4 +-
 drivers/gpu/drm/panel/panel-himax-hx83121a.c       |   4 +-
 drivers/gpu/drm/panel/panel-himax-hx8394.c         |  24 +-
 drivers/gpu/drm/panel/panel-hydis-hv101hd1.c       |   8 +-
 drivers/gpu/drm/panel/panel-ilitek-ili7807s.c      |   4 +-
 drivers/gpu/drm/panel/panel-ilitek-ili7836a.c      |  24 +-
 drivers/gpu/drm/panel/panel-ilitek-ili9322.c       |  12 +-
 drivers/gpu/drm/panel/panel-ilitek-ili9341.c       |   7 +-
 drivers/gpu/drm/panel/panel-ilitek-ili9488.c       |  18 +-
 drivers/gpu/drm/panel/panel-ilitek-ili9805.c       |   4 +-
 drivers/gpu/drm/panel/panel-ilitek-ili9806e-dsi.c  |  18 +-
 drivers/gpu/drm/panel/panel-ilitek-ili9806e-spi.c  |   4 +-
 drivers/gpu/drm/panel/panel-ilitek-ili9881c.c      |  31 +-
 drivers/gpu/drm/panel/panel-ilitek-ili9882t.c      |  24 +-
 drivers/gpu/drm/panel/panel-innolux-ej030na.c      |   8 +-
 drivers/gpu/drm/panel/panel-innolux-p079zca.c      |  10 +-
 drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c   |  21 +-
 drivers/gpu/drm/panel/panel-jdi-fhd-r63452.c       |   4 +-
 drivers/gpu/drm/panel/panel-jdi-lpm102a188a.c      |  12 +-
 drivers/gpu/drm/panel/panel-jdi-lt070me05000.c     |   8 +-
 drivers/gpu/drm/panel/panel-khadas-ts050.c         |  12 +-
 drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c |  14 +-
 drivers/gpu/drm/panel/panel-leadtek-ltk050h3146w.c |   6 +-
 drivers/gpu/drm/panel/panel-leadtek-ltk500hd1829.c |   4 +-
 drivers/gpu/drm/panel/panel-lg-lb035q02.c          |   4 +-
 drivers/gpu/drm/panel/panel-lg-ld070wx3.c          |   4 +-
 drivers/gpu/drm/panel/panel-lg-lg4573.c            |   4 +-
 drivers/gpu/drm/panel/panel-lg-sw43408.c           |   7 +-
 drivers/gpu/drm/panel/panel-lincolntech-lcd197.c   |   8 +-
 drivers/gpu/drm/panel/panel-lvds.c                 |  25 +-
 drivers/gpu/drm/panel/panel-lxd-m9189a.c           |   8 +-
 .../gpu/drm/panel/panel-magnachip-d53e6ea8966.c    |   8 +-
 drivers/gpu/drm/panel/panel-mantix-mlaf057we51.c   |   8 +-
 drivers/gpu/drm/panel/panel-motorola-mot.c         |   8 +-
 drivers/gpu/drm/panel/panel-nec-nl8048hl11.c       |   4 +-
 drivers/gpu/drm/panel/panel-newvision-nv3051d.c    |   6 +-
 drivers/gpu/drm/panel/panel-newvision-nv3052c.c    |  12 +-
 drivers/gpu/drm/panel/panel-novatek-nt35510.c      |  12 +-
 drivers/gpu/drm/panel/panel-novatek-nt35532.c      |   4 +-
 drivers/gpu/drm/panel/panel-novatek-nt35560.c      |   6 +-
 drivers/gpu/drm/panel/panel-novatek-nt35950.c      | 168 ++++--
 drivers/gpu/drm/panel/panel-novatek-nt36523.c      |  24 +-
 drivers/gpu/drm/panel/panel-novatek-nt36532.c      |   4 +-
 drivers/gpu/drm/panel/panel-novatek-nt36536.c      |   4 +-
 drivers/gpu/drm/panel/panel-novatek-nt36672a.c     |   4 +-
 drivers/gpu/drm/panel/panel-novatek-nt36672e.c     |   4 +-
 drivers/gpu/drm/panel/panel-novatek-nt37700f.c     |   8 +-
 drivers/gpu/drm/panel/panel-novatek-nt37801.c      |   4 +-
 drivers/gpu/drm/panel/panel-novatek-nt39016.c      |  12 +-
 drivers/gpu/drm/panel/panel-novatek-nt51021.c      |   4 +-
 drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c |   4 +-
 drivers/gpu/drm/panel/panel-orisetech-ota5601a.c   |  12 +-
 drivers/gpu/drm/panel/panel-orisetech-otm8009a.c   |   8 +-
 drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c |   8 +-
 .../gpu/drm/panel/panel-panasonic-vvx10f034n00.c   |   7 +-
 .../gpu/drm/panel/panel-raspberrypi-touchscreen.c  |   7 +-
 drivers/gpu/drm/panel/panel-raydium-rm67191.c      |  16 +-
 drivers/gpu/drm/panel/panel-raydium-rm67200.c      |   8 +-
 drivers/gpu/drm/panel/panel-raydium-rm68200.c      |   4 +-
 drivers/gpu/drm/panel/panel-raydium-rm69220.c      |   4 +-
 drivers/gpu/drm/panel/panel-raydium-rm692e5.c      |   8 +-
 drivers/gpu/drm/panel/panel-raydium-rm69380.c      |   4 +-
 drivers/gpu/drm/panel/panel-renesas-r61307.c       |   8 +-
 drivers/gpu/drm/panel/panel-renesas-r63419.c       |  25 +-
 drivers/gpu/drm/panel/panel-renesas-r69328.c       |   8 +-
 drivers/gpu/drm/panel/panel-ronbo-rb070d30.c       |   7 +-
 drivers/gpu/drm/panel/panel-samsung-ams581vf01.c   |   4 +-
 drivers/gpu/drm/panel/panel-samsung-ams639rq08.c   |   4 +-
 drivers/gpu/drm/panel/panel-samsung-atna33xc20.c   |  14 +-
 drivers/gpu/drm/panel/panel-samsung-db7430.c       |   8 +-
 drivers/gpu/drm/panel/panel-samsung-ld9040.c       |   7 +-
 drivers/gpu/drm/panel/panel-samsung-ltl106hl02.c   |   4 +-
 drivers/gpu/drm/panel/panel-samsung-s6d16d0.c      |   8 +-
 drivers/gpu/drm/panel/panel-samsung-s6d27a1.c      |   8 +-
 drivers/gpu/drm/panel/panel-samsung-s6d7aa0.c      |   8 +-
 drivers/gpu/drm/panel/panel-samsung-s6e3fa7.c      |   8 +-
 drivers/gpu/drm/panel/panel-samsung-s6e3fc2x01.c   |   8 +-
 drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c      |  16 +-
 drivers/gpu/drm/panel/panel-samsung-s6e3ha8.c      |   8 +-
 drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c   |  14 +-
 drivers/gpu/drm/panel/panel-samsung-s6e63m0.c      |  13 +-
 .../drm/panel/panel-samsung-s6e88a0-ams427ap24.c   |   4 +-
 .../drm/panel/panel-samsung-s6e88a0-ams452ef01.c   |   4 +-
 drivers/gpu/drm/panel/panel-samsung-s6e8aa0.c      |   7 +-
 .../panel/panel-samsung-s6e8aa5x01-ams561ra01.c    |   8 +-
 .../gpu/drm/panel/panel-samsung-s6e8fc0-m1906f9.c  |   4 +-
 drivers/gpu/drm/panel/panel-samsung-sofef00.c      |   8 +-
 drivers/gpu/drm/panel/panel-seiko-43wvf1g.c        |  22 +-
 drivers/gpu/drm/panel/panel-sharp-lq079l1sx01.c    |   4 +-
 drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c    |   4 +-
 drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c    |   7 +-
 drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c    |   6 +-
 drivers/gpu/drm/panel/panel-sharp-ls060t1sx01.c    |   4 +-
 drivers/gpu/drm/panel/panel-simple.c               |  53 +-
 drivers/gpu/drm/panel/panel-sitronix-st7701.c      |  28 +-
 drivers/gpu/drm/panel/panel-sitronix-st7703.c      |  22 +-
 drivers/gpu/drm/panel/panel-sitronix-st7789v.c     |  35 +-
 drivers/gpu/drm/panel/panel-sony-acx565akm.c       |   4 +-
 drivers/gpu/drm/panel/panel-sony-td4353-jdi.c      |   4 +-
 .../gpu/drm/panel/panel-sony-tulip-truly-nt35521.c |   8 +-
 .../gpu/drm/panel/panel-startek-kd070fhfid015.c    |   4 +-
 drivers/gpu/drm/panel/panel-synaptics-r63353.c     |   4 +-
 drivers/gpu/drm/panel/panel-synaptics-tddi.c       |   8 +-
 drivers/gpu/drm/panel/panel-tdo-tl070wsh30.c       |   4 +-
 drivers/gpu/drm/panel/panel-tpo-td028ttec1.c       |   8 +-
 drivers/gpu/drm/panel/panel-tpo-td043mtea1.c       |   4 +-
 drivers/gpu/drm/panel/panel-tpo-tpg110.c           |   4 +-
 drivers/gpu/drm/panel/panel-truly-nt35597.c        |   8 +-
 drivers/gpu/drm/panel/panel-visionox-g2647fb105.c  |   4 +-
 drivers/gpu/drm/panel/panel-visionox-r66451.c      |   8 +-
 drivers/gpu/drm/panel/panel-visionox-rm69299.c     |   4 +-
 drivers/gpu/drm/panel/panel-visionox-rm692e5.c     |   8 +-
 drivers/gpu/drm/panel/panel-visionox-vtdr6130.c    |  20 +-
 drivers/gpu/drm/panel/panel-widechips-ws2401.c     |   8 +-
 drivers/gpu/drm/panel/panel-xinpeng-xpp055c272.c   |   6 +-
 drivers/gpu/drm/pl111/pl111_drv.c                  |   3 +-
 drivers/gpu/drm/renesas/rcar-du/rcar_du_encoder.c  |   5 +-
 drivers/gpu/drm/renesas/rz-du/rzg2l_du_encoder.c   |   5 +-
 drivers/gpu/drm/rockchip/rockchip_lvds.c           |   2 +-
 drivers/gpu/drm/rockchip/rockchip_rgb.c            |   3 +-
 drivers/gpu/drm/stm/lvds.c                         |   4 +
 drivers/gpu/drm/sun4i/sun4i_lvds.c                 |   2 +
 drivers/gpu/drm/sun4i/sun4i_rgb.c                  |   2 +
 drivers/gpu/drm/tegra/sor.c                        |   2 +
 drivers/gpu/drm/tidss/tidss_kms.c                  |   4 +-
 include/drm/drm_bridge.h                           |  23 +
 include/drm/drm_panel.h                            | 219 +++++--
 163 files changed, 1080 insertions(+), 1532 deletions(-)
---
base-commit: 4305aa866f20288739b680c75fd44d9f029b0c0b
change-id: 20261013-drm-panel-funcs-0fbc59bd8790

Best regards,
--  
With best wishes
Dmitry


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

end of thread, other threads:[~2026-10-26 11:11 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-26 11:09 [PATCH 00/35] drm/panel: let the panels use the atomic state Dmitry Baryshkov
2026-10-26 11:09 ` [PATCH 01/35] drm/panel: remove the get_timings() callback Dmitry Baryshkov
2026-10-26 11:09 ` [PATCH 02/35] drm/panel: remove the unused struct panel_bridge Dmitry Baryshkov
2026-10-26 11:09 ` [PATCH 03/35] drm/tidss: get the panel type from the embedded bridge Dmitry Baryshkov
2026-10-26 11:09 ` [PATCH 04/35] drm/bridge: lvds-codec: use devm_drm_panel_bridge_add() Dmitry Baryshkov
2026-10-26 11:09 ` [PATCH 05/35] drm/ingenic: " Dmitry Baryshkov
2026-10-26 11:09 ` [PATCH 06/35] drm: mxsfb: " Dmitry Baryshkov
2026-10-26 11:09 ` [PATCH 07/35] drm: rcar-du: " Dmitry Baryshkov
2026-10-26 11:09 ` [PATCH 08/35] drm: rz-du: " Dmitry Baryshkov
2026-10-26 11:09 ` [PATCH 09/35] drm/mcde: use drm_panel_bridge_add() Dmitry Baryshkov
2026-10-26 11:09 ` [PATCH 10/35] drm/pl111: " Dmitry Baryshkov
2026-10-26 11:10 ` [PATCH 11/35] drm/rockchip: lvds: " Dmitry Baryshkov
2026-10-26 11:10 ` [PATCH 12/35] drm/rockchip: rgb: " Dmitry Baryshkov
2026-10-26 11:10 ` [PATCH 13/35] drm/panel: remove the _typed() panel bridge functions Dmitry Baryshkov
2026-10-26 11:10 ` [PATCH 14/35] drm/panel: remove drm_panel.connector_type Dmitry Baryshkov
2026-10-26 11:10 ` [PATCH 15/35] drm/bridge: anx6345: set the panel orientation on the connector Dmitry Baryshkov
2026-10-26 11:10 ` [PATCH 16/35] drm/exynos: dpi: " Dmitry Baryshkov
2026-10-26 11:10 ` [PATCH 17/35] drm/fsl-dcu: " Dmitry Baryshkov
2026-10-26 11:10 ` [PATCH 18/35] drm/logicvc: " Dmitry Baryshkov
2026-10-26 11:10 ` [PATCH 19/35] drm/stm: lvds: " Dmitry Baryshkov
2026-10-26 11:10 ` [PATCH 20/35] drm/sun4i: " Dmitry Baryshkov
2026-10-26 11:10 ` [PATCH 21/35] drm/tegra: sor: " Dmitry Baryshkov
2026-10-26 11:10 ` [PATCH 22/35] drm/panel: drop the orientation workaround from get_modes() Dmitry Baryshkov
2026-10-26 11:10 ` [PATCH 23/35] drm/panel: read the panel orientation in the core Dmitry Baryshkov
2026-10-26 11:10 ` [PATCH 24/35] drm/panel: use the orientation from the panel core Dmitry Baryshkov
2026-10-26 11:10 ` [PATCH 25/35] drm/panel: remove the get_orientation() callback Dmitry Baryshkov
2026-10-26 11:10 ` [PATCH 26/35] drm/bridge: add the connector_init callback Dmitry Baryshkov
2026-10-26 11:10 ` [PATCH 27/35] drm/bridge-connector: let the bridges set up the connector Dmitry Baryshkov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®