[PATCH 00/11] drm/mgag200: Detect connector status
Jocelyn Falempe
jfalempe at redhat.com
Mon Apr 8 10:36:50 UTC 2024
Hi Thomas,
I've tested this series on my Dell T310, and it works well, when I
plug/unplug the VGA screen, it's reflected in /sys/class/drm/.../status
I've also tested it remotely on a Dell R640, which doesn't have a VGA
monitor connected.
After the patch, on the iDrac console, I only get a green screen saying:
"Out of Range
Reason: Video Capture Failure
Detected Resolution: 0x768
Detected Color Depth-1bpp"
and the file:
/sys/class/drm/card0-VGA-1/modes
is empty
Before the patch, the driver reports VGA as connected, and modes
contains 1024x768 and others.
I think we may need to add a virtual connector for BMC, like I've done
for AST ?
So that when no VGA monitor is available, you can still choose an
appropriate resolution.
Best regards,
--
Jocelyn
On 03/04/2024 11:24, Thomas Zimmermann wrote:
> Detect the connector status by polling the DDC. Update the status at
> runtime. Clean up a the driver's DDC code in the process.
>
> Patches 1 and 2 fix long-standing problems in the DDC code.
>
> Patches 3 to 9 refactor the DDC code. The code then keeps its data
> structures internal, acquires locks automatically and it much more
> readable overall.
>
> With patches 10 and 11, mgag200 makes use of existing helpers for
> reading and probing the DDC. It then correctly updates the status
> and EDID at runtime.
>
> Tested on various Matrox hardware.
>
> Thomas Zimmermann (11):
> drm/mgag200: Set DDC timeout in milliseconds
> drm/mgag200: Bind I2C lifetime to DRM device
> drm/mgag200: Store pointer to struct mga_device in struct mga_i2c_chan
> drm/mgag200: Allocate instance of struct mga_i2c_chan dynamically
> drm/mgag200: Inline mgag200_i2c_init()
> drm/mgag200: Replace struct mga_i2c_chan with struct mgag200_ddc
> drm/mgag200: Rename mgag200_i2c.c to mgag200_ddc.c
> drm/mgag200: Rename struct i2c_algo_bit_data callbacks
> drm/mgag200: Acquire I/O-register lock in DDC code
> drm/mgag200: Use drm_connector_helper_get_modes()
> drm/mgag200: Set .detect_ctx() and enable connector polling
>
> drivers/gpu/drm/mgag200/Makefile | 2 +-
> drivers/gpu/drm/mgag200/mgag200_ddc.c | 179 ++++++++++++++++++++++
> drivers/gpu/drm/mgag200/mgag200_ddc.h | 11 ++
> drivers/gpu/drm/mgag200/mgag200_drv.h | 19 +--
> drivers/gpu/drm/mgag200/mgag200_g200.c | 15 +-
> drivers/gpu/drm/mgag200/mgag200_g200eh.c | 15 +-
> drivers/gpu/drm/mgag200/mgag200_g200eh3.c | 15 +-
> drivers/gpu/drm/mgag200/mgag200_g200er.c | 15 +-
> drivers/gpu/drm/mgag200/mgag200_g200ev.c | 15 +-
> drivers/gpu/drm/mgag200/mgag200_g200ew3.c | 15 +-
> drivers/gpu/drm/mgag200/mgag200_g200se.c | 15 +-
> drivers/gpu/drm/mgag200/mgag200_g200wb.c | 15 +-
> drivers/gpu/drm/mgag200/mgag200_i2c.c | 129 ----------------
> drivers/gpu/drm/mgag200/mgag200_mode.c | 27 +---
> 14 files changed, 274 insertions(+), 213 deletions(-)
> create mode 100644 drivers/gpu/drm/mgag200/mgag200_ddc.c
> create mode 100644 drivers/gpu/drm/mgag200/mgag200_ddc.h
> delete mode 100644 drivers/gpu/drm/mgag200/mgag200_i2c.c
>
More information about the dri-devel
mailing list