diff mbox series

[2/2] drm/bridge: anx7625: add audio codec .get_eld support

Message ID 20211109024237.3354741-2-xji@analogixsemi.com (mailing list archive)
State New, archived
Headers show
Series [1/2] drm/bridge: anx7625: add HDCP support | expand

Commit Message

Xin Ji Nov. 9, 2021, 2:42 a.m. UTC
Provide .get_eld interface in hdmi_codec_ops for hdmi-codec driver.

Signed-off-by: Xin Ji <xji@analogixsemi.com>
---
 drivers/gpu/drm/bridge/analogix/anx7625.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

Comments

Robert Foss Jan. 4, 2022, 2:51 p.m. UTC | #1
On Tue, 9 Nov 2021 at 03:43, Xin Ji <xji@analogixsemi.com> wrote:
>
> Provide .get_eld interface in hdmi_codec_ops for hdmi-codec driver.
>
> Signed-off-by: Xin Ji <xji@analogixsemi.com>
> ---
>  drivers/gpu/drm/bridge/analogix/anx7625.c | 18 ++++++++++++++++++
>  1 file changed, 18 insertions(+)
>
> diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.c b/drivers/gpu/drm/bridge/analogix/anx7625.c
> index 6d93026c2999..67a87d21b0ba 100644
> --- a/drivers/gpu/drm/bridge/analogix/anx7625.c
> +++ b/drivers/gpu/drm/bridge/analogix/anx7625.c
> @@ -1821,9 +1821,27 @@ static int anx7625_audio_hook_plugged_cb(struct device *dev, void *data,
>         return 0;
>  }
>
> +static int anx7625_audio_get_eld(struct device *dev, void *data,
> +                                u8 *buf, size_t len)
> +{
> +       struct anx7625_data *ctx = dev_get_drvdata(dev);
> +
> +       if (!ctx->connector) {
> +               DRM_DEV_DEBUG_DRIVER(dev, "connector not initial\n");
> +               return -EINVAL;
> +       }
> +
> +       DRM_DEV_DEBUG_DRIVER(dev, "audio copy eld\n");
> +       memcpy(buf, ctx->connector->eld,
> +              min(sizeof(ctx->connector->eld), len));
> +
> +       return 0;
> +}
> +
>  static const struct hdmi_codec_ops anx7625_codec_ops = {
>         .hw_params      = anx7625_audio_hw_params,
>         .audio_shutdown = anx7625_audio_shutdown,
> +       .get_eld        = anx7625_audio_get_eld,
>         .get_dai_id     = anx7625_hdmi_i2s_get_dai_id,
>         .hook_plugged_cb = anx7625_audio_hook_plugged_cb,
>  };
> --
> 2.25.1
>

Reviewed-by: Robert Foss <robert.foss@linaro.org>
diff mbox series

Patch

diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.c b/drivers/gpu/drm/bridge/analogix/anx7625.c
index 6d93026c2999..67a87d21b0ba 100644
--- a/drivers/gpu/drm/bridge/analogix/anx7625.c
+++ b/drivers/gpu/drm/bridge/analogix/anx7625.c
@@ -1821,9 +1821,27 @@  static int anx7625_audio_hook_plugged_cb(struct device *dev, void *data,
 	return 0;
 }
 
+static int anx7625_audio_get_eld(struct device *dev, void *data,
+				 u8 *buf, size_t len)
+{
+	struct anx7625_data *ctx = dev_get_drvdata(dev);
+
+	if (!ctx->connector) {
+		DRM_DEV_DEBUG_DRIVER(dev, "connector not initial\n");
+		return -EINVAL;
+	}
+
+	DRM_DEV_DEBUG_DRIVER(dev, "audio copy eld\n");
+	memcpy(buf, ctx->connector->eld,
+	       min(sizeof(ctx->connector->eld), len));
+
+	return 0;
+}
+
 static const struct hdmi_codec_ops anx7625_codec_ops = {
 	.hw_params	= anx7625_audio_hw_params,
 	.audio_shutdown = anx7625_audio_shutdown,
+	.get_eld	= anx7625_audio_get_eld,
 	.get_dai_id	= anx7625_hdmi_i2s_get_dai_id,
 	.hook_plugged_cb = anx7625_audio_hook_plugged_cb,
 };