mirror of
https://github.com/torvalds/linux.git
synced 2026-01-12 00:42:35 +08:00
net: thunderbolt: Enable end-to-end flow control also in transmit
According to USB4 specification, if E2E flow control is disabled for the Transmit Descriptor Ring, the Host Interface Adapter Layer shall not require any credits to be available before transmitting a Tunneled Packet from this Transmit Descriptor Ring, so e2e flow control should be enabled in both directions. Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com> Link: https://lore.kernel.org/20250624153805.GC2824380@black.fi.intel.com Signed-off-by: zhangjianrong <zhangjianrong5@huawei.com> Link: https://patch.msgid.link/20250628093813.647005-1-zhangjianrong5@huawei.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
8ec31cb17c
commit
a8065af334
@@ -924,8 +924,12 @@ static int tbnet_open(struct net_device *dev)
|
||||
|
||||
netif_carrier_off(dev);
|
||||
|
||||
ring = tb_ring_alloc_tx(xd->tb->nhi, -1, TBNET_RING_SIZE,
|
||||
RING_FLAG_FRAME);
|
||||
flags = RING_FLAG_FRAME;
|
||||
/* Only enable full E2E if the other end supports it too */
|
||||
if (tbnet_e2e && net->svc->prtcstns & TBNET_E2E)
|
||||
flags |= RING_FLAG_E2E;
|
||||
|
||||
ring = tb_ring_alloc_tx(xd->tb->nhi, -1, TBNET_RING_SIZE, flags);
|
||||
if (!ring) {
|
||||
netdev_err(dev, "failed to allocate Tx ring\n");
|
||||
return -ENOMEM;
|
||||
@@ -944,11 +948,6 @@ static int tbnet_open(struct net_device *dev)
|
||||
sof_mask = BIT(TBIP_PDF_FRAME_START);
|
||||
eof_mask = BIT(TBIP_PDF_FRAME_END);
|
||||
|
||||
flags = RING_FLAG_FRAME;
|
||||
/* Only enable full E2E if the other end supports it too */
|
||||
if (tbnet_e2e && net->svc->prtcstns & TBNET_E2E)
|
||||
flags |= RING_FLAG_E2E;
|
||||
|
||||
ring = tb_ring_alloc_rx(xd->tb->nhi, -1, TBNET_RING_SIZE, flags,
|
||||
net->tx_ring.ring->hop, sof_mask,
|
||||
eof_mask, tbnet_start_poll, net);
|
||||
|
||||
Reference in New Issue
Block a user