[PATCH v5 00/13] drm/ast: Detect connector status for VGA and SIL164
Jocelyn Falempe
jfalempe at redhat.com
Thu Mar 21 13:37:38 UTC 2024
Hi,
Thanks for those patches, that's really a good enhancement to the ast
driver, and fits well with the BMC virtual connector.
I've reviewed the whole series, and it looks good to me.
Reviewed-by: Jocelyn Falempe <jfalempe at redhat.com>
--
Jocelyn
On 20/03/2024 10:34, Thomas Zimmermann wrote:
> Detect the status of the VGA or SIL164 conenctor by polling the DDC
> channel. Update the status at runtime and flip the BMC status as well.
>
> Patches 1 adds a missing include statement that will be required to
> make later patches compile.
>
> Patches 2 and 3 simplify the VGA and SIL164 connectors, such that no
> additional data structure is required. These patches have been reviewed
> before as part of the series at [1].
>
> Patches 4 to 10 improve the I2C code that is used to retrieve the
> monitor's EDID data. It's now fully managed, it acquires the necessary
> lock automatically and it is called DDC, which better represents its
> purpose than I2C.
>
> Patches 11 to 13 finally implement polling. Patch 11 updates ast's
> EDID code to be up-to-date. The helper drm_connector_get_modes() reads
> the EDID via DDC and updates the property. No driver code is required.
> Patch 12 uses a similar pattern to detect the presence of the monitor
> and sets the connector status accordingly. As polling also needs to be
> cleaned up, patch 13 adds the necessary helpers to do so.
>
> Tested on AST2500 hardware and BMC output. The BMC connector now also
> flips its status correctly at runtime.
>
> [1] https://patchwork.freedesktop.org/series/104547/
>
> v5:
> - share implementation in drm_connector_helper_detect_ctx() (Maxime)
> - test for DDC presence with drm_probe_ddc() (Maxime, Jani)
> - perform managed cleanup of poll thread
>
> Thomas Zimmermann (13):
> drm/ast: Include <linux/of.h> where necessary
> drm/ast: Fail probing if DDC channel could not be initialized
> drm/ast: Remove struct ast_{vga,sil165}_connector
> drm/ast: Allocate instance of struct ast_i2c_chan with managed helpers
> drm/ast: Move DDC code to ast_ddc.{c,h}
> drm/ast: Rename struct ast_i2c_chan to struct ast_ddc
> drm/ast: Pass AST device to ast_ddc_create()
> drm/ast: Store AST device in struct ast_ddc
> drm/ast: Rename struct i2c_algo_bit_data callbacks and their
> parameters
> drm/ast: Acquire I/O-register lock in DDC code
> drm/ast: Use drm_connector_helper_get_modes()
> drm/ast: Implement polling for VGA and SIL164 connectors
> drm/ast: Automatically clean up poll helper
>
> drivers/gpu/drm/ast/Makefile | 10 +-
> drivers/gpu/drm/ast/{ast_i2c.c => ast_ddc.c} | 120 +++++++++------
> drivers/gpu/drm/ast/ast_ddc.h | 20 +++
> drivers/gpu/drm/ast/ast_drv.c | 1 +
> drivers/gpu/drm/ast/ast_drv.h | 39 +----
> drivers/gpu/drm/ast/ast_main.c | 1 +
> drivers/gpu/drm/ast/ast_mode.c | 147 +++++--------------
> drivers/gpu/drm/drm_probe_helper.c | 56 +++++++
> include/drm/drm_probe_helper.h | 5 +
> 9 files changed, 206 insertions(+), 193 deletions(-)
> rename drivers/gpu/drm/ast/{ast_i2c.c => ast_ddc.c} (54%)
> create mode 100644 drivers/gpu/drm/ast/ast_ddc.h
>
More information about the dri-devel
mailing list