NFC: nfcmrvl: avoid UART break control during FW download
authorVincent Cuissard <cuissard@marvell.com>
Tue, 3 Nov 2015 18:19:32 +0000 (19:19 +0100)
committerSamuel Ortiz <sameo@linux.intel.com>
Wed, 4 Nov 2015 23:32:25 +0000 (00:32 +0100)
BootROM does not support any form of power management during
FW download. On UART, the driver shall not try to send breaks.

Signed-off-by: Vincent Cuissard <cuissard@marvell.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
drivers/nfc/nfcmrvl/uart.c

index f3d041c4f249e05dced87bd76786bc8a612fd915..b33249bec41912fe6ebf9175b1f79d50350a2b32 100644 (file)
@@ -152,10 +152,6 @@ static int nfcmrvl_nci_uart_open(struct nci_uart *nu)
        nu->drv_data = priv;
        nu->ndev = priv->ndev;
 
-       /* Set BREAK */
-       if (priv->config.break_control && nu->tty->ops->break_ctl)
-               nu->tty->ops->break_ctl(nu->tty, -1);
-
        return 0;
 }
 
@@ -174,6 +170,9 @@ static void nfcmrvl_nci_uart_tx_start(struct nci_uart *nu)
 {
        struct nfcmrvl_private *priv = (struct nfcmrvl_private *)nu->drv_data;
 
+       if (priv->ndev->nfc_dev->fw_download_in_progress)
+               return;
+
        /* Remove BREAK to wake up the NFCC */
        if (priv->config.break_control && nu->tty->ops->break_ctl) {
                nu->tty->ops->break_ctl(nu->tty, 0);
@@ -185,6 +184,9 @@ static void nfcmrvl_nci_uart_tx_done(struct nci_uart *nu)
 {
        struct nfcmrvl_private *priv = (struct nfcmrvl_private *)nu->drv_data;
 
+       if (priv->ndev->nfc_dev->fw_download_in_progress)
+               return;
+
        /*
        ** To ensure that if the NFCC goes in DEEP SLEEP sate we can wake him
        ** up. we set BREAK. Once we will be ready to send again we will remove