android_kernel_asus_sm8350/drivers
Siddharth Vadapalli 14a7e3a0d0 PCI: keystone: Fix race condition when initializing PHYs
[ Upstream commit c12ca110c613a81cb0f0099019c839d078cd0f38 ]

The PCI driver invokes the PHY APIs using the ks_pcie_enable_phy()
function. The PHY in this case is the Serdes. It is possible that the
PCI instance is configured for two lane operation across two different
Serdes instances, using one lane of each Serdes.

In such a configuration, if the reference clock for one Serdes is
provided by the other Serdes, it results in a race condition. After the
Serdes providing the reference clock is initialized by the PCI driver by
invoking its PHY APIs, it is not guaranteed that this Serdes remains
powered on long enough for the PHY APIs based initialization of the
dependent Serdes. In such cases, the PLL of the dependent Serdes fails
to lock due to the absence of the reference clock from the former Serdes
which has been powered off by the PM Core.

Fix this by obtaining reference to the PHYs before invoking the PHY
initialization APIs and releasing reference after the initialization is
complete.

Link: https://lore.kernel.org/linux-pci/20230927041845.1222080-1-s-vadapalli@ti.com
Fixes: 49229238ab ("PCI: keystone: Cleanup PHY handling")
Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
Acked-by: Ravi Gunasekaran <r-gunasekaran@ti.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-25 14:34:32 -08:00
..
accessibility
acpi acpi: property: Let args be NULL in __acpi_node_get_property_reference 2024-01-25 14:34:31 -08:00
amba amba: bus: fix refcount leak 2023-09-23 10:59:52 +02:00
android binder: fix unused alloc->free_async_space 2024-01-25 14:34:29 -08:00
ata ata: pata_isapnp: Add missing error check for devm_ioport_map() 2023-12-08 08:44:23 +01:00
atm atm: solos-pci: Fix potential deadlock on &tx_queue_lock 2023-12-20 15:41:15 +01:00
auxdisplay
base software node: Let args be NULL in software_node_get_reference_args 2024-01-25 14:34:31 -08:00
bcma
block remove the sx8 block driver 2023-11-08 11:23:42 +01:00
bluetooth Bluetooth: btmtkuart: fix recv_buf() return value 2024-01-25 14:34:26 -08:00
bus bus: ti-sysc: Fix SYSC_QUIRK_SWSUP_SIDLE_ACT handling for uart wake-up 2023-10-10 21:46:39 +02:00
cdrom
char hwrng: geode - fix accessing registers 2023-11-20 10:30:12 +01:00
clk clk: si5341: fix an error code problem in si5341_output_clk_set_rate 2024-01-25 14:34:28 -08:00
clocksource clocksource/drivers/timer-atmel-tcb: Fix initialization on SAM9 hardware 2023-11-28 16:50:13 +00:00
connector
counter counter: 104-quad-8: Fix race condition between FLAG and CNTR reads 2023-05-17 11:35:31 +02:00
cpufreq cpufreq: imx6q: Don't disable 792 Mhz OPP unnecessarily 2023-12-08 08:44:28 +01:00
cpuidle
crypto crypto: sahara - do not resize req->src when doing hash operations 2024-01-25 14:34:24 -08:00
dax
dca
devfreq PM / devfreq: Fix leak in devfreq_dev_release() 2023-09-23 10:59:54 +02:00
dio drivers: dio: fix possible memory leak in dio_init() 2023-01-18 11:41:21 +01:00
dma dmaengine: stm32-mdma: correct desc prep when channel running 2023-11-28 16:50:19 +00:00
dma-buf dma-buf/sw_sync: Avoid recursive lock during fence signal 2023-08-30 16:27:28 +02:00
edac EDAC/thunderx: Fix possible out-of-bounds string access 2024-01-25 14:34:21 -08:00
eisa
extcon extcon: Fix kernel doc of property capability fields to avoid warnings 2023-07-27 08:37:20 +02:00
firewire firewire: ohci: suppress unexpected system reboot in AMD Ryzen machines and ASM108x/VT630x PCIe cards 2024-01-15 18:25:27 +01:00
firmware firmware: ti_sci: Fix an off-by-one in ti_sci_debugfs_create() 2024-01-25 14:34:25 -08:00
fpga fpga: bridge: fix kernel-doc parameter description 2023-05-17 11:35:46 +02:00
fsi fsi: master-ast-cf: Add MODULE_FIRMWARE macro 2023-09-23 10:59:37 +02:00
gnss
gpio gpiolib: sysfs: Fix error handling on failed export 2023-12-13 18:18:15 +01:00
gpu gpu/drm/radeon: fix two memleaks in radeon_vm_init 2024-01-25 14:34:28 -08:00
greybus
hid HID: wacom: Correct behavior when processing some confidence == false touches 2024-01-25 14:34:30 -08:00
hsi HSI: omap_ssi_core: Fix error handling in ssi_init() 2023-01-18 11:41:28 +01:00
hv Drivers: hv: vmbus: Fix vmbus_wait_for_unload() to scan present CPUs 2023-06-28 10:18:36 +02:00
hwmon hwmon: (acpi_power_meter) Fix 4.29 MW bug 2023-12-13 18:18:13 +01:00
hwspinlock
hwtracing coresight: etm4x: Fix width of CCITMIN field 2024-01-25 14:34:21 -08:00
i2c i2c: core: Fix atomic xfer check for non-preempt config 2024-01-15 18:25:27 +01:00
i3c i3c: master: cdns: Fix reading status register 2023-11-28 16:50:19 +00:00
ide treewide: Remove uninitialized_var() usage 2023-06-09 10:29:01 +02:00
idle
iio iio: adc: ti_am335x_adc: Fix return value check of tiadc_request_dma() 2024-01-08 11:29:46 +01:00
infiniband RDMA/usnic: Silence uninitialized symbol smatch warnings 2024-01-25 14:34:26 -08:00
input Input: atkbd - use ab83 as id when skipping the getid command 2024-01-25 14:34:29 -08:00
interconnect interconnect: Treat xlate() returning NULL node as an error 2024-01-08 11:29:45 +01:00
iommu of/iommu: Make of_map_rid() PCI agnostic 2023-12-13 18:18:11 +01:00
ipack
irqchip firmware: ti_sci: Replace HTTP links with HTTPS ones 2023-11-20 10:30:12 +01:00
isdn mISDN: Update parameter type of dsp_cmx_send() 2023-08-16 18:19:23 +02:00
leds leds: trigger: ledtrig-cpu:: Fix 'output may be truncated' issue for 'cpu' 2023-11-20 10:30:13 +01:00
lightnvm
macintosh macintosh: via-pmu-led: requires ATA to be set 2023-05-17 11:35:50 +02:00
mailbox mailbox: ti-msgmgr: Fill non-message tx data fields with 0x0 2023-07-27 08:37:23 +02:00
mcb mcb: fix error handling for different scenarios when parsing 2023-11-28 16:50:19 +00:00
md bcache: avoid NULL checking to c->root in run_cache_set() 2023-12-20 15:41:20 +01:00
media media: dvbdev: drop refcount on error path in dvb_device_open() 2024-01-25 14:34:28 -08:00
memory memory: brcmstb_dpfe: fix testing array offset after use 2023-07-27 08:37:14 +02:00
memstick memstick r592: make memstick_debug_get_tpc_name() static 2023-07-27 08:37:10 +02:00
message scsi: message: mptlan: Fix use after free bug in mptlan_remove() due to race condition 2023-05-30 12:44:03 +01:00
mfd mfd: dln2: Fix double put in dln2_probe 2023-11-20 10:30:13 +01:00
misc misc: st_core: Do not call kfree_skb() under spin_lock_irqsave() 2023-11-20 10:30:13 +01:00
mmc mmc: sdhci_omap: Fix TI SoC dependencies 2024-01-25 14:34:28 -08:00
mtd mtd: Fix gluebi NULL pointer dereference caused by ftl notifier 2024-01-25 14:34:23 -08:00
mux
net wifi: mwifiex: configure BSSID consistently when starting AP 2024-01-25 14:34:30 -08:00
nfc nfcsim.c: Fix error checking for debugfs_create_dir 2023-06-28 10:18:41 +02:00
ntb ntb: Fix calculation ntb_transport_tx_free_entry() 2023-09-23 10:59:55 +02:00
nubus
nvdimm nd_btt: Make BTT lanes preemptible 2023-11-20 10:30:12 +01:00
nvme nvmet-tcp: Fix the H2C expected PDU len calculation 2024-01-25 14:34:32 -08:00
nvmem nvmem: imx: correct nregs for i.MX6UL 2023-11-08 11:23:37 +01:00
of of: unittest: Fix of_count_phandle_with_args() expected value message 2024-01-25 14:34:29 -08:00
opp OPP: Fix passing 0 to PTR_ERR in _opp_attach_genpd() 2023-09-23 10:59:40 +02:00
oprofile
parisc parisc: iosapic.c: Fix sparse warnings 2023-10-10 21:46:39 +02:00
parport parport: parport_serial: Add Brainboxes device IDs and geometry 2024-01-25 14:34:21 -08:00
pci PCI: keystone: Fix race condition when initializing PHYs 2024-01-25 14:34:32 -08:00
pcmcia pcmcia: ds: fix possible name leak in error path in pcmcia_device_add() 2023-11-20 10:30:14 +01:00
perf perf/smmuv3: Enable HiSilicon Erratum 162001900 quirk for HIP08/09 2023-09-23 11:00:03 +02:00
phy phy: mapphone-mdm6600: Fix pinctrl_pm handling for sleep pins 2023-10-25 11:53:25 +02:00
pinctrl pinctrl: lochnagar: Don't build on MIPS 2024-01-25 14:34:19 -08:00
platform platform/x86: intel_telemetry: Fix kernel doc descriptions 2023-12-20 15:41:21 +01:00
pnp
power power: supply: Fix logic checking if system is running from battery 2023-06-21 15:44:09 +02:00
powercap powercap: RAPL: Fix CONFIG_IOSF_MBI dependency 2023-07-27 08:37:06 +02:00
pps
ps3
ptp ptp: annotate data-race around q->head and q->tail 2023-11-28 16:50:16 +00:00
pwm pwm: brcmstb: Utilize appropriate clock APIs in suspend/resume 2023-11-20 10:30:15 +01:00
rapidio
ras
regulator regulator/core: Revert "fix kobject release warning and memory leak in regulator_register()" 2023-10-25 11:53:23 +02:00
remoteproc remoteproc: st: Call of_node_put() on iteration error 2023-05-17 11:36:01 +02:00
reset reset: hisilicon: hi6220: fix Wvoid-pointer-to-enum-cast warning 2024-01-25 14:34:20 -08:00
rpmsg rpmsg: Fix possible refcount leak in rpmsg_register_device_override() 2023-11-08 11:23:40 +01:00
rtc rtc: pcf85363: fix wrong mask/val parameters in regmap_update_bits call 2023-11-20 10:30:14 +01:00
s390 s390/scm: fix virtual vs physical address confusion 2024-01-25 14:34:20 -08:00
sbus
scsi scsi: hisi_sas: Replace with standard error code return value 2024-01-25 14:34:25 -08:00
sfi
sh
siox
slimbus
soc soc: qcom: llcc: Handle a second device without data corruption 2023-11-20 10:30:12 +01:00
soundwire soundwire: stream: fix NULL pointer dereference for multi_link 2023-12-20 15:41:24 +01:00
spi spi: sh-msiof: Enforce fixed DTDL for R-Car H3 2024-01-25 14:34:23 -08:00
spmi spmi: Add a check for remove callback when removing a SPMI driver 2023-05-17 11:35:49 +02:00
ssb treewide: Remove uninitialized_var() usage 2023-06-09 10:29:01 +02:00
staging staging: rtl8712: fix race condition 2023-09-23 10:59:37 +02:00
target scsi: target: core: Fix deadlock due to recursive locking 2023-10-10 21:46:43 +02:00
tc
tee
thermal thermal: core: prevent potential string overflow 2023-11-20 10:30:09 +01:00
thunderbolt thunderbolt: Use const qualifier for ring_interrupt_index 2023-04-05 11:16:39 +02:00
tty serial: imx: Correct clock error message in function probe() 2024-01-25 14:34:31 -08:00
uio uio: Fix use-after-free in uio_open 2024-01-25 14:34:21 -08:00
usb usb: mon: Fix atomicity violation in mon_bin_vma_fault 2024-01-25 14:34:30 -08:00
vfio vfio: platform: Do not pass return buffer to ACPI _RST method 2023-01-18 11:41:22 +01:00
vhost treewide: Remove uninitialized_var() usage 2023-06-09 10:29:01 +02:00
video fbdev: flush deferred work in fb_deferred_io_fsync() 2024-01-25 14:34:30 -08:00
virt
virtio virtio-mmio: fix memory leak of vm_dev 2023-11-08 11:23:34 +01:00
visorbus
vlynq
vme vme: Fix error not catched in fake_init() 2023-01-18 11:41:26 +01:00
w1 w1: fix loop in w1_fini() 2023-07-27 08:37:19 +02:00
watchdog watchdog: bcm2835_wdt: Fix WDIOC_SETTIMEOUT handling 2024-01-25 14:34:28 -08:00
xen xen/events: fix delayed eoi list handling 2023-11-28 16:50:16 +00:00
zorro
Kconfig
Makefile