mirror-linux/drivers
Wei Fang e31a11be41 net: phylink: add missing supported link modes for the fixed-link
Pause, Asym_Pause and Autoneg bits are not set when pl->supported is
initialized, so these link modes will not work for the fixed-link. This
leads to a TCP performance degradation issue observed on the i.MX943
platform.

The switch CPU port of i.MX943 is connected to an ENETC MAC, this link
is a fixed link and the link speed is 2.5Gbps. And one of the switch
user ports is the RGMII interface, and its link speed is 1Gbps. If the
flow-control of the fixed link is not enabled, we can easily observe
the iperf performance of TCP packets is very low. Because the inbound
rate on the CPU port is greater than the outbound rate on the user port,
the switch is prone to congestion, leading to the loss of some TCP
packets and requiring multiple retransmissions.

Solving this problem should be as simple as setting the Asym_Pause and
Pause bits. The reason why the Autoneg bit needs to be set, Russell
has gave a very good explanation in the thread [1], see below.

"As the advertising and lp_advertising bitmasks have to be non-empty,
and the swphy reports aneg capable, aneg complete, and AN enabled, then
for consistency with that state, Autoneg should be set. This is how it
was prior to the blamed commit."

Fixes: de7d3f87be ("net: phylink: Use phy_caps_lookup for fixed-link configuration")
Link: https://lore.kernel.org/aRjqLN8eQDIQfBjS@shell.armlinux.org.uk # [1]
Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Link: https://patch.msgid.link/20251117102943.1862680-1-wei.fang@nxp.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-11-19 08:31:11 -08:00
..
accel accel/qaic: Synchronize access to DBC request queue head & tail pointer 2025-10-14 08:56:31 -06:00
accessibility
acpi Merge branches 'acpi-cppc' and 'acpi-docs' 2025-11-06 22:10:27 +01:00
amba
android binder: remove "invalid inc weak" check 2025-10-22 08:04:15 +02:00
ata ata: libata-core: relax checks in ata_read_log_directory() 2025-10-13 09:12:36 +02:00
atm
auxdisplay
base regmap: Fixes for v6.18 2025-11-01 10:45:39 -07:00
bcma bcma: don't register devices disabled in OF 2025-10-20 13:54:15 +02:00
block block-6.18-20251031 2025-10-31 12:57:19 -07:00
bluetooth Bluetooth: btrtl: Avoid loading the config file on security chips 2025-11-11 09:06:57 -05:00
bus Char/Misc/IIO/Binder changes for 6.18-rc1 2025-10-04 16:26:32 -07:00
cache
cdrom
cdx Char/Misc/IIO/Binder changes for 6.18-rc1 2025-10-04 16:26:32 -07:00
char tpm_crb: Add idle support for the Arm FF-A start method 2025-10-18 14:33:22 +03:00
clk There's a bunch of patches here across drivers/clk/ to migrate drivers to use 2025-10-07 09:28:37 -07:00
clocksource hyperv-next for v6.18 2025-10-07 08:40:15 -07:00
comedi comedi: fix divide-by-zero in comedi_buf_munge() 2025-10-22 08:03:52 +02:00
connector
counter
cpufreq cpufreq/amd-pstate: Fix a regression leading to EPP 0 after hibernate 2025-10-15 08:21:16 -05:00
cpuidle RISC-V updates for v6.18-rc5 2025-11-06 15:44:18 -08:00
crypto crypto: aspeed - fix double free caused by devm 2025-10-23 12:53:23 +08:00
cxl cxl/trace: Subtract to find an hpa_alias0 in cxl_poison events 2025-10-14 14:48:14 -07:00
dax fs: rename generic_delete_inode() and generic_drop_inode() 2025-09-15 16:09:42 +02:00
dca
devfreq PM / devfreq: rockchip-dfi: switch to FIELD_PREP_WM16 macro 2025-10-15 10:39:54 -04:00
dibs dibs: Check correct variable in dibs_init() 2025-09-26 15:10:59 -07:00
dio
dma dmaengine updates for v6.18 2025-10-06 10:37:06 -07:00
dma-buf dma-fence: Fix safe access wrapper to call timeline name method 2025-10-24 16:56:37 +01:00
dpll dpll: zl3073x: Fix output pin registration 2025-10-28 18:54:48 -07:00
edac EDAC/versalnet: Fix off by one in handle_error() 2025-10-13 17:14:47 +02:00
eisa
extcon
firewire firewire: init_ohci1394_dma: add missing function parameter documentation 2025-10-25 08:29:56 +09:00
firmware Arm SCMI fixes for v6.18 2025-10-23 22:30:01 +02:00
fpga
fsi
fwctl pds_fwctl: Replace kzalloc + copy_from_user with memdup_user in pdsfc_fw_rpc 2025-09-22 10:33:10 -03:00
gnss
gpio gpio: tb10x: Drop unused tb10x_set_bits() function 2025-11-06 18:19:44 +01:00
gpu Third round of Kbuild fixes for 6.19 2025-11-09 09:22:08 -08:00
greybus
hid hid-for-linus-2025101701 2025-10-18 08:18:18 -10:00
hsi
hte
hv Drivers: hv: Make CONFIG_HYPERV bool 2025-10-01 00:00:45 +00:00
hwmon hwmon: (sht3x) Fix error handling 2025-10-19 18:56:14 -07:00
hwspinlock
hwtracing Char/Misc/IIO/Binder changes for 6.18-rc1 2025-10-04 16:26:32 -07:00
i2c i2c: muxes: pca954x: Fix broken reset-gpio usage 2025-11-03 18:04:15 +01:00
i3c i3c: fix big-endian FIFO transfers 2025-09-29 00:17:22 +02:00
idle
iio IIO: New device support, features and cleanup for 6.18 2025-09-23 14:15:25 +02:00
infiniband mlx5: Fix default values in create CQ 2025-11-11 15:12:18 +01:00
input Input updates for v6.18-rc0 2025-10-08 09:44:38 -07:00
interconnect Merge branch 'icc-glymur' into icc-next 2025-09-12 13:54:17 +03:00
iommu iommufd: Make vfio_compat's unmap succeed if the range is already empty 2025-11-05 15:11:26 -04:00
ipack
irqchip irqchip/sifive-plic: Avoid interrupt ID 0 handling during suspend/resume 2025-10-07 10:23:22 +02:00
isdn isdn: mISDN: hfcsusb: fix memory leak in hfcsusb_probe() 2025-10-31 17:39:14 -07:00
leds leds: led-class: Add Device Tree support to led_get() 2025-09-16 16:49:28 +01:00
macintosh
mailbox qcom: add Glymur CPUCP mailbox binding 2025-10-08 11:44:21 -07:00
mcb
md dm docs: fix typos 2025-10-03 18:48:02 -07:00
media media: videobuf2: forbid remove_bufs when legacy fileio is active 2025-10-24 11:16:26 +02:00
memory
memstick Summary of significant series in this pull request: 2025-10-02 18:18:33 -07:00
message
mfd mfd: ls2kbmc: check for devm_mfd_add_devices() failure 2025-10-03 10:38:23 -05:00
misc Char/Misc driver fixes for 6.18-rc3 2025-10-26 10:33:46 -07:00
mmc rpmb: move rpmb_frame struct and constants to common header 2025-10-13 13:18:03 +02:00
most most: usb: hdm_probe: Fix calling put_device() before device initialization 2025-10-22 08:04:43 +02:00
mtd MTD core: 2025-10-04 15:50:37 -07:00
mux
net net: phylink: add missing supported link modes for the fixed-link 2025-11-19 08:31:11 -08:00
nfc
ntb NTB: epf: Add Renesas rcar support 2025-09-22 09:35:21 -04:00
nubus
nvdimm libnvdimm for 6.18 2025-10-06 11:17:18 -07:00
nvme nvme-pci: use blk_map_iter for p2p metadata 2025-10-22 19:46:25 -07:00
nvmem nvmem: rcar-efuse: add missing MODULE_DEVICE_TABLE 2025-10-22 08:02:38 +02:00
of of/irq: Export of_msi_xlate() for module usage 2025-10-24 07:44:09 -05:00
opp
parisc
parport
pci pci-v6.18-fixes-4 2025-10-31 14:24:32 -07:00
pcmcia
peci
perf arm64 fixes for -rc1 2025-10-07 08:59:25 -07:00
phy phy-for-6.18 2025-10-06 10:34:22 -07:00
pinctrl pci-v6.18-changes 2025-10-06 10:41:03 -07:00
platform platform-drivers-x86 for v6.18-3 2025-11-05 11:08:10 -08:00
pmdomain soc: driver updates for 6.18 2025-10-01 17:32:51 -07:00
pnp
power power supply and reset changes for the 6.18 series 2025-10-01 13:02:59 -07:00
powercap
pps
ps3
ptp ptp: Allow exposing cycles only for clocks with free-running counter 2025-10-31 16:27:40 -07:00
pwm gpio updates for v6.18-rc1 2025-10-01 11:34:12 -07:00
rapidio
ras RAS: Export log_non_standard_event() to drivers 2025-09-15 16:20:29 +02:00
regulator regulator: bd718x7: Fix voltages scaled by resistor divider 2025-10-30 11:30:23 +00:00
remoteproc remoteproc updates for v6.18 2025-10-04 15:45:17 -07:00
reset soc: driver updates for 6.18 2025-10-01 17:32:51 -07:00
rpmsg rpmsg: qcom_smd: Fix fallback to qcom,ipc parse 2025-09-20 21:29:48 -05:00
rtc rtc: rx8025: fix incorrect register reference 2025-11-08 20:56:12 +01:00
s390 s390/ctcm: Fix double-kfree 2025-11-17 16:58:25 -08:00
sbus
scsi scsi: core: Fix the unit attention counter implementation 2025-10-21 21:09:36 -04:00
sh
siox
slimbus slimbus: messaging: fix "transfered"->"transferred" 2025-09-12 15:47:38 +02:00
soc net: ethernet: ti: netcp: Standardize knav_dma_open_channel to return NULL on error 2025-11-04 19:15:36 -08:00
soundwire soundwire updates for 6.18 2025-10-06 10:32:22 -07:00
spi spi: intel: Add support for Oak Stream SPI serial flash 2025-10-29 12:53:45 +00:00
spmi
ssb
staging staging: gpib: Fix device reference leak in fmh_gpib driver 2025-10-13 10:55:03 +02:00
target SCSI misc on 20251011 2025-10-11 11:49:00 -07:00
tc
tee TEE QTEE fixes for v6.18 2025-10-17 15:26:52 +02:00
thermal thermal: renesas: Fix RZ/G3E fall-out 2025-10-02 10:41:58 +02:00
thunderbolt thunderbolt: Fix use-after-free in tb_dp_dprx_work 2025-09-23 17:16:38 +02:00
tty serial: 8250_mtk: Enable baud clock and manage in runtime PM 2025-10-22 12:13:54 +02:00
ufs scsi: ufs: core: Fix invalid probe error return value 2025-10-29 23:20:19 -04:00
uio hyperv-next for v6.18 2025-10-07 08:40:15 -07:00
usb USB serial device ids for 6.18-rc3 2025-10-24 13:52:58 +02:00
vdpa mlx5: Fix default values in create CQ 2025-11-11 15:12:18 +01:00
vfio vfio/type1: handle DMA map/unmap up to the addressable limit 2025-10-28 15:54:41 -06:00
vhost vdpa: support virtio_map 2025-10-01 07:24:43 -04:00
video fbdev: atyfb: Check if pll_ops->init_pll failed 2025-10-28 22:59:19 +01:00
virt arm64 updates for 6.18 2025-09-29 18:48:39 -07:00
virtio virtio,vhost: fixes, cleanups 2025-10-04 08:48:16 -07:00
w1
watchdog linux-watchdog 6.18-rc1 tag 2025-10-06 11:00:30 -07:00
xen dma-mapping updates for Linux 6.18: 2025-10-03 17:41:12 -07:00
zorro zorro: Remove extra whitespace in macro definitions 2025-09-15 14:30:17 +02:00
Kconfig
Makefile hyperv-next for v6.18 2025-10-07 08:40:15 -07:00