From: Jaehoon Chung Date: Wed, 25 Oct 2023 01:48:17 +0000 (+0900) Subject: Revert "serial: bcm283x_mu: Refactor RX buffer" X-Git-Tag: accepted/tizen/unified/20231106.171643~8 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=65fe103f59163371f5c1657d23a2f2176b1c2aff;p=platform%2Fkernel%2Fu-boot.git Revert "serial: bcm283x_mu: Refactor RX buffer" This reverts commit 8b4dad3bbef994712eb767172fe1f9660ad9504d. Change-Id: Ic7b1fcf83aba4c770fe3a9824f9e9892f7fa6b3f Signed-off-by: Jaehoon Chung --- diff --git a/drivers/serial/serial_bcm283x_mu.c b/drivers/serial/serial_bcm283x_mu.c index 840006c5bd..93f3657543 100644 --- a/drivers/serial/serial_bcm283x_mu.c +++ b/drivers/serial/serial_bcm283x_mu.c @@ -83,15 +83,12 @@ out: static inline int bcm283x_mu_rx_buffer_full(struct bcm283x_mu_priv *priv) { - if (!priv->rx_buffer_out_pos) - return priv->rx_buffer_in_pos == BCM283X_MU_RX_BUFFER_LEN - 1; - - return priv->rx_buffer_out_pos == priv->rx_buffer_in_pos + 1; + 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; + 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) @@ -99,10 +96,7 @@ 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_in_pos++; - priv->rx_buffer_in_pos %= BCM283X_MU_RX_BUFFER_LEN; - - priv->rx_buffer[priv->rx_buffer_in_pos] = data; + priv->rx_buffer[++priv->rx_buffer_in_pos] = data; } static int bcm283x_mu_rx_buffer_get(struct bcm283x_mu_priv *priv) @@ -114,7 +108,6 @@ static int bcm283x_mu_rx_buffer_get(struct bcm283x_mu_priv *priv) priv->rx_buffer_out_pos = BCM283X_MU_RX_BUFFER_INIT_POS; } else { priv->rx_buffer_out_pos++; - priv->rx_buffer_out_pos %= BCM283X_MU_RX_BUFFER_LEN; } return data; @@ -124,19 +117,19 @@ 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 = 32; + int max_count = 256; while (readl(®s->lsr) & BCM283X_MU_LSR_RX_READY) { if (bcm283x_mu_rx_buffer_full(priv) || --max_count == 0) break; - bcm283x_mu_rx_buffer_put(priv, (int)readl(®s->io)); + bcm283x_mu_rx_buffer_put(priv, readl(®s->io)); } if (bcm283x_mu_rx_buffer_empty(priv)) return -EAGAIN; - return bcm283x_mu_rx_buffer_get(priv); + return (int)bcm283x_mu_rx_buffer_get(priv); } static int bcm283x_mu_serial_putc(struct udevice *dev, const char data)