[U-Boot] [PATCH 09/10] net: mvpp2x: remove TX drain from transmit routine
Joe Hershberger
joe.hershberger at ni.com
Tue Aug 8 16:15:19 UTC 2017
On Wed, Jun 21, 2017 at 3:31 AM, <stefanc at malvell.com> wrote:
> From: Stefan Chulski <stefanc at marvell.com>
>
> TX drain in transmit procedure could cause issues due
> to race between drain procedure and transmition of descriptor
> between AGGR TXQ and physical TXQ.
> TXQ be cleared before moving to Linux by stop procedure.
TXQ be cleared -> TXQ will be cleared
>
> Change-Id: I1d52cf087505d35d8a10e0249f78d0177a569658
> Signed-off-by: Stefan Chulski <stefanc at marvell.com>
> Reviewed-on: http://vgitil04.il.marvell.com:8080/39968
> Tested-by: iSoC Platform CI <ykjenk at marvell.com>
> Reviewed-by: Nadav Haklai <nadavh at marvell.com>
> Reviewed-on: http://vgitil04.il.marvell.com:8080/39955
> Reviewed-by: Igal Liberman <igall at marvell.com>
Acked-by: Joe Hershberger <joe.hershberger at ni.com>
> ---
> drivers/net/mvpp2.c | 21 ---------------------
> 1 file changed, 21 deletions(-)
>
> diff --git a/drivers/net/mvpp2.c b/drivers/net/mvpp2.c
> index 931047e..8168539 100644
> --- a/drivers/net/mvpp2.c
> +++ b/drivers/net/mvpp2.c
> @@ -5261,21 +5261,6 @@ static int mvpp2_recv(struct udevice *dev, int flags, uchar **packetp)
> return rx_bytes;
> }
>
> -/* Drain Txq */
> -static void mvpp2_txq_drain(struct mvpp2_port *port, struct mvpp2_tx_queue *txq,
> - int enable)
> -{
> - u32 val;
> -
> - mvpp2_write(port->priv, MVPP2_TXQ_NUM_REG, txq->id);
> - val = mvpp2_read(port->priv, MVPP2_TXQ_PREF_BUF_REG);
> - if (enable)
> - val |= MVPP2_TXQ_DRAIN_EN_MASK;
> - else
> - val &= ~MVPP2_TXQ_DRAIN_EN_MASK;
> - mvpp2_write(port->priv, MVPP2_TXQ_PREF_BUF_REG, val);
> -}
> -
> static int mvpp2_send(struct udevice *dev, void *packet, int length)
> {
> struct mvpp2_port *port = dev_get_priv(dev);
> @@ -5319,9 +5304,6 @@ static int mvpp2_send(struct udevice *dev, void *packet, int length)
> tx_done = mvpp2_txq_pend_desc_num_get(port, txq);
> } while (tx_done);
>
> - /* Enable TXQ drain */
> - mvpp2_txq_drain(port, txq, 1);
> -
> timeout = 0;
> do {
> if (timeout++ > 10000) {
> @@ -5331,9 +5313,6 @@ static int mvpp2_send(struct udevice *dev, void *packet, int length)
> tx_done = mvpp2_txq_sent_desc_proc(port, txq);
> } while (!tx_done);
>
> - /* Disable TXQ drain */
> - mvpp2_txq_drain(port, txq, 0);
> -
> return 0;
> }
>
> --
> 1.9.1
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot
More information about the U-Boot
mailing list