linux/drivers/reset
Clément Léger a05f87270e reset: core: add get_device()/put_device on rcdev
Since the rcdev structure is allocated by the reset controller drivers
themselves, they need to exists as long as there is a consumer. A call to
module_get() is already existing but that does not work when using
device-tree overlays. In order to guarantee that the underlying reset
controller device does not vanish while using it, add a get_device() call
when retrieving a reset control from a reset controller device and a
put_device() when releasing that control.

Signed-off-by: Clément Léger <clement.leger@bootlin.com>
Signed-off-by: Herve Codina <herve.codina@bootlin.com>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Steen Hegelund <Steen.Hegelund@microchip.com>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20240808154658.247873-8-herve.codina@bootlin.com
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
2024-09-02 12:02:41 +02:00
..
hisilicon reset: hisilicon: hi6220: add missing MODULE_DESCRIPTION() macro 2024-06-21 13:49:25 +02:00
starfive reset: starfive: jh7110: Add StarFive STG/ISP/VOUT resets support 2023-07-26 11:45:31 -07:00
sti reset: sti: allow building under COMPILE_TEST 2024-06-24 09:50:31 +02:00
tegra reset: tegra-bpmp: allow building under COMPILE_TEST 2024-07-01 09:57:48 +02:00
core.c reset: core: add get_device()/put_device on rcdev 2024-09-02 12:02:41 +02:00
Kconfig soc: driver updates for 6.11 2024-07-16 11:35:27 -07:00
Makefile reset: tegra-bpmp: allow building under COMPILE_TEST 2024-07-01 09:57:48 +02:00
reset-a10sr.c reset: a10sr: add missing of_match_table reference 2021-05-10 09:48:17 +02:00
reset-ath79.c reset: ath79: remove unneeded call to platform_set_drvdata() 2023-08-08 15:31:00 +02:00
reset-axs10x.c reset: axs10x: Use devm_platform_ioremap_resource() 2023-05-08 09:28:31 +02:00
reset-bcm6345.c reset: bcm6345: remove unneeded call to platform_set_drvdata() 2023-08-08 15:31:00 +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-gpio.c reset: gpio: Add GPIO-based reset controller 2024-02-21 11:53:25 +01:00
reset-hsdk.c reset: reset-hsdk: Use devm_platform_ioremap_resource() 2023-05-08 09:28:31 +02: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: Add AudioMix Block Control reset driver 2024-06-24 11:27:04 +02:00
reset-intel-gw.c reset: Explicitly include correct DT includes 2023-07-28 17:36:20 +02:00
reset-k210.c reset: k210: fix OF node leak in probe() error path 2024-09-02 11:51:19 +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: simplify with devm_clk_get_enabled() 2024-09-02 11:56:15 +02:00
reset-ma35d1.c reset: Add Nuvoton ma35d1 reset driver support 2023-06-05 13:18:09 +02:00
reset-meson-audio-arb.c Driver core changes for 6.11-rc1 2024-07-25 10:42:22 -07:00
reset-meson.c reset: reset-meson: add support for Amlogic C3 SoC Reset Controller 2023-11-28 17:21:59 +01:00
reset-microchip-sparx5.c reset: Explicitly include correct DT includes 2023-07-28 17:36:20 +02:00
reset-mpfs.c clock, reset: microchip: move all mpfs reset code to the reset subsystem 2024-05-07 14:57:46 -07:00
reset-npcm.c reset: Use device_get_match_data() 2023-11-28 17:23:01 +01:00
reset-pistachio.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 422 2019-06-05 17:37:15 +02:00
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: qcom: Convert to devm_platform_ioremap_resource() 2023-11-28 17:19:39 +01:00
reset-raspberrypi.c reset: raspberrypi: Release firmware handle on unbind 2021-03-22 17:59:51 +01:00
reset-rzg2l-usbphy-ctrl.c Driver core changes for 6.11-rc1 2024-07-25 10:42:22 -07:00
reset-scmi.c reset: reset-scmi: Port driver to the new scmi_reset_proto_ops interface 2021-03-30 16:34:54 +01:00
reset-simple.c reset: simple: add support for Sophgo SG2042 2024-02-21 11:51:39 +01:00
reset-socfpga.c reset: socfpga: add empty driver allowing consumers to probe 2021-10-05 12:23:16 +02:00
reset-sunplus.c reset: sunplus: Use devm_platform_get_and_ioremap_resource() 2023-11-28 17:19:39 +01:00
reset-sunxi.c reset: Move reset-simple header out of drivers/reset 2020-06-16 14:19:56 +02:00
reset-ti-sci.c reset: ti-sci: Convert to platform remove callback returning void 2024-03-25 10:14:03 +01: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: Add Delta TN48M CPLD reset controller 2022-02-25 09:59:35 +01:00
reset-tps380x.c reset: tps380x: Fix spelling mistake "Voltags" -> "Voltage" 2022-07-28 14:08:50 +02:00
reset-uniphier-glue.c reset: uniphier-glue: Use devm_platform_get_and_ioremap_resource() 2023-11-28 17:19:39 +01: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