[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20230909144432.34972-1-jernej.skrabec@gmail.com>
Date: Sat, 9 Sep 2023 16:44:32 +0200
From: Jernej Skrabec <jernej.skrabec@...il.com>
To: andrzej.hajda@...el.com, neil.armstrong@...aro.org,
rfoss@...nel.org, hverkuil-cisco@...all.nl
Cc: Laurent.pinchart@...asonboard.com, jonas@...boo.se,
airlied@...il.com, daniel@...ll.ch,
dri-devel@...ts.freedesktop.org, linux-media@...r.kernel.org,
linux-kernel@...r.kernel.org,
Jernej Skrabec <jernej.skrabec@...il.com>
Subject: [PATCH] drm/bridge: dw-hdmi-cec: Add arbitration lost event
Add handling of arbitration lost event.
Signed-off-by: Jernej Skrabec <jernej.skrabec@...il.com>
---
drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c
index be21c11de1f2..673661160e54 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c
@@ -145,6 +145,10 @@ static irqreturn_t dw_hdmi_cec_hardirq(int irq, void *data)
cec->tx_status = CEC_TX_STATUS_NACK;
cec->tx_done = true;
ret = IRQ_WAKE_THREAD;
+ } else if (stat & CEC_STAT_ARBLOST) {
+ cec->tx_status = CEC_TX_STATUS_ARB_LOST;
+ cec->tx_done = true;
+ ret = IRQ_WAKE_THREAD;
}
if (stat & CEC_STAT_EOM) {
@@ -209,7 +213,7 @@ static int dw_hdmi_cec_enable(struct cec_adapter *adap, bool enable)
cec->ops->enable(cec->hdmi);
irqs = CEC_STAT_ERROR_INIT | CEC_STAT_NACK | CEC_STAT_EOM |
- CEC_STAT_DONE;
+ CEC_STAT_ARBLOST | CEC_STAT_DONE;
dw_hdmi_write(cec, irqs, HDMI_CEC_POLARITY);
dw_hdmi_write(cec, ~irqs, HDMI_CEC_MASK);
dw_hdmi_write(cec, ~irqs, HDMI_IH_MUTE_CEC_STAT0);
--
2.42.0
Powered by blists - more mailing lists