net: stmmac: xgmac: Disable Flow Control when 1 or more queues are in AV
When in AVB mode we need to disable flow control to prevent MAC from
pausing in TX side.
Fixes: ec6ea8e3ee
("net: stmmac: Add CBS support in XGMAC2")
Signed-off-by: Jose Abreu <Jose.Abreu@synopsys.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
08c1ac3bcb
commit
132f2f20c9
@ -470,6 +470,7 @@ static void dwxgmac2_enable_tso(void __iomem *ioaddr, bool en, u32 chan)
|
||||
static void dwxgmac2_qmode(void __iomem *ioaddr, u32 channel, u8 qmode)
|
||||
{
|
||||
u32 value = readl(ioaddr + XGMAC_MTL_TXQ_OPMODE(channel));
|
||||
u32 flow = readl(ioaddr + XGMAC_RX_FLOW_CTRL);
|
||||
|
||||
value &= ~XGMAC_TXQEN;
|
||||
if (qmode != MTL_QUEUE_AVB) {
|
||||
@ -477,6 +478,7 @@ static void dwxgmac2_qmode(void __iomem *ioaddr, u32 channel, u8 qmode)
|
||||
writel(0, ioaddr + XGMAC_MTL_TCx_ETS_CONTROL(channel));
|
||||
} else {
|
||||
value |= 0x1 << XGMAC_TXQEN_SHIFT;
|
||||
writel(flow & (~XGMAC_RFE), ioaddr + XGMAC_RX_FLOW_CTRL);
|
||||
}
|
||||
|
||||
writel(value, ioaddr + XGMAC_MTL_TXQ_OPMODE(channel));
|
||||
|
Loading…
Reference in New Issue
Block a user