linux-stable/drivers/clk
Pin-yen Lin 7069aa6d41 clk: mediatek: mt8183: Only enable runtime PM on mt8183-mfgcfg
[ Upstream commit 878e845d8d ]

Commit 2f7b1d8b55 ("clk: mediatek: Do a runtime PM get on controllers
during probe") enabled runtime PM for all mediatek clock controllers,
but this introduced an issue on the resume path.

If a device resumes earlier than the clock controller and calls
clk_prepare() when runtime PM is enabled on the controller, it will end
up calling clk_pm_runtime_get(). But the subsequent
pm_runtime_resume_and_get() call will fail because the runtime PM is
temporarily disabled during suspend.

To workaround this, introduce a need_runtime_pm flag and only enable it
on mt8183-mfgcfg, which is the driver that observed deadlock previously.
Hopefully mt8183-cfgcfg won't run into the issue at the resume stage
because the GPU should have stopped rendering before the system calls
suspend.

Fixes: 2f7b1d8b55 ("clk: mediatek: Do a runtime PM get on controllers during probe")
Signed-off-by: Pin-yen Lin <treapking@chromium.org>
Link: https://lore.kernel.org/r/20240613120357.1043342-1-treapking@chromium.org
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-07-11 12:47:16 +02:00
..
actions
analogbits
at91 clk: at91: clk-sam9x60-pll: fix return value check 2023-05-11 23:03:32 +09:00
axis
axs10x
baikal-t1 clk: baikal-t1: Convert to platform device driver 2022-09-30 14:20:56 -07:00
bcm clk: bcm: rpi: Fix off by one in raspberrypi_discover_clocks() 2023-07-19 16:21:30 +02:00
berlin clk: berlin: Add of_node_put() for of_get_parent() 2022-08-19 14:50:24 -07:00
davinci Merge branches 'clk-fixed-rate', 'clk-spreadtrum', 'clk-pxa' and 'clk-ti' into clk-next 2022-10-04 10:54:14 -07:00
hisilicon clk: hisilicon: hi3559a: Fix an erroneous devm_kfree() 2024-03-26 18:20:50 -04:00
imgtec
imx clk: imx: clk-imx8qxp: fix LVDS bypass, pixel and phy clocks 2024-02-05 20:12:57 +00:00
ingenic clk: ingenic: jz4760: Update M/N/OD calculation algorithm 2023-02-14 19:11:52 +01:00
keystone clk: keystone: pll: fix a couple NULL vs IS_ERR() checks 2023-11-20 11:51:56 +01:00
loongson1
mediatek clk: mediatek: mt8183: Only enable runtime PM on mt8183-mfgcfg 2024-07-11 12:47:16 +02:00
meson clk: meson: Add missing clocks to axg_clk_regmaps 2024-03-26 18:20:46 -04:00
microchip clk: microchip: fix potential UAF in auxdev release callback 2023-05-11 23:03:40 +09:00
mmp clk: mmp: pxa168: Fix memory leak in pxa168_clk_init() 2024-02-05 20:12:56 +00:00
mstar
mvebu clk: mvebu: armada-37xx-tbg: Remove the unneeded result variable 2022-09-30 17:46:30 -07:00
mxs
nxp clk: nxp: fix typo in comment 2022-10-03 12:34:32 -07:00
pistachio clk: pistachio: Fix initconst confusion 2022-09-28 18:35:45 -07:00
pxa clk: pxa: fix NULL pointer dereference in pxa3xx_clk_update_accr 2023-06-21 16:00:57 +02:00
qcom clk: qcom: gcc-sm6350: Fix gpll6* & gpll7 parents 2024-07-11 12:47:16 +02:00
ralink
renesas clk: renesas: r9a07g043: Add clock and reset entry for PLIC 2024-06-12 11:03:29 +02:00
rockchip clk: rockchip: rk3128: Fix HCLK_OTG gate register 2024-01-20 11:50:06 +01:00
samsung clk: samsung: exynosautov9: fix wrong pll clock id value 2024-06-12 11:03:27 +02:00
sifive clk: sifive: Do not register clkdevs for PRCI clocks 2024-06-21 14:35:47 +02:00
socfpga clk: socfpga: Fix undefined behavior bug in struct stratix10_clock_data 2023-11-28 17:07:10 +00:00
spear clk: spear: Move prototype to accessible header 2022-10-10 10:37:58 +02:00
sprd clk: sprd: Fix thm_parents incorrect configuration 2023-10-06 14:56:47 +02:00
st clk: st: Fix memory leak in st_of_quadfs_setup() 2022-12-31 13:33:04 +01:00
starfive
stm32
sunxi
sunxi-ng clk: sunxi-ng: h6: Reparent CPUX during PLL CPUX rate change 2024-05-17 11:56:02 +02:00
tegra clk: tegra20: fix gcc-7 constant overflow warning 2024-03-06 14:45:05 +00:00
ti clk: ti: fix double free in of_ti_divider_clk_setup() 2023-11-20 11:51:57 +01:00
uniphier
ux500
versatile
visconti clk: visconti: Fix undefined behavior bug in struct visconti_pll_provider 2023-11-28 17:07:16 +00:00
x86 clk: mxl: syscon_node_to_regmap() returns error pointers 2023-02-25 11:25:39 +01:00
xilinx clk: clocking-wizard: Fix Oops in clk_wzrd_register_divider() 2023-07-19 16:21:30 +02:00
zynq clk: zynq: Prevent null pointer dereference caused by kmalloc failure 2024-03-26 18:20:53 -04:00
zynqmp drivers: clk: zynqmp: update divider round rate logic 2024-01-25 15:27:36 -08:00
.kunitconfig clk: explicitly disable CONFIG_UML_PCI_OVER_VIRTIO in .kunitconfig 2022-07-14 10:35:44 -06:00
clk-apple-nco.c
clk-asm9260.c clk: asm9260: use parent index to link the reference clock 2022-09-29 17:55:26 -07:00
clk-aspeed.c
clk-aspeed.h
clk-ast2600.c clk: ast2600: BCLK comes from EPLL 2022-10-03 14:12:15 -07:00
clk-axi-clkgen.c
clk-axm5516.c
clk-bd718x7.c
clk-bm1880.c
clk-bulk.c
clk-cdce706.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
clk-cdce925.c clk: cdce925: check return value of kasprintf() 2023-07-19 16:21:32 +02:00
clk-clps711x.c
clk-composite.c clk: Stop forwarding clk_rate_requests to the parent 2022-09-15 09:32:11 -07:00
clk-conf.c clk: add missing of_node_put() in "assigned-clocks" property parsing 2023-05-11 23:03:33 +09:00
clk-cs2000-cp.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
clk-devres.c clk: Fix slab-out-of-bounds error in devm_clk_release() 2023-08-30 16:11:06 +02:00
clk-divider.c clk: Introduce clk_hw_init_rate_request() 2022-09-15 09:31:40 -07:00
clk-en7523.c
clk-fixed-factor.c clk: fixed-factor: Introduce *clk_hw_register_fixed_factor_parent_hw() 2022-07-29 16:44:08 -07:00
clk-fixed-mmio.c
clk-fixed-rate.c clk: fixed-rate: add devm_clk_hw_register_fixed_rate 2022-09-29 17:55:29 -07:00
clk-fractional-divider.c
clk-fractional-divider.h
clk-fsl-flexspi.c
clk-fsl-sai.c
clk-gate.c
clk-gate_test.c
clk-gemini.c
clk-gpio.c
clk-hi655x.c
clk-highbank.c
clk-hsdk-pll.c
clk-k210.c
clk-lan966x.c clk: allow building lan966x as a module 2022-10-03 14:14:02 -07:00
clk-lmk04832.c
clk-lochnagar.c dt-bindings: clock: Move lochnagar.h to dt-bindings/clock 2022-08-22 16:04:00 -07:00
clk-max9485.c
clk-max77686.c
clk-milbeaut.c
clk-moxart.c
clk-multiplier.c
clk-mux.c
clk-nomadik.c clk: nomadik: Add missing of_node_put() 2022-08-19 14:24:27 -07:00
clk-npcm7xx.c clk: npcm7xx: Fix incorrect kfree 2023-11-20 11:51:57 +01:00
clk-nspire.c
clk-oxnas.c clk: oxnas: Hold reference returned by of_get_parent() 2022-08-19 14:35:43 -07:00
clk-palmas.c
clk-plldig.c
clk-pwm.c
clk-qoriq.c clk: qoriq: Hold reference returned by of_get_parent() 2022-08-19 14:41:47 -07:00
clk-renesas-pcie.c clk: rs9: fix wrong default value for clock amplitude 2024-06-12 11:03:28 +02:00
clk-rk808.c
clk-s2mps11.c
clk-scmi.c clk: scmi: Free scmi_clk allocated when the clocks with invalid info are skipped 2023-11-20 11:52:03 +01:00
clk-scpi.c
clk-si514.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
clk-si544.c
clk-si570.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
clk-si5341.c clk: si5341: fix an error code problem in si5341_output_clk_set_rate 2024-01-25 15:27:36 -08:00
clk-si5351.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
clk-si5351.h
clk-sparx5.c
clk-stm32f4.c
clk-stm32h7.c
clk-stm32mp1.c
clk-tps68470.c platform/x86: int3472: Support multiple clock consumers 2022-09-24 19:12:32 +02:00
clk-twl6040.c
clk-versaclock5.c clk: vc5: check memory returned by kasprintf() 2023-07-19 16:21:32 +02:00
clk-versaclock7.c clk: vc7: Fix .driver_data content in i2c_device_id 2023-07-19 16:21:17 +02:00
clk-vt8500.c
clk-wm831x.c
clk-xgene.c clk: clk-xgene: simplify if-if to if-else 2022-10-03 14:13:29 -07:00
clk.c clk: Don't hold prepare_lock when calling kref_put() 2024-05-17 11:56:09 +02:00
clk.h
clk_test.c clk: tests: Add tests for notifiers 2022-10-10 20:37:50 -07:00
clkdev.c clkdev: Simplify devm_clk_hw_register_clkdev() function 2022-09-30 14:50:11 -07:00
Kconfig clk: fixed-mmio: make COMMON_CLK_FIXED_MMIO depend on HAS_IOMEM 2023-09-13 09:42:23 +02:00
Makefile clk: Renesas versaclock7 ccf device driver 2022-09-30 17:34:35 -07:00