[PATCH 0/7] drm/probe-helpers: Work around multi-outputs-per-CRTC problem
Thomas Zimmermann
tzimmermann at suse.de
Wed Jul 17 12:54:47 UTC 2024
As discussed on irc, we rather improve the in-kernel DRM client's
support for cloned outputs (for fbcon) and then remove the hacks from
the ast and mgag200 drivers. Userspace compositors need to support
cloned outputs to a minimum.
https://dri.freedesktop.org/~cbrill/dri-log/index.php?channel=dri-devel&date=2024-07-17
Best regards
Thomas
Am 15.07.24 um 11:38 schrieb Thomas Zimmermann:
> Old or simple hardware only supports a single CRTC with multiple
> conenctoed outputs. This breaks most userspace compositors, which
> only support a single output per CRTC. This currently happens with
> ast and mgag200 drivers. The drivers contain a work around that
> dynamically disables all but one connected output.
>
> Patches 1 and 2 push the workaround into probe helpers and make it
> configurable in the kernel config. For each connector, the driver
> needs to specify a bitmask of connectors with higher priority. If
> one of them is connected, the connector at hand is always reported
> as disconnected. Connectors without priority bitmask as not affected.
>
> Patches 3 to 5 update and simplify the ast drivers. The new workaround
> now allows to have multiple physical conenctors in ast. So patch 5
> finally allows VGA and DisplayPort on the same device.
>
> Patches 6 and 7 update mgag200.
>
> Any future driver that exposes the same problem as ast and mgag200
> can simply hook into the workaround. Hopefully userspace can be fixed
> at some point.
>
> Thomas Zimmermann (7):
> drm/probe-helper: Call connector detect functions in single helper
> drm/probe-helper: Optionally report single connected output per CRTC
> drm/ast: Set connector priorities
> drm/ast: Remove struct ast_bmc_connector
> drm/ast: Support ASTDP and VGA at the same time
> drm/mgag200: Set connector priorities
> drm/mgag200: Remove struct mgag200_bmc_connector
>
> drivers/gpu/drm/Kconfig | 15 +++
> drivers/gpu/drm/ast/ast_drv.h | 17 +--
> drivers/gpu/drm/ast/ast_main.c | 2 +-
> drivers/gpu/drm/ast/ast_mode.c | 49 ++------
> drivers/gpu/drm/drm_probe_helper.c | 137 +++++++++++++++++++---
> drivers/gpu/drm/mgag200/mgag200_bmc.c | 44 +------
> drivers/gpu/drm/mgag200/mgag200_drv.h | 9 +-
> drivers/gpu/drm/mgag200/mgag200_g200eh.c | 4 +-
> drivers/gpu/drm/mgag200/mgag200_g200eh3.c | 4 +-
> drivers/gpu/drm/mgag200/mgag200_g200er.c | 4 +-
> drivers/gpu/drm/mgag200/mgag200_g200ev.c | 4 +-
> drivers/gpu/drm/mgag200/mgag200_g200ew3.c | 4 +-
> drivers/gpu/drm/mgag200/mgag200_g200se.c | 4 +-
> drivers/gpu/drm/mgag200/mgag200_g200wb.c | 4 +-
> include/drm/drm_connector.h | 2 +
> include/drm/drm_probe_helper.h | 2 +
> 16 files changed, 177 insertions(+), 128 deletions(-)
>
--
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstrasse 146, 90461 Nuernberg, Germany
GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman
HRB 36809 (AG Nuernberg)
More information about the dri-devel
mailing list