WSL2-Linux-Kernel/drivers
Tan Tee Min 50ca4e7f91 net: phy: dp83867: retrigger SGMII AN when link change
commit c76acfb7e1 upstream.

There is a limitation in TI DP83867 PHY device where SGMII AN is only
triggered once after the device is booted up. Even after the PHY TPI is
down and up again, SGMII AN is not triggered and hence no new in-band
message from PHY to MAC side SGMII.

This could cause an issue during power up, when PHY is up prior to MAC.
At this condition, once MAC side SGMII is up, MAC side SGMII wouldn`t
receive new in-band message from TI PHY with correct link status, speed
and duplex info.

As suggested by TI, implemented a SW solution here to retrigger SGMII
Auto-Neg whenever there is a link change.

v2: Add Fixes tag in commit message.

Fixes: 2a10154abc ("net: phy: dp83867: Add TI dp83867 phy")
Cc: <stable@vger.kernel.org> # 5.4.x
Signed-off-by: Sit, Michael Wei Hong <michael.wei.hong.sit@intel.com>
Reviewed-by: Voon Weifeng <weifeng.voon@intel.com>
Signed-off-by: Tan Tee Min <tee.min.tan@linux.intel.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://lore.kernel.org/r/20220526090347.128742-1-tee.min.tan@linux.intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-06-14 18:36:25 +02:00
..
accessibility
acpi ACPI: property: Release subnode properties with data nodes 2022-06-09 10:23:20 +02:00
amba
android
ata ata: libata-transport: fix {dma|pio|xfer}_mode sysfs files 2022-06-14 18:36:25 +02:00
atm
auxdisplay
base driver core: Fix wait_for_device_probe() & deferred_probe_timeout interaction 2022-06-14 18:36:13 +02:00
bcma
block nbd: fix io hung while disconnecting device 2022-06-14 18:36:24 +02:00
bluetooth Bluetooth: hci_qca: Use del_timer_sync() before freeing 2022-06-06 08:43:40 +02:00
bus bus: ti-sysc: Fix warnings for unbind for serial 2022-06-14 18:36:09 +02:00
cdrom
char char: xillybus: fix a refcount leak in cleanup_dev() 2022-06-14 18:36:21 +02:00
clk clk: tegra: Add missing reset deassertion 2022-06-09 10:23:29 +02:00
clocksource clocksource/drivers/sp804: Avoid error on multiple instances 2022-06-14 18:36:22 +02:00
comedi
connector
counter
cpufreq cpufreq: mediatek: Unregister platform device on exit 2022-06-09 10:23:14 +02:00
cpuidle cpuidle: PSCI: Improve support for suspend-to-RAM for PSCI OSI mode 2022-06-09 10:22:33 +02:00
crypto crypto: sun8i-ss - handle zero sized sg 2022-06-09 10:23:11 +02:00
cxl cxl/regs: Fix size of CXL Capability Header Register 2022-04-08 14:23:30 +02:00
dax dax: make sure inodes are flushed before destroy cache 2022-04-08 14:23:31 +02:00
dca
devfreq PM / devfreq: rk3399_dmc: Disable edev on remove() 2022-06-09 10:22:41 +02:00
dio
dma dmaengine: zynqmp_dma: In struct zynqmp_dma_chan fix desc_size data type 2022-06-14 18:36:15 +02:00
dma-buf dma-buf: ensure unique directory name for dmabuf stats 2022-05-25 09:57:29 +02:00
edac EDAC/dmc520: Don't print an error for each unconfigured interrupt line 2022-06-09 10:22:47 +02:00
eisa
extcon extcon: Modify extcon device to be created after driver data is set 2022-06-14 18:36:22 +02:00
firewire firewire: core: extend card->lock in fw_core_handle_bus_reset 2022-05-12 12:30:05 +02:00
firmware firmware: dmi-sysfs: Fix memory leak in dmi_sysfs_register_handle 2022-06-14 18:36:09 +02:00
fpga
fsi fsi: Aspeed: Fix a potential double free 2022-04-08 14:23:44 +02:00
gnss
gpio gpio: pca953x: use the correct register address to do regcache sync 2022-06-14 18:36:13 +02:00
gpu drm/amd/pm: use bitmap_{from,to}_arr32 where appropriate 2022-06-14 18:36:24 +02:00
greybus
hid HID: amd_sfh: Modify the hid name 2022-06-09 10:22:56 +02:00
hsi
hv Drivers: hv: vmbus: Fix handling of messages with transaction ID of zero 2022-06-09 10:23:07 +02:00
hwmon hwmon: (pmbus) Check PEC support before reading other registers 2022-06-09 10:23:02 +02:00
hwspinlock
hwtracing coresight: cpu-debug: Replace mutex with mutex_trylock on panic notifier 2022-06-14 18:36:06 +02:00
i2c i2c: cadence: Increase timeout per message if necessary 2022-06-14 18:36:15 +02:00
i3c
idle
iio iio: st_sensors: Add a local lock for protecting odr 2022-06-14 18:36:20 +02:00
infiniband RDMA/rxe: Generate a completion for unsupported/invalid opcode 2022-06-09 10:23:31 +02:00
input Input: stmfts - do not leave device disabled in stmfts_input_open 2022-06-09 10:23:13 +02:00
interconnect interconnect: qcom: icc-rpmh: Add BCMs to commit list in pre_aggregate 2022-06-09 10:23:31 +02:00
iommu iommu/arm-smmu-v3: check return value after calling platform_get_resource() 2022-06-14 18:36:14 +02:00
ipack
irqchip irqchip: irq-xtensa-mx: fix initial IRQ affinity 2022-06-09 10:23:26 +02:00
isdn
leds
macintosh macintosh: via-pmu and via-cuda need RTC_LIB 2022-06-09 10:23:12 +02:00
mailbox mailbox: forward the hrtimer if not queued and under a lock 2022-06-09 10:23:12 +02:00
mcb
md md: protect md_unregister_thread from reentrancy 2022-06-14 18:36:22 +02:00
media media: coda: Add more H264 levels for CODA960 2022-06-09 10:23:25 +02:00
memory memory: samsung: exynos5422-dmc: Avoid some over memory allocation 2022-06-09 10:23:04 +02:00
memstick
message
mfd mfd: davinci_voicecodec: Fix possible null-ptr-deref davinci_vc_probe() 2022-06-09 10:23:12 +02:00
misc misc: rtsx: set NULL intfdata when probe fails 2022-06-14 18:36:21 +02:00
mmc mmc: block: Fix CQE recovery reset success 2022-06-14 18:36:25 +02:00
most
mtd ubi: ubi_create_volume: Fix use-after-free when volume creation failed 2022-06-14 18:36:10 +02:00
mux
net net: phy: dp83867: retrigger SGMII AN when link change 2022-06-14 18:36:25 +02:00
nfc NFC: hci: fix sleep in atomic context bugs in nfc_hci_hcp_message_tx 2022-06-09 10:23:01 +02:00
ntb
nubus
nvdimm nvdimm: Allow overwrite in the presence of disabled dimms 2022-06-09 10:23:08 +02:00
nvme nvme: set dma alignment to dword 2022-06-09 10:22:58 +02:00
nvmem
of of: overlay: do not break notify on NOTIFY_{OK|STOP} 2022-06-09 10:22:50 +02:00
opp OPP: call of_node_put() on error path in _bandwidth_supported() 2022-06-09 10:23:13 +02:00
parisc parisc: Fix CPU affinity for Lasi, WAX and Dino chips 2022-04-13 20:59:14 +02:00
parport
pci PCI: qcom: Fix unbalanced PHY init on probe errors 2022-06-09 10:23:21 +02:00
pcmcia pcmcia: db1xxx_ss: restrict to MIPS_DB1XXX boards 2022-06-14 18:36:02 +02:00
perf arm_pmu: Validate single/group leader events 2022-04-27 14:39:00 +02:00
phy phy: qcom-qmp: fix pipe-clock imbalance on power-on failure 2022-06-14 18:36:06 +02:00
pinctrl pinctrl/rockchip: support setting input-enable param 2022-06-09 10:23:32 +02:00
platform MIPS: Loongson: Use hwmon_device_register_with_groups() to register hwmon 2022-06-09 10:23:14 +02:00
pnp
power extcon: Fix extcon_get_extcon_dev() error handling 2022-06-14 18:36:21 +02:00
powercap
pps pps: clients: gpio: Propagate return value from pps_gpio_probe 2022-04-08 14:23:44 +02:00
ps3
ptp ptp: replace snprintf with sysfs_emit 2022-04-13 20:59:01 +02:00
pwm pwm: raspberrypi-poe: Fix endianness in firmware struct 2022-06-14 18:36:04 +02:00
rapidio
ras
regulator regulator: scmi: Fix refcount leak in scmi_regulator_probe 2022-06-09 10:23:00 +02:00
remoteproc remoteproc: imx_rproc: Ignore create mem entry for resource table 2022-06-14 18:36:03 +02:00
reset reset: tegra-bpmp: Restore Handle errors in BPMP response 2022-04-27 14:38:55 +02:00
rpmsg rpmsg: qcom_smd: Fix returning 0 if irq_of_parse_and_map() fails 2022-06-14 18:36:05 +02:00
rtc rtc: ftrtc010: Fix error handling in ftrtc010_rtc_probe 2022-06-14 18:36:07 +02:00
s390 s390/stp: clock_delta should be signed 2022-06-09 10:23:21 +02:00
sbus
scsi scsi: myrb: Fix up null pointer access on myrb_cleanup() 2022-06-14 18:36:22 +02:00
sh
siox
slimbus slimbus: qcom: Fix IRQ check in qcom_slim_probe 2022-05-18 10:26:55 +02:00
soc soc: rockchip: Fix refcount leak in rockchip_grf_init 2022-06-14 18:36:07 +02:00
soundwire soundwire: qcom: adjust autoenumeration timeout 2022-06-14 18:36:21 +02:00
spi spi: spi-fsl-qspi: check return value after calling platform_get_resource_byname() 2022-06-09 10:22:55 +02:00
spmi
ssb
staging staging: rtl8712: fix uninit-value in r871xu_drv_init() 2022-06-14 18:36:22 +02:00
target target: remove an incorrect unmap zeroes data deduction 2022-06-09 10:22:47 +02:00
tc
tee
thermal thermal: devfreq_cooling: use local ops instead of global ops 2022-06-09 10:23:26 +02:00
thunderbolt thunderbolt: Use different lane for second DisplayPort tunnel 2022-06-14 18:36:20 +02:00
tty serial: msm_serial: disable interrupts in __msm_console_write() 2022-06-14 18:36:22 +02:00
uio
usb extcon: Fix extcon_get_extcon_dev() error handling 2022-06-14 18:36:21 +02:00
vdpa vdpa: ifcvf: set pci driver data in probe 2022-06-14 18:36:13 +02:00
vfio vfio/pci: Fix vf_token mechanism when device-specific VF drivers are used 2022-04-20 09:34:13 +02:00
vhost vringh: Fix loop descriptors check in the indirect cases 2022-06-14 18:36:24 +02:00
video video: fbdev: pxa3xx-gcu: release the resources correctly in pxa3xx_gcu_probe/remove() 2022-06-14 18:36:15 +02:00
virt virt: acrn: fix a memory leak in acrn_dev_ioctl() 2022-04-08 14:23:50 +02:00
virtio virtio: pci: Fix an error handling path in vp_modern_probe() 2022-06-14 18:36:12 +02:00
visorbus
vlynq
vme
w1 w1: w1_therm: fixes w1_seq for ds28ea00 sensors 2022-04-13 20:59:11 +02:00
watchdog watchdog: wdat_wdt: Stop watchdog when rebooting the system 2022-06-14 18:36:22 +02:00
xen xen: unexport __init-annotated xen_xlate_map_ballooned_pages() 2022-06-14 18:36:17 +02:00
zorro
Kconfig
Makefile