mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
net: phy: broadcom: enable jumbo frames on BCM54xx
Jumbo packets need two bits that default to off, extended packet length in the auxiliary control register and PCS transmit FIFO elasticity in the extended control register. The latter raises the transmit limit from 4.5 KB to 9 KB at the cost of 16 ns of 1000BASE-T transmit latency, and the two together take copper mode to 10 KB. Without them such frames are lost on a 100M link while the same frames pass at 1G. On a Raspberry Pi CM5, which uses a BCM54210PE, 9142 byte frames at 100M are lost 20 out of 20 with the MAC counting every one as transmitted. The same frames over the same path at 1G arrive intact. Set both, which bcm_phy_enable_jumbo() already does for bcm7xxx. The frames then arrive and the payloads check out byte for byte. Signed-off-by: Nicolai Buchwitz <nb@tipi-net.de> Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com> Link: https://patch.msgid.link/20260914094703.1093504-1-nb@tipi-net.de Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
87b80c2f6b
commit
3c8abdbe34
|
|
@ -537,6 +537,13 @@ static int bcm54xx_config_init(struct phy_device *phydev)
|
|||
|
||||
bcm54xx_ptp_config_init(phydev);
|
||||
|
||||
/* Transmit is limited to 4.5 KB without it, see the BCM54210PE
|
||||
* datasheet section 5.4.12.14.
|
||||
*/
|
||||
err = bcm_phy_enable_jumbo(phydev);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
/* Acknowledge any left over interrupt and charge the device for
|
||||
* wake-up.
|
||||
*/
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user