MLK-16013-13: staging: typec: tcpci: handle rx buffer overflow event
authorLi Jun <jun.li@nxp.com>
Wed, 26 Jul 2017 16:36:54 +0000 (00:36 +0800)
committerNitin Garg <nitin.garg@nxp.com>
Mon, 19 Mar 2018 20:36:18 +0000 (15:36 -0500)
Add rx buffer overflow event handling.

Reviewed-by: Peter Chen <peter.chen@nxp.com>
Signed-off-by: Li Jun <jun.li@nxp.com>
drivers/staging/typec/tcpci.c

index 2fddcad..0e0db86 100644 (file)
@@ -367,7 +367,8 @@ static int tcpci_init(struct tcpc_dev *tcpc)
 
        reg = TCPC_ALERT_TX_SUCCESS | TCPC_ALERT_TX_FAILED |
                TCPC_ALERT_TX_DISCARDED | TCPC_ALERT_RX_STATUS |
-               TCPC_ALERT_RX_HARD_RST | TCPC_ALERT_CC_STATUS;
+               TCPC_ALERT_RX_HARD_RST | TCPC_ALERT_CC_STATUS |
+               TCPC_ALERT_RX_BUF_OVF;
        if (tcpci->controls_vbus)
                reg |= TCPC_ALERT_POWER_STATUS;
        tcpci->irq_mask = reg;
@@ -428,6 +429,10 @@ static irqreturn_t tcpci_irq(int irq, void *dev_id)
                tcpm_pd_receive(tcpci->port, &msg);
        }
 
+       if (status & TCPC_ALERT_RX_BUF_OVF)
+               tcpci_write16(tcpci, TCPC_ALERT,
+                       TCPC_ALERT_RX_BUF_OVF | TCPC_ALERT_RX_STATUS);
+
        if (status & TCPC_ALERT_RX_HARD_RST)
                tcpm_pd_hard_reset(tcpci->port);