2024-03-06 10:33:53

by Hsin-Te Yuan

[permalink] [raw]
Subject: [PATCH v3] drm/bridge: anx7625: Update audio status while detecting

Previously, the audio status was not updated during detection, leading
to a persistent audio despite hot plugging events. To resolve this
issue, update the audio status during detection.

Fixes: 566fef1226c1 ("drm/bridge: anx7625: add HDMI audio function")
Signed-off-by: Hsin-Te Yuan <[email protected]>
---
Changes in v3:
- Add Fixes tag.
- Link to v2: https://lore.kernel.org/r/[email protected]

Changes in v2:
- Add a space after the colons in the subject line.
- Link to v1: https://lore.kernel.org/r/[email protected]
---
drivers/gpu/drm/bridge/analogix/anx7625.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.c b/drivers/gpu/drm/bridge/analogix/anx7625.c
index 29d91493b101a..9f0d0c5b8ebf5 100644
--- a/drivers/gpu/drm/bridge/analogix/anx7625.c
+++ b/drivers/gpu/drm/bridge/analogix/anx7625.c
@@ -2481,15 +2481,22 @@ static void anx7625_bridge_atomic_disable(struct drm_bridge *bridge,
mutex_unlock(&ctx->aux_lock);
}

+static void
+anx7625_audio_update_connector_status(struct anx7625_data *ctx,
+ enum drm_connector_status status);
+
static enum drm_connector_status
anx7625_bridge_detect(struct drm_bridge *bridge)
{
struct anx7625_data *ctx = bridge_to_anx7625(bridge);
struct device *dev = ctx->dev;
+ enum drm_connector_status status;

DRM_DEV_DEBUG_DRIVER(dev, "drm bridge detect\n");

- return anx7625_sink_detect(ctx);
+ status = anx7625_sink_detect(ctx);
+ anx7625_audio_update_connector_status(ctx, status);
+ return status;
}

static struct edid *anx7625_bridge_get_edid(struct drm_bridge *bridge,

---
base-commit: 90d35da658da8cff0d4ecbb5113f5fac9d00eb72
change-id: 20240305-anx7625-fe16d3a9d37d

Best regards,
--
Hsin-Te Yuan <[email protected]>



2024-03-07 06:32:33

by Chen-Yu Tsai

[permalink] [raw]
Subject: Re: [PATCH v3] drm/bridge: anx7625: Update audio status while detecting

On Wed, Mar 6, 2024 at 5:59 PM Hsin-Te Yuan <[email protected]> wrote:
>
> Previously, the audio status was not updated during detection, leading
> to a persistent audio despite hot plugging events. To resolve this
> issue, update the audio status during detection.
>
> Fixes: 566fef1226c1 ("drm/bridge: anx7625: add HDMI audio function")
> Signed-off-by: Hsin-Te Yuan <[email protected]>

Reviewed-by: Chen-Yu Tsai <[email protected]>

> ---
> Changes in v3:
> - Add Fixes tag.
> - Link to v2: https://lore.kernel.org/r/[email protected]
>
> Changes in v2:
> - Add a space after the colons in the subject line.
> - Link to v1: https://lore.kernel.org/r/[email protected]
> ---
> drivers/gpu/drm/bridge/analogix/anx7625.c | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.c b/drivers/gpu/drm/bridge/analogix/anx7625.c
> index 29d91493b101a..9f0d0c5b8ebf5 100644
> --- a/drivers/gpu/drm/bridge/analogix/anx7625.c
> +++ b/drivers/gpu/drm/bridge/analogix/anx7625.c
> @@ -2481,15 +2481,22 @@ static void anx7625_bridge_atomic_disable(struct drm_bridge *bridge,
> mutex_unlock(&ctx->aux_lock);
> }
>
> +static void
> +anx7625_audio_update_connector_status(struct anx7625_data *ctx,
> + enum drm_connector_status status);
> +
> static enum drm_connector_status
> anx7625_bridge_detect(struct drm_bridge *bridge)
> {
> struct anx7625_data *ctx = bridge_to_anx7625(bridge);
> struct device *dev = ctx->dev;
> + enum drm_connector_status status;
>
> DRM_DEV_DEBUG_DRIVER(dev, "drm bridge detect\n");
>
> - return anx7625_sink_detect(ctx);
> + status = anx7625_sink_detect(ctx);
> + anx7625_audio_update_connector_status(ctx, status);
> + return status;
> }
>
> static struct edid *anx7625_bridge_get_edid(struct drm_bridge *bridge,
>
> ---
> base-commit: 90d35da658da8cff0d4ecbb5113f5fac9d00eb72
> change-id: 20240305-anx7625-fe16d3a9d37d
>
> Best regards,
> --
> Hsin-Te Yuan <[email protected]>
>