linux-stable/drivers
Manivannan Sadhasivam 98b3777034 scsi: ufs: qcom: Update PHY settings only when scaling to higher gears
commit fc88ca19ad upstream.

The "hs_gear" variable is used to program the PHY settings (submode) during
ufs_qcom_power_up_sequence(). Currently, it is being updated every time the
agreed gear changes. Due to this, if the gear got downscaled before suspend
(runtime/system), then while resuming, the PHY settings for the lower gear
will be applied first and later when scaling to max gear with REINIT, the
PHY settings for the max gear will be applied.

This adds a latency while resuming and also really not needed as the PHY
gear settings are backwards compatible i.e., we can continue using the PHY
settings for max gear with lower gear speed.

So let's update the "hs_gear" variable _only_ when the agreed gear is
greater than the current one. This guarantees that the PHY settings will be
changed only during probe time and fatal error condition.

Due to this, UFSHCD_QUIRK_REINIT_AFTER_MAX_GEAR_SWITCH can now be skipped
when the PM operation is in progress.

Cc: stable@vger.kernel.org
Fixes: 96a7141da3 ("scsi: ufs: core: Add support for reinitializing the UFS device")
Reported-by: Can Guo <quic_cang@quicinc.com>
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Link: https://lore.kernel.org/r/20230908145329.154024-1-manivannan.sadhasivam@linaro.org
Reviewed-by: Can Guo <quic_cang@quicinc.com>
Tested-by: Can Guo <quic_cang@quicinc.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-11-28 17:19:55 +00:00
..
accel accel/habanalabs/gaudi2: Fix incorrect string length computation in gaudi2_psoc_razwi_get_engines() 2023-11-20 11:59:11 +01:00
accessibility
acpi ACPI: EC: Add quirk for HP 250 G7 Notebook PC 2023-11-28 17:19:38 +00:00
amba
android binder: fix memory leaks of spam and pending work 2023-10-05 12:48:08 +02:00
ata scsi: sd: Introduce manage_shutdown device flag 2023-10-27 10:00:19 +09:00
atm atm: iphase: Do PCI error checks on own line 2023-11-28 17:19:43 +00:00
auxdisplay
base regmap: prevent noinc writes from clobbering cache 2023-11-20 11:59:33 +01:00
bcma
block virtio-blk: fix implicit overflow on virtio_max_dma_size 2023-11-28 17:19:46 +00:00
bluetooth Bluetooth: btusb: Add date->evt_skb is NULL check 2023-11-28 17:19:38 +00:00
bus
cache riscv: RISCV_NONSTANDARD_CACHE_OPS shouldn't depend on RISCV_DMA_NONCOHERENT 2023-10-26 09:42:37 +02:00
cdrom
cdx
char hwrng: geode - fix accessing registers 2023-11-20 11:59:18 +01:00
clk clk: scmi: Free scmi_clk allocated when the clocks with invalid info are skipped 2023-11-20 11:59:16 +01:00
clocksource clocksource/drivers/timer-atmel-tcb: Fix initialization on SAM9 hardware 2023-11-28 17:19:36 +00:00
comedi
connector Fix NULL pointer dereference in cn_filter() 2023-10-24 10:53:45 +02:00
counter First set of Counter fixes for 6.6 2023-10-02 13:13:15 +02:00
cpufreq cpufreq: tegra194: fix warning due to missing opp_put 2023-11-20 11:58:57 +01:00
cpuidle
crypto crypto: hisilicon/qm - prevent soft lockup in receive loop 2023-11-28 17:19:44 +00:00
cxl cxl/hdm: Remove broken error path 2023-11-20 11:59:31 +01:00
dax
dca
devfreq PM / devfreq: rockchip-dfi: Make pmu regmap mandatory 2023-11-20 11:59:00 +01:00
dio
dma dmaengine: pxa_dma: Remove an erroneous BUG_ON() in pxad_free_desc() 2023-11-20 11:59:26 +01:00
dma-buf dma-buf: add dma_fence_timestamp helper 2023-10-05 11:05:58 +02:00
edac
eisa
extcon
firewire scsi: sd: Introduce manage_shutdown device flag 2023-10-27 10:00:19 +09:00
firmware firmware: tegra: Add suspend hook and reset BPMP IPC early on resume 2023-11-20 11:59:16 +01:00
fpga fpga: Fix memory leak for fpga_region_test_class_find() 2023-10-24 19:32:39 +02:00
fsi
gnss
gpio gpiolib: of: Add quirk for mt2701-cs42448 ASoC sound 2023-11-28 17:19:43 +00:00
gpu i915/perf: Fix NULL deref bugs with drm_dbg() calls 2023-11-28 17:19:54 +00:00
greybus
hid HID: Add quirk for Dell Pro Wireless Keyboard and Mouse KM5221W 2023-11-28 17:19:44 +00:00
hsi
hte hte: tegra: Fix missing error code in tegra_hte_test_probe() 2023-11-20 11:59:08 +01:00
hv
hwmon hwmon: (sch5627) Disallow write access if virtual registers are locked 2023-11-20 11:59:08 +01:00
hwspinlock
hwtracing
i2c i2c: dev: copy userspace array safely 2023-11-28 17:19:47 +00:00
i3c i3c: master: mipi-i3c-hci: Fix a kernel panic for accessing DAT_data. 2023-11-28 17:19:46 +00:00
idle
iio iio: adc: stm32-adc: harden against NULL pointer deref in stm32_adc_probe() 2023-11-28 17:19:45 +00:00
infiniband RDMA/hfi1: Use FIELD_GET() to extract Link Width 2023-11-28 17:19:42 +00:00
input Input: synaptics-rmi4 - fix use after free in rmi_unregister_function() 2023-11-20 11:59:34 +01:00
interconnect interconnect: fix error handling in qnoc_probe() 2023-11-20 11:59:27 +01:00
iommu iommufd: Add iopt_area_alloc() 2023-11-20 11:59:17 +01:00
ipack
irqchip irqchip/sifive-plic: Fix syscore registration for multi-socket systems 2023-11-20 11:58:54 +01:00
isdn isdn: mISDN: hfcsusb: Spelling fix in comment 2023-10-23 09:39:46 +01:00
leds leds: trigger: ledtrig-cpu:: Fix 'output may be truncated' issue for 'cpu' 2023-11-20 11:59:24 +01:00
macintosh
mailbox
mcb mcb: remove is_added flag from mcb_device struct 2023-10-05 09:50:14 +02:00
md md: don't rely on 'mddev->pers' to be set in mddev_suspend() 2023-11-28 17:19:39 +00:00
media media: venus: hfi: add checks to perform sanity on queue pointers 2023-11-28 17:19:54 +00:00
memory memory: tegra: Set BPMP msg flags to reset IPC channels 2023-11-20 11:59:17 +01:00
memstick
message
mfd mfd: intel-lpss: Add Intel Lunar Lake-M PCI IDs 2023-11-28 17:19:44 +00:00
misc misc: pci_endpoint_test: Add Device ID for R-Car S4-8 PCIe controller 2023-11-28 17:19:44 +00:00
mmc Revert "mmc: core: Capture correct oemid-bits for eMMC cards" 2023-11-20 11:59:39 +01:00
most
mtd mtd: rawnand: meson: check return value of devm_kasprintf() 2023-11-28 17:19:48 +00:00
mux
net macvlan: Don't propagate promisc change to lower dev in passthru 2023-11-28 17:19:54 +00:00
nfc
ntb
nubus
nvdimm nd_btt: Make BTT lanes preemptible 2023-11-20 11:59:19 +01:00
nvme nvme: fix error-handling for io_uring nvme-passthrough 2023-11-20 11:59:35 +01:00
nvmem nvmem: imx: correct nregs for i.MX6ULL 2023-10-16 21:00:08 +02:00
of of: address: Fix address translation when address-size is greater than 2 2023-11-28 17:19:39 +00:00
opp
parisc
parport
pci PCI: Use FIELD_GET() in Sapphire RX 5600 XT Pulse quirk 2023-11-28 17:19:44 +00:00
pcmcia pcmcia: ds: fix possible name leak in error path in pcmcia_device_add() 2023-11-20 11:59:31 +01:00
peci
perf drivers: perf: Check find_first_bit() return value 2023-11-28 17:19:54 +00:00
phy phy: qualcomm: phy-qcom-eusb2-repeater: Zero out untouched tuning regs 2023-11-28 17:19:45 +00:00
pinctrl pinctrl: renesas: rzg2l: Make reverse order of enable() for disable() 2023-11-20 11:59:25 +01:00
platform platform/x86: thinkpad_acpi: Add battery quirk for Thinkpad X120e 2023-11-28 17:19:39 +00:00
pmdomain pmdomain: imx: scu-pd: correct DMA2 channel 2023-10-05 00:28:52 +02:00
pnp
power power: supply: core: Use blocking_notifier_call_chain to avoid RCU complaint 2023-11-08 11:56:20 +01:00
powercap
pps
ps3
ptp ptp: annotate data-race around q->head and q->tail 2023-11-28 17:19:51 +00:00
pwm pwm: brcmstb: Utilize appropriate clock APIs in suspend/resume 2023-11-20 11:59:34 +01:00
rapidio
ras
regulator regulator: qcom-rpmh: Fix smps4 regulator for pm8550ve 2023-11-20 11:59:07 +01:00
remoteproc
reset
rpmsg
rtc rtc: pcf85363: fix wrong mask/val parameters in regmap_update_bits call 2023-11-20 11:59:30 +01:00
s390 s390/ap: re-init AP queues on config on 2023-11-20 11:59:28 +01:00
sbus
scsi scsi: megaraid_sas: Increase register read retry rount from 3 to 30 for selected registers 2023-11-28 17:19:55 +00:00
sh
siox
slimbus
soc soc: qcom: pmic: Fix resource leaks in a device_for_each_child_node() loop 2023-11-28 17:19:41 +00:00
soundwire soundwire: dmi-quirks: update HP Omen match 2023-11-28 17:19:45 +00:00
spi spi: Fix null dereference on suspend 2023-11-28 17:19:55 +00:00
spmi
ssb
staging media: cedrus: Fix clock/reset sequence 2023-11-20 11:59:32 +01:00
target scsi: target: core: Fix deadlock due to recursive locking 2023-09-27 10:55:29 -04:00
tc
tee ARM: SoC fixes for 6.6, part 2 2023-10-12 11:52:23 -07:00
thermal thermal: core: Don't update trip points inside the hysteresis range 2023-11-20 11:59:01 +01:00
thunderbolt thunderbolt: Apply USB 3.x bandwidth quirk only in software connection manager 2023-11-28 17:19:45 +00:00
tty tty: vcc: Add check for kstrdup() in vcc_probe() 2023-11-28 17:19:45 +00:00
ufs scsi: ufs: qcom: Update PHY settings only when scaling to higher gears 2023-11-28 17:19:55 +00:00
uio
usb usb: gadget: f_ncm: Always set current gadget in ncm_bind() 2023-11-28 17:19:45 +00:00
vdpa vdpa_sim_blk: allocate the buffer zeroed 2023-11-28 17:19:49 +00:00
vfio
vhost vhost-vdpa: fix use after free in vhost_vdpa_probe() 2023-11-28 17:19:49 +00:00
video fbdev: fsl-diu-fb: mark wr_reg_wa() static 2023-11-20 11:59:38 +01:00
virt virt: sevguest: Fix passing a stack buffer as a scatterlist target 2023-11-20 11:59:30 +01:00
virtio virtio_pci: fix the common cfg map size 2023-10-18 11:30:12 -04:00
vlynq
w1
watchdog watchdog: ixp4xx: Make sure restart always works 2023-11-20 11:59:34 +01:00
xen xen/events: fix delayed eoi list handling 2023-11-28 17:19:51 +00:00
zorro
Kconfig
Makefile