Skip to content

Commit 18ff09c

Browse files
ffainellikuba-moo
authored andcommitted
net: bcmasp: Restore programming of TX map vector register
On ASP versions v2.x we need to program the TX map vector register to properly exercise end-to-end flow control, otherwise the TX engine can either lock-up, or cause the hardware calculated checksum to be wrong/corrupted when multiple back to back packets are being submitted for transmission. This register defaults to 0, which means no flow control being applied. Fixes: e9f3143 ("net: bcmasp: Add support for asp-v3.0") Signed-off-by: Florian Fainelli <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
1 parent 53b2fb6 commit 18ff09c

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -818,6 +818,9 @@ static void bcmasp_init_tx(struct bcmasp_intf *intf)
818818
/* Tx SPB */
819819
tx_spb_ctrl_wl(intf, ((intf->channel + 8) << TX_SPB_CTRL_XF_BID_SHIFT),
820820
TX_SPB_CTRL_XF_CTRL2);
821+
822+
if (intf->parent->tx_chan_offset)
823+
tx_pause_ctrl_wl(intf, (1 << (intf->channel + 8)), TX_PAUSE_MAP_VECTOR);
821824
tx_spb_top_wl(intf, 0x1e, TX_SPB_TOP_BLKOUT);
822825

823826
tx_spb_dma_wq(intf, intf->tx_spb_dma_addr, TX_SPB_DMA_READ);

0 commit comments

Comments
 (0)