kernel_optimize_test/drivers
Bjorn Andersson 7451c309c7 clk: qcom: gdsc: Ensure regulator init state matches GDSC state
[ Upstream commit 9711759a87a041705148161b937ec847048d882e ]

As GDSCs are registered and found to be already enabled gdsc_init()
ensures that 1) the kernel state matches the hardware state, and 2)
votable GDSCs are properly enabled from this master as well.

But as the (optional) supply regulator is enabled deep into
gdsc_toggle_logic(), which is only executed for votable GDSCs, the
kernel's state of the regulator might not match the hardware. The
regulator might be automatically turned off if no other users are
present or the next call to gdsc_disable() would cause an unbalanced
regulator_disable().

Given that the votable case deals with an already enabled GDSC, most of
gdsc_enable() and gdsc_toggle_logic() can be skipped. Reduce it to just
clearing the SW_COLLAPSE_MASK and enabling hardware control to simply
call regulator_enable() in both cases.

The enablement of hardware control seems to be an independent property
from the GDSC being enabled, so this is moved outside that conditional
segment.

Lastly, as the propagation of ALWAYS_ON to GENPD_FLAG_ALWAYS_ON needs to
happen regardless of the initial state this is grouped together with the
other sc->pd updates at the end of the function.

Cc: stable@vger.kernel.org
Fixes: 37416e5549 ("clk: qcom: gdsc: Handle GDSC regulator supplies")
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Link: https://lore.kernel.org/r/20210721224056.3035016-1-bjorn.andersson@linaro.org
[sboyd@kernel.org: Rephrase commit text]
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-08-26 08:35:54 -04:00
..
accessibility
acpi ACPI: NFIT: Fix support for virtual SPA ranges 2021-08-18 08:59:07 +02:00
amba
android
ata libata: fix ata_pio_sector for CONFIG_HIGHMEM 2021-08-12 13:22:19 +02:00
atm atm: nicstar: register the interrupt handler in the right place 2021-07-19 09:44:52 +02:00
auxdisplay
base PCI/MSI: Protect msi_desc::masked for multi-MSI 2021-08-18 08:59:17 +02:00
bcma
block nbd: Aovid double completion of a request 2021-08-18 08:59:14 +02:00
bluetooth Bluetooth: btusb: fix bt fiwmare downloading failure issue for qca btsoc. 2021-07-19 09:44:54 +02:00
bus bus: ti-sysc: Fix error handling for sysc_check_active_timer() 2021-08-26 08:35:42 -04:00
cdrom
char tpm_ftpm_tee: Free and unregister TEE shared memory during kexec 2021-08-12 13:22:13 +02:00
clk clk: qcom: gdsc: Ensure regulator init state matches GDSC state 2021-08-26 08:35:54 -04:00
clocksource clocksource/arm_arch_timer: Improve Allwinner A64 timer workaround 2021-07-19 09:44:59 +02:00
connector
counter
cpufreq cpufreq: armada-37xx: forbid cpufreq for 1.2 GHz variant 2021-08-26 08:35:41 -04:00
cpuidle
crypto crypto: qce - fix error return code in qce_skcipher_async_req_handle() 2021-07-14 16:56:54 +02:00
dax
dca
devfreq PM / devfreq: Add missing error code in devfreq_add_device() 2021-07-14 16:56:11 +02:00
dio
dma dmaengine: of-dma: router_xlate to return -EPROBE_DEFER if controller is not yet available 2021-08-26 08:35:36 -04:00
dma-buf dma-buf/sync_file: Don't leak fences on merge failure 2021-07-25 14:36:20 +02:00
edac EDAC/Intel: Do not load EDAC driver when running as a guest 2021-07-14 16:56:00 +02:00
eisa
extcon extcon: intel-mrfld: Sync hardware and software state on init 2021-07-19 09:45:00 +02:00
firewire
firmware efi/libstub: arm64: Double check image alignment at entry 2021-08-18 08:59:17 +02:00
fpga fpga: dfl: fme: Fix cpu hotplug issue in performance reporting 2021-08-12 13:22:15 +02:00
fsi fsi: Add missing MODULE_DEVICE_TABLE 2021-07-20 16:05:42 +02:00
gnss
gpio Revert "gpio: mpc8xxx: change the gpio interrupt flags." 2021-08-12 13:22:16 +02:00
gpu drm/mediatek: Add AAL output size configuration 2021-08-26 08:35:43 -04:00
greybus
hid HID: wacom: Re-enable touch by default for Cintiq 24HDT / 27QHDT 2021-08-04 12:46:41 +02:00
hsi
hv drivers: hv: Fix missing error code in vmbus_connect() 2021-07-14 16:55:59 +02:00
hwmon hwmon: (max31790) Fix fan speed reporting for fan7..12 2021-07-14 16:56:08 +02:00
hwspinlock
hwtracing intel_th: Wait until port is in reset before programming it 2021-07-20 16:05:46 +02:00
i2c i2c: dev: zero out array used for i2c reads from userspace 2021-08-18 08:59:05 +02:00
i3c
ide
idle
iio iio: adc: Fix incorrect exit of for-loop 2021-08-18 08:59:05 +02:00
infiniband net/mlx5: Synchronize correct IRQ when destroying CQ 2021-08-18 08:59:11 +02:00
input Input: hideep - fix the uninitialized use in hideep_nvm_unlock() 2021-07-20 16:05:44 +02:00
interconnect interconnect: qcom: icc-rpmh: Ensure floor BW is enforced for all nodes 2021-08-12 13:22:18 +02:00
iommu iommu/vt-d: Fix incomplete cache flush in intel_pasid_tear_down_entry() 2021-08-26 08:35:51 -04:00
ipack ipack/carriers/tpci200: Fix a double free in tpci200_pci_probe 2021-07-19 09:45:01 +02:00
irqchip
isdn mISDN: fix possible use-after-free in HFC_cleanup() 2021-07-19 09:44:38 +02:00
leds leds: turris-omnia: add missing MODULE_DEVICE_TABLE 2021-07-20 16:05:45 +02:00
lightnvm
macintosh
mailbox mailbox: qcom-ipcc: Fix IPCC mbox channel exhaustion 2021-07-14 16:56:53 +02:00
mcb
md md/raid10: properly indicate failure when ending a failed write request 2021-08-12 13:22:17 +02:00
media media: drivers/media/usb: fix memory leak in zr364xx_probe 2021-08-26 08:35:34 -04:00
memory memory: tegra: Fix compilation warnings on 64bit platforms 2021-07-25 14:36:14 +02:00
memstick memstick: rtsx_usb_ms: fix UAF 2021-07-14 16:55:53 +02:00
message
mfd mfd: cpcap: Fix cpcap dmamask not set warnings 2021-07-20 16:05:42 +02:00
misc misc: eeprom: at24: Always append device id even if label property is set. 2021-07-28 14:35:46 +02:00
mmc mmc: sdhci-msm: Update the software timeout value for sdhc 2021-08-26 08:35:53 -04:00
most
mtd mtd: cfi_cmdset_0002: fix crash when erasing/writing AMD cards 2021-08-26 08:35:33 -04:00
mux
net iavf: Fix ping is lost after untrusted VF had tried to change MAC 2021-08-26 08:35:52 -04:00
nfc nfc: nfcsim: fix use after free during module unload 2021-08-04 12:46:41 +02:00
ntb
nubus
nvdimm libnvdimm/region: Fix label activation vs errors 2021-08-18 08:59:07 +02:00
nvme nvme: fix nvme_setup_command metadata trace event 2021-08-08 09:05:23 +02:00
nvmem nvmem: core: add a missing of_node_put 2021-07-19 09:45:00 +02:00
of of: Fix truncation of memory sizes on 32-bit platforms 2021-07-14 16:56:46 +02:00
opp
oprofile
parisc
parport
pci PCI/MSI: Protect msi_desc::masked for multi-MSI 2021-08-18 08:59:17 +02:00
pcmcia pcmcia: i82092: fix a null pointer dereference bug 2021-08-12 13:22:16 +02:00
perf perf/arm-cmn: Fix invalid pointer when access dtc object sharing the same IRQ number 2021-07-14 16:56:08 +02:00
phy phy: intel: Fix for warnings due to EMMC clock 175Mhz change in FIP 2021-07-20 16:05:46 +02:00
pinctrl pinctrl: tigerlake: Fix GPIO mapping for newer version of software 2021-08-18 08:59:09 +02:00
platform platform/x86: pcengines-apuv2: Add missing terminating entries to gpio-lookup tables 2021-08-18 08:59:09 +02:00
pnp
power power: supply: rt5033_battery: Fix device tree enumeration 2021-07-20 16:05:50 +02:00
powercap
pps
ps3
ptp ptp_pch: Restore dependency on PCI 2021-08-26 08:35:46 -04:00
pwm pwm: sprd: Ensure configuring period and duty_cycle isn't wrongly skipped 2021-07-28 14:35:34 +02:00
rapidio
ras
regulator regulator: rtmv20: Fix wrong mask for strobe-polarity-high 2021-08-08 09:05:22 +02:00
remoteproc remoteproc: k3-r5: Fix an error message 2021-07-20 16:05:50 +02:00
reset reset: ti-syscon: fix to_ti_syscon_reset_data macro 2021-07-25 14:36:11 +02:00
rpmsg
rtc rtc: max77686: Do not enforce (incorrect) interrupt trigger type 2021-07-25 14:36:16 +02:00
s390 s390/sclp_vt220: fix console name to match device 2021-07-20 16:05:42 +02:00
sbus
scsi scsi: core: Fix capacity set to zero after offlinining device 2021-08-26 08:35:37 -04:00
sfi
sh
siox
slimbus
soc soc / drm: mediatek: Move DDP component defines into mtk-mmsys.h 2021-08-26 08:35:42 -04:00
soundwire soundwire: stream: Fix test for DP prepare complete 2021-07-14 16:56:47 +02:00
spi spi: spi-mux: Add module info needed for autoloading 2021-08-26 08:35:35 -04:00
spmi
ssb ssb: Fix error return code in ssb_bus_scan() 2021-07-14 16:56:21 +02:00
staging staging: rtl8712: error handling refactoring 2021-08-12 13:22:14 +02:00
target scsi: target: Fix protect handling in WRITE SAME(32) 2021-07-28 14:35:39 +02:00
tc
tee tee: Correct inappropriate usage of TEE_SHM_DMA_BUF flag 2021-08-15 14:00:24 +02:00
thermal thermal/core/thermal_of: Stop zone device before unregistering it 2021-07-25 14:36:17 +02:00
thunderbolt thunderbolt: Bond lanes only when dual_link_port != NULL in alloc_dev_default() 2021-07-14 16:56:44 +02:00
tty serial: 8250_pci: Avoid irq sharing for MSI(-X) interrupts. 2021-08-12 13:22:15 +02:00
uio
usb USB: core: Fix incorrect pipe calculation in do_proc_control() 2021-08-26 08:35:34 -04:00
vdpa vdpa/mlx5: Avoid destroying MR on empty iotlb 2021-08-26 08:35:42 -04:00
vfio vfio/pci: Handle concurrent vma faults 2021-07-14 16:56:50 +02:00
vhost vhost: Fix the calculation in vhost_overflow() 2021-08-26 08:35:42 -04:00
video backlight: lm3630a: Fix return code of .update_status() callback 2021-07-20 16:05:45 +02:00
virt
virtio virtio: Protect vqs list access 2021-08-26 08:35:41 -04:00
visorbus visorbus: fix error return code in visorchipset_init() 2021-07-14 16:56:41 +02:00
vlynq
vme
w1 w1: ds2438: fixing bug that would always get page0 2021-07-20 16:05:39 +02:00
watchdog Revert "watchdog: iTCO_wdt: Account for rebooting on second timeout" 2021-08-08 09:05:24 +02:00
xen xen/events: Fix race in set_evtchn_to_irq 2021-08-18 08:59:14 +02:00
zorro
Kconfig
Makefile