drm/bridge: anx7625: Fill in empty ELD when no connector
authorHsin-Yi Wang <hsinyi@chromium.org>
Thu, 14 Apr 2022 09:00:04 +0000 (17:00 +0800)
committerRobert Foss <robert.foss@linaro.org>
Tue, 19 Apr 2022 13:54:56 +0000 (15:54 +0200)
Speaker may share I2S with DP and .get_eld callback will be called when
speaker is playing. When HDMI wans't connected, the connector will be
null. Instead of return an error, fill in empty ELD.

Signed-off-by: Hsin-Yi Wang <hsinyi@chromium.org>
Reviewed-by: Xin Ji <xji@analogixsemi.com>
Signed-off-by: Robert Foss <robert.foss@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20220414090003.1806535-1-hsinyi@chromium.org
drivers/gpu/drm/bridge/analogix/anx7625.c

index 6516f9570b8674a1e1405864733c7da0ee07d9c5..f2bc30c98c770ca5f9e0ca789f7faf46b2cd94ca 100644 (file)
@@ -1932,14 +1932,14 @@ static int anx7625_audio_get_eld(struct device *dev, void *data,
        struct anx7625_data *ctx = dev_get_drvdata(dev);
 
        if (!ctx->connector) {
-               dev_err(dev, "connector not initial\n");
-               return -EINVAL;
+               /* Pass en empty ELD if connector not available */
+               memset(buf, 0, len);
+       } else {
+               dev_dbg(dev, "audio copy eld\n");
+               memcpy(buf, ctx->connector->eld,
+                      min(sizeof(ctx->connector->eld), len));
        }
 
-       dev_dbg(dev, "audio copy eld\n");
-       memcpy(buf, ctx->connector->eld,
-              min(sizeof(ctx->connector->eld), len));
-
        return 0;
 }