kernel_samsung_a53x/drivers
Bjorn Andersson 4cc9101c1b pmdomain: qcom: rpmhpd: Fix enabled_corner aggregation
commit 2a93c6cbd5a703d44c414a3c3945a87ce11430ba upstream.

Commit 'e3e56c050ab6 ("soc: qcom: rpmhpd: Make power_on actually enable
the domain")' aimed to make sure that a power-domain that is being
enabled without any particular performance-state requested will at least
turn the rail on, to avoid filling DeviceTree with otherwise unnecessary
required-opps properties.

But in the event that aggregation happens on a disabled power-domain, with
an enabled peer without performance-state, both the local and peer
corner are 0. The peer's enabled_corner is not considered, with the
result that the underlying (shared) resource is disabled.

One case where this can be observed is when the display stack keeps mmcx
enabled (but without a particular performance-state vote) in order to
access registers and sync_state happens in the rpmhpd driver. As mmcx_ao
is flushed the state of the peer (mmcx) is not considered and mmcx_ao
ends up turning off "mmcx.lvl" underneath mmcx. This has been observed
several times, but has been painted over in DeviceTree by adding an
explicit vote for the lowest non-disabled performance-state.

Fixes: e3e56c050ab6 ("soc: qcom: rpmhpd: Make power_on actually enable the domain")
Reported-by: Johan Hovold <johan@kernel.org>
Closes: https://lore.kernel.org/linux-arm-msm/ZdMwZa98L23mu3u6@hovoldconsulting.com/
Cc:  <stable@vger.kernel.org>
Signed-off-by: Bjorn Andersson <quic_bjorande@quicinc.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Tested-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
Tested-by: Johan Hovold <johan+linaro@kernel.org>
Link: https://lore.kernel.org/r/20240226-rpmhpd-enable-corner-fix-v1-1-68c004cec48c@quicinc.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-11-18 23:18:30 +01:00
..
accessibility
acpi ACPI: APEI: set memory failure flags as MF_ACTION_REQUIRED on synchronous events 2024-11-18 12:13:09 +01:00
amba
android binder: signal epoll threads of self-work 2024-11-18 12:13:30 +01:00
ata ahci: add 43-bit DMA address quirk for ASMedia ASM1061 controllers 2024-11-18 22:25:33 +01:00
atm atm: idt77252: fix a memleak in open_card_ubr0 2024-11-18 12:13:24 +01:00
auxdisplay
base PM: runtime: Have devm_pm_runtime_enable() handle pm_runtime_dont_use_autosuspend() 2024-11-18 12:13:40 +01:00
battery
bcma
block block: ataflop: more blk-mq refactoring fixes 2024-11-18 22:25:42 +01:00
bluetooth Bluetooth: qca: Set both WIDEBAND_SPEECH and LE_STATES quirks for QCA2066 2024-11-18 12:13:17 +01:00
bts
bus bus: moxtet: Add spi device table 2024-11-18 12:13:33 +01:00
cdrom
char hwrng: core - Fix page fault dead lock on mmap-ed hwrng 2024-11-18 12:12:55 +01:00
clk clk: mmp: pxa168: Fix memory leak in pxa168_clk_init() 2024-11-18 12:13:18 +01:00
clocksource
connector
counter
cpufreq Revert "cpufreq: Use of_property_present() for testing DT property presence" 2024-11-18 20:19:18 +01:00
cpuidle
crypto crypto: virtio/akcipher - Fix stack overflow on memcpy 2024-11-18 23:18:28 +01:00
dax
dca
devfreq PM / devfreq: Synchronize devfreq_monitor_[start/stop] 2024-11-18 12:13:09 +01:00
dio
dma dmaengine: fsl-qdma: init irq after reg initialization 2024-11-18 23:18:29 +01:00
dma-buf
edac EDAC/thunderx: Fix possible out-of-bounds string access 2024-11-18 12:12:19 +01:00
eisa
extcon
fingerprint
firewire firewire: core: send bus reset promptly on gap count error 2024-11-18 22:25:34 +01:00
firmware efi/capsule-loader: fix incorrect allocation size 2024-11-18 23:18:29 +01:00
fpga
fsi
gnss
gpio gpio: eic-sprd: Clear interrupt after set the interrupt type 2024-11-18 12:13:07 +01:00
gpu drm/amd/display: Fix memory leak in dm_sw_fini() 2024-11-18 22:25:42 +01:00
greybus
gud
hid HID: wacom: Do not register input devices until after hid_hw_start 2024-11-18 12:13:29 +01:00
hsi
hv
hwmon hwmon: (coretemp) Enlarge per package core count limit 2024-11-18 22:25:34 +01:00
hwspinlock
hwtracing coresight: etm4x: Fix width of CCITMIN field 2024-11-18 12:12:19 +01:00
i2c i2c: i801: Fix block process call transactions 2024-11-18 12:13:29 +01:00
i3c i3c: master: cdns: Update maximum prescaler value for i2c clock 2024-11-18 12:13:19 +01:00
ide
idle
ifconn
iio iio: accel: bma400: Fix a compilation problem 2024-11-18 12:13:31 +01:00
infiniband RDMA/srpt: fix function pointer cast warnings 2024-11-18 22:25:41 +01:00
input Input: i8042 - add Fujitsu Lifebook U728 to i8042 quirk table 2024-11-18 22:25:33 +01:00
interconnect interconnect: Treat xlate() returning NULL node as an error 2024-11-18 12:12:00 +01:00
iommu iommu/arm-smmu-qcom: Add missing GMU entry to match table 2024-11-18 12:12:47 +01:00
ipack
irqchip irqchip/mips-gic: Don't touch vl_map if a local interrupt is not routable 2024-11-18 22:25:34 +01:00
isdn
kperfmon
kq/mesh
leds leds: trigger: panic: Don't register panic notifier if creating the trigger failed 2024-11-18 12:13:19 +01:00
lightnvm
macintosh
mailbox
mcb
md dm-crypt: don't modify the data when using authenticated encryption 2024-11-18 22:25:37 +01:00
media media: av7110: prevent underflow in write_ts_to_decoder() 2024-11-18 22:25:34 +01:00
memory
memstick
message
mfd mfd: ti_am335x_tscadc: Fix TI SoC dependencies 2024-11-18 12:13:19 +01:00
misc misc: fastrpc: Mark all sessions as invalid in cb_remove 2024-11-18 12:13:30 +01:00
mmc mmc: sdhci-xenon: fix PHY init clock stability 2024-11-18 23:18:29 +01:00
most
mtd mtd: spinand: gigadevice: Fix the get ecc status issue 2024-11-18 23:18:28 +01:00
muic
mux
net gtp: fix use-after-free and null-ptr-deref in gtp_newlink() 2024-11-18 23:18:29 +01:00
nfc
ntb
nubus
nvdimm
nvme nvmet-fc: abort command when there is no binding 2024-11-18 22:25:33 +01:00
nvmem
of of: property: fix typo in io-channels 2024-11-18 12:13:33 +01:00
opp
oprofile
parisc
parport parport: parport_serial: Add Brainboxes device IDs and geometry 2024-11-18 12:12:19 +01:00
pci PCI/MSI: Prevent MSI hardware interrupt number truncation 2024-11-18 22:25:37 +01:00
pcmcia
perf
phy phy: ti: phy-omap-usb2: Fix NULL pointer dereference for SRP 2024-11-18 12:13:24 +01:00
pinctrl pinctrl: lochnagar: Don't build on MIPS 2024-11-18 12:12:11 +01:00
platform platform/x86: touchscreen_dmi: Allow partial (prefix) matches for ACPI names 2024-11-18 23:18:27 +01:00
pnp PNP: ACPI: fix fortify warning 2024-11-18 12:13:09 +01:00
power power: supply: bq27xxx-i2c: Do not free non existing IRQ 2024-11-18 23:18:29 +01:00
powercap
pps
ps3
ptp
pwm pwm: jz4740: Don't use dev_err_probe() in .request() 2024-11-18 12:12:47 +01:00
rapidio
ras
regulator regulator: pwm-regulator: Add validity checks in continuous .get_voltage 2024-11-18 22:25:33 +01:00
remoteproc
reset reset: hisilicon: hi6220: fix Wvoid-pointer-to-enum-cast warning 2024-11-18 12:12:16 +01:00
rpmsg rpmsg: virtio: Free driver_override when rpmsg_remove() 2024-11-18 12:12:56 +01:00
rtc rtc: Adjust failure return code for cmos_set_alarm() 2024-11-18 12:12:58 +01:00
s390 s390/cio: fix invalid -EBUSY on ccw_device_start 2024-11-18 22:25:37 +01:00
samsung
sbus
scsi scsi: jazz_esp: Only build if SCSI core is builtin 2024-11-18 22:25:41 +01:00
sensorhub
sensors
sfi
sh
siox
slimbus
soc pmdomain: qcom: rpmhpd: Fix enabled_corner aggregation 2024-11-18 23:18:30 +01:00
soundwire soundwire: stream: fix NULL pointer dereference for multi_link 2024-11-18 12:11:57 +01:00
spi spi: sh-msiof: avoid integer overflow in constants 2024-11-18 22:25:33 +01:00
spmi
spu_verify
ssb
staging staging: iio: ad5933: fix type mismatch regression 2024-11-18 12:13:31 +01:00
sti
target scsi: target: core: Add TMF to tmr_list handling 2024-11-18 22:25:32 +01:00
tc
tee tee: optee: Fix supplicant based device enumeration 2024-11-18 12:11:39 +01:00
thermal
thunderbolt
tty hvc/xen: prevent concurrent accesses to the shared ring 2024-11-18 22:25:34 +01:00
uh
uio uio: Fix use-after-free in uio_open 2024-11-18 12:12:19 +01:00
usb usb: roles: don't get/set_role() when usb_role_switch is unregistered 2024-11-18 22:25:39 +01:00
vdpa
vfio
vhost vhost: use kzalloc() instead of kmalloc() followed by memset() 2024-11-18 12:13:27 +01:00
vibrator
video fbdev: sis: Error out if pixclock equals zero 2024-11-18 22:25:32 +01:00
virt
virtio
vision
vision3
visorbus
vlynq
vme
w1
watchdog watchdog: it87_wdt: Keep WDTCTRL bit 3 unmodified for IT8784/IT8786 2024-11-18 12:13:19 +01:00
xen xen/gntdev: Fix the abuse of underlying struct page in DMA-buf import 2024-11-18 12:13:19 +01:00
zorro
Kconfig
Kconfig.variant1
Makefile
Makefile.variant1