summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJai Luthra <j-luthra@ti.com>2023-09-01 15:01:23 +0530
committerRobert Foss <rfoss@kernel.org>2023-09-05 16:23:58 +0200
commitd0375f6858c4ff7244b62b02eb5e93428e1916cd (patch)
tree6e7b829f39a56f902e6d1029096e6f2bb0241bc0
parent29ff3b7e23af86ccaea2750b4edfbe1fc063ec9c (diff)
drm: bridge: it66121: Fix invalid connector dereference
Fix the NULL pointer dereference when no monitor is connected, and the sound card is opened from userspace. Instead return an empty buffer (of zeroes) as the EDID information to the sound framework if there is no connector attached. Fixes: e0fd83dbe924 ("drm: bridge: it66121: Add audio support") Reported-by: Nishanth Menon <nm@ti.com> Closes: https://lore.kernel.org/all/20230825105849.crhon42qndxqif4i@gondola/ Reviewed-by: Helen Koike <helen.koike@collabora.com> Signed-off-by: Jai Luthra <j-luthra@ti.com> Tested-by: Nishanth Menon <nm@ti.com> Reviewed-by: Aradhya Bhatia <a-bhatia1@ti.com> Signed-off-by: Robert Foss <rfoss@kernel.org> Link: https://patchwork.freedesktop.org/patch/msgid/20230901-it66121_edid-v2-1-aa59605336b9@ti.com
-rw-r--r--drivers/gpu/drm/bridge/ite-it66121.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/gpu/drm/bridge/ite-it66121.c b/drivers/gpu/drm/bridge/ite-it66121.c
index a80246ef4ffe..3c9b42c9d2ee 100644
--- a/drivers/gpu/drm/bridge/ite-it66121.c
+++ b/drivers/gpu/drm/bridge/ite-it66121.c
@@ -1447,10 +1447,14 @@ static int it66121_audio_get_eld(struct device *dev, void *data,
struct it66121_ctx *ctx = dev_get_drvdata(dev);
mutex_lock(&ctx->lock);
-
- memcpy(buf, ctx->connector->eld,
- min(sizeof(ctx->connector->eld), len));
-
+ if (!ctx->connector) {
+ /* Pass en empty ELD if connector not available */
+ dev_dbg(dev, "No connector present, passing empty EDID data");
+ memset(buf, 0, len);
+ } else {
+ memcpy(buf, ctx->connector->eld,
+ min(sizeof(ctx->connector->eld), len));
+ }
mutex_unlock(&ctx->lock);
return 0;