Re: [PATCH v3 1/2] drm/vc4: hdmi: Call HDMI hotplug helper on disconnect

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Wed, Mar 12, 2025 at 03:40:55PM +0000, David Turner wrote:
> From: Stefan Wahren <wahrenst@xxxxxxx>
> 
> drm_atomic_helper_connector_hdmi_hotplug() must be called
> regardless of the connection status, otherwise the HDMI audio
> disconnect event won't be notified.  Also update the comment on
> drm_atomic_helper_connector_hdmi_hotplug() to explain that this is
> necessary.
> 
> Fixes: 2ea9ec5d2c20 ("drm/vc4: hdmi: use drm_atomic_helper_connector_hdmi_hotplug()")
> Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx>
> Signed-off-by: Stefan Wahren <wahrenst@xxxxxxx>
> Signed-off-by: David Turner <david.turner@xxxxxxxxxxxxxxx>
> ---
>  drivers/gpu/drm/display/drm_hdmi_state_helper.c | 3 ++-
>  drivers/gpu/drm/vc4/vc4_hdmi.c                  | 4 ++--
>  2 files changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/display/drm_hdmi_state_helper.c b/drivers/gpu/drm/display/drm_hdmi_state_helper.c
> index c205f37da1e12b11c384670db83e43613e031340..d26d51902ba1a73175b23eec71562a30ceda1082 100644
> --- a/drivers/gpu/drm/display/drm_hdmi_state_helper.c
> +++ b/drivers/gpu/drm/display/drm_hdmi_state_helper.c
> @@ -816,7 +816,8 @@ drm_atomic_helper_connector_hdmi_update(struct drm_connector *connector,
>   * @status: Connection status
>   *
>   * This function should be called as a part of the .detect() / .detect_ctx()
> - * callbacks, updating the HDMI-specific connector's data.
> + * callbacks, updating the HDMI-specific connector's data. It also needs to be
> + * called for disconnects to notify audio users of the unplug.

This part should be in a separate patch.

I also think that it's wrong, it's not just about audio. It just needs
to be called as part of detect no matter what the status is. Audio is
one thing that it will possibly handle depending on the driver, but
EDIDs, CEC, etc. might also be dealt with. So I don't think it's right
to focus on audio there.

>   */
>  void drm_atomic_helper_connector_hdmi_hotplug(struct drm_connector *connector,
>  					      enum drm_connector_status status)
> diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c
> index 37238a12baa58a06a5d6f40d1ab64abc7fac60d7..37a7d45695f236d3ab281d9a8676921fd434955c 100644
> --- a/drivers/gpu/drm/vc4/vc4_hdmi.c
> +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
> @@ -372,13 +372,13 @@ static void vc4_hdmi_handle_hotplug(struct vc4_hdmi *vc4_hdmi,
>  	 * the lock for now.
>  	 */
>  
> +	drm_atomic_helper_connector_hdmi_hotplug(connector, status);
> +
>  	if (status == connector_status_disconnected) {
>  		cec_phys_addr_invalidate(vc4_hdmi->cec_adap);
>  		return;
>  	}
>  
> -	drm_atomic_helper_connector_hdmi_hotplug(connector, status);
> -
>  	cec_s_phys_addr(vc4_hdmi->cec_adap,
>  			connector->display_info.source_physical_address, false);

For the vc4 part alone,
Reviewed-by: Maxime Ripard <mripard@xxxxxxxxxx>

Maxime

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux