Revert "serial: bcm283x_mu: Support RX buffer" 39/300439/1
authorJaehoon Chung <jh80.chung@samsung.com>
Wed, 25 Oct 2023 01:50:43 +0000 (10:50 +0900)
committerJaehoon Chung <jh80.chung@samsung.com>
Wed, 25 Oct 2023 04:13:09 +0000 (13:13 +0900)
This reverts commit b84e5e2a9016f05470b2c9f1bb55617b065d5387.

Change-Id: I6d590f4cd0ff23986952743fbc85168b7f847aad
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
drivers/serial/serial_bcm283x_mu.c

index 93f3657..7585f79 100644 (file)
@@ -47,14 +47,8 @@ struct bcm283x_mu_regs {
 #define BCM283X_MU_LSR_TX_EMPTY                BIT(5)
 #define BCM283X_MU_LSR_RX_READY                BIT(0)
 
-#define BCM283X_MU_RX_BUFFER_LEN       1024
-#define BCM283X_MU_RX_BUFFER_INIT_POS  -1
-
 struct bcm283x_mu_priv {
        struct bcm283x_mu_regs *regs;
-       int rx_buffer[BCM283X_MU_RX_BUFFER_LEN];
-       int rx_buffer_in_pos;
-       int rx_buffer_out_pos;
 };
 
 static int bcm283x_mu_serial_getc(struct udevice *dev);
@@ -81,55 +75,19 @@ out:
        return 0;
 }
 
-static inline int bcm283x_mu_rx_buffer_full(struct bcm283x_mu_priv *priv)
-{
-       return !!(priv->rx_buffer_in_pos == BCM283X_MU_RX_BUFFER_LEN - 1);
-}
-
-static inline int bcm283x_mu_rx_buffer_empty(struct bcm283x_mu_priv *priv)
-{
-       return !!(priv->rx_buffer_out_pos == BCM283X_MU_RX_BUFFER_INIT_POS);
-}
-
-static void bcm283x_mu_rx_buffer_put(struct bcm283x_mu_priv *priv, int data)
-{
-       if (bcm283x_mu_rx_buffer_empty(priv))
-               priv->rx_buffer_out_pos++;
-
-       priv->rx_buffer[++priv->rx_buffer_in_pos] = data;
-}
-
-static int bcm283x_mu_rx_buffer_get(struct bcm283x_mu_priv *priv)
-{
-       int data = priv->rx_buffer[priv->rx_buffer_out_pos];
-
-       if (priv->rx_buffer_in_pos == priv->rx_buffer_out_pos) {
-               priv->rx_buffer_in_pos = BCM283X_MU_RX_BUFFER_INIT_POS;
-               priv->rx_buffer_out_pos = BCM283X_MU_RX_BUFFER_INIT_POS;
-       } else {
-               priv->rx_buffer_out_pos++;
-       }
-
-       return data;
-}
-
 static int bcm283x_mu_serial_getc(struct udevice *dev)
 {
        struct bcm283x_mu_priv *priv = dev_get_priv(dev);
        struct bcm283x_mu_regs *regs = priv->regs;
-       int max_count = 256;
+       u32 data;
 
-       while (readl(&regs->lsr) & BCM283X_MU_LSR_RX_READY) {
-               if (bcm283x_mu_rx_buffer_full(priv) || --max_count == 0)
-                       break;
-
-               bcm283x_mu_rx_buffer_put(priv, readl(&regs->io));
-       }
-
-       if (bcm283x_mu_rx_buffer_empty(priv))
+       /* Wait until there is data in the FIFO */
+       if (!(readl(&regs->lsr) & BCM283X_MU_LSR_RX_READY))
                return -EAGAIN;
 
-       return (int)bcm283x_mu_rx_buffer_get(priv);
+       data = readl(&regs->io);
+
+       return (int)data;
 }
 
 static int bcm283x_mu_serial_putc(struct udevice *dev, const char data)
@@ -228,10 +186,6 @@ static int bcm283x_mu_serial_probe(struct udevice *dev)
 
        priv->regs = (struct bcm283x_mu_regs *)plat->base;
 
-       priv->rx_buffer_in_pos = BCM283X_MU_RX_BUFFER_INIT_POS;
-       priv->rx_buffer_out_pos = BCM283X_MU_RX_BUFFER_INIT_POS;
-
-
        return 0;
 }
 #endif