linux/drivers/reset
Tommaso Merciai 8889b289ce reset: rzv2h-usb2phy: Keep PHY clock enabled for entire device lifetime
The driver was disabling the USB2 PHY clock immediately after register
initialization in probe() and after each reset operation. This left the
PHY unclocked even though it must remain active for USB functionality.

The behavior appeared to work only when another driver
(e.g., USB controller) had already enabled the clock, making operation
unreliable and hardware-dependent. In configurations where this driver
is the sole clock user, USB functionality would fail.

Fix this by:
- Enabling the clock once in probe() via pm_runtime_resume_and_get()
- Removing all pm_runtime_put() calls from assert/deassert/status
- Registering a devm cleanup action to release the clock at removal
- Removed rzv2h_usbphy_assert_helper() and its call in
  rzv2h_usb2phy_reset_probe()

This ensures the PHY clock remains enabled for the entire device lifetime,
preventing instability and aligning with hardware requirements.

Cc: stable@vger.kernel.org
Fixes: e3911d7f86 ("reset: Add USB2PHY port reset driver for Renesas RZ/V2H(P)")
Signed-off-by: Tommaso Merciai <tommaso.merciai.xr@bp.renesas.com>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
2026-03-27 13:27:15 +01:00
..
amlogic Reset controller updates for v6.14 (v2) 2025-01-15 18:05:41 +01:00
hisilicon reset: hisilicon: hi6220: add missing MODULE_DESCRIPTION() macro 2024-06-21 13:49:25 +02:00
spacemit reset: spacemit: Add SpacemiT K3 reset driver 2026-01-24 16:53:02 +01:00
starfive reset: starfive: jh71x0: Fix accessing the empty member on JH7110 SoC 2024-09-30 14:24:37 +02:00
sti reset: sti: kzalloc + kcalloc to kzalloc 2026-03-20 10:53:51 +01:00
tegra reset: tegra-bpmp: allow building under COMPILE_TEST 2024-07-01 09:57:48 +02:00
core.c reset: don't overwrite fwnode_reset_n_cells 2026-03-11 08:27:21 +01:00
Kconfig reset: add Sky1 soc reset support 2026-03-09 12:07:11 +01:00
Makefile reset: add Sky1 soc reset support 2026-03-09 12:07:11 +01:00
reset-a10sr.c
reset-aspeed.c reset: aspeed: register AST2700 reset auxiliary bus device 2025-08-14 12:17:45 +02:00
reset-ath79.c reset: ath79: Use devm_register_restart_handler() 2026-03-06 11:03:28 +01:00
reset-axs10x.c reset: axs10x: Use devm_platform_ioremap_resource() 2023-05-08 09:28:31 +02:00
reset-bcm6345.c reset: bcm6345: add support for bcm63xx ephy control register 2025-08-14 12:13:55 +02:00
reset-berlin.c reset: berlin: fix OF node leak in probe() error path 2024-09-02 11:51:19 +02:00
reset-brcmstb-rescal.c reset: brcmstb-rescal: Use devm_platform_ioremap_resource() 2023-05-08 09:28:31 +02:00
reset-brcmstb.c reset: brcmstb: Use devm_platform_get_and_ioremap_resource() 2023-11-28 17:19:38 +01:00
reset-eic7700.c reset: eswin: Add eic7700 reset driver 2025-11-18 17:52:54 +01:00
reset-eyeq.c reset: eyeq: fix OF node leak 2025-08-27 16:40:13 +02:00
reset-gpio.c reset: gpio: make the driver fwnode-agnostic 2026-03-09 10:20:04 +01:00
reset-hsdk.c reset: reset-hsdk: Use devm_platform_ioremap_resource() 2023-05-08 09:28:31 +02:00
reset-imx-scu.c reset: imx: fix incorrect module device table 2025-03-14 16:46:15 +01:00
reset-imx7.c reset: Explicitly include correct DT includes 2023-07-28 17:36:20 +02:00
reset-imx8mp-audiomix.c reset: imx8mp-audiomix: Support i.MX8ULP SIM LPAV 2026-01-24 16:22:49 +01:00
reset-intel-gw.c reset: intel: Use devm_register_restart_handler() 2026-03-06 11:03:28 +01:00
reset-k210.c reset: k210: fix OF node leak in probe() error path 2024-09-02 11:51:19 +02:00
reset-k230.c reset: canaan: add reset driver for Kendryte K230 2025-06-27 17:45:51 +02:00
reset-lantiq.c reset: lantiq: remove unneeded call to platform_set_drvdata() 2023-08-08 15:31:00 +02:00
reset-lpc18xx.c reset: lpc18xx: Use devm_register_sys_off_handler() 2026-03-06 11:03:28 +01:00
reset-ma35d1.c reset: ma35d1: Use devm_register_sys_off_handler() 2026-03-06 11:03:28 +01:00
reset-microchip-sparx5.c reset: mchp: sparx5: Fix for lan966x 2025-03-13 09:40:26 +01:00
reset-mpfs.c reset: mpfs: add non-auxiliary bus probing 2025-11-11 16:47:24 +00:00
reset-npcm.c reset: npcm: Use devm_register_sys_off_handler() 2026-03-06 11:03:28 +01:00
reset-pistachio.c
reset-qcom-aoss.c reset: qcom-aoss: Convert to devm_platform_ioremap_resource() 2023-11-28 17:19:39 +01:00
reset-qcom-pdc.c reset: remove unneeded 'fast_io' parameter in regmap_config 2025-08-14 12:21:39 +02:00
reset-raspberrypi.c
reset-rzg2l-usbphy-ctrl.c reset: rzg2l-usbphy-ctrl: Add suspend/resume support 2026-01-24 16:40:25 +01:00
reset-rzv2h-usb2phy.c reset: rzv2h-usb2phy: Keep PHY clock enabled for entire device lifetime 2026-03-27 13:27:15 +01:00
reset-scmi.c
reset-simple.c reset: simple: add support for Sophgo CV1800B 2025-06-27 18:20:15 +02:00
reset-sky1.c reset: add Sky1 soc reset support 2026-03-09 12:07:11 +01:00
reset-socfpga.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
reset-sunplus.c reset: sunplus: Use devm_register_sys_off_handler() 2026-03-06 11:03:28 +01:00
reset-sunxi.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
reset-th1520.c reset: th1520: Support reset controllers in more subsystems 2025-11-18 17:52:54 +01:00
reset-ti-sci.c Get rid of 'remove_new' relic from platform driver struct 2024-12-01 15:12:43 -08:00
reset-ti-syscon.c reset: ti: syscon: remove unneeded call to platform_set_drvdata() 2023-08-08 15:31:00 +02:00
reset-tn48m.c
reset-tps380x.c
reset-uniphier-glue.c reset: uniphier-glue: Use devm_reset_control_bulk_get_shared_deasserted() 2024-10-01 17:39:53 +02:00
reset-uniphier.c reset: Explicitly include correct DT includes 2023-07-28 17:36:20 +02:00
reset-zynq.c reset: zynq: remove unneeded call to platfrom_set_drvdata() 2023-08-08 15:31:00 +02:00
reset-zynqmp.c reset: zynqmp: removed unneeded call to platform_set_drvdata() 2023-08-08 15:31:00 +02:00