drm/bridge: dw-hdmi-cec: Add arbitration lost event
authorJernej Skrabec <jernej.skrabec@gmail.com>
Sat, 9 Sep 2023 14:44:32 +0000 (16:44 +0200)
committerRobert Foss <rfoss@kernel.org>
Mon, 18 Sep 2023 09:59:09 +0000 (11:59 +0200)
Add handling of arbitration lost event.

Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Reviewed-by: Robert Foss <rfoss@kernel.org>
Signed-off-by: Robert Foss <rfoss@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20230909144432.34972-1-jernej.skrabec@gmail.com
drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c

index be21c11..6736611 100644 (file)
@@ -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);