diff mbox series

[v2] dmaengine: at_xdmac: use platform_driver_register

Message ID 20210728094607.50589-1-clement.leger@bootlin.com (mailing list archive)
State New, archived
Headers show
Series [v2] dmaengine: at_xdmac: use platform_driver_register | expand

Commit Message

Clément Léger July 28, 2021, 9:46 a.m. UTC
When using SCMI clocks, the clocks are probed later than subsys initcall
level. This driver uses platform_driver_probe which is not compatible with
deferred probing and won't be probed again later if probe function fails
due to clocks not being available at that time.

This patch replaces the use of platform_driver_probe with
platform_driver_register which will allow probing the driver later again
when clocks will be available.

Signed-off-by: Clément Léger <clement.leger@bootlin.com>
---
 drivers/dma/at_xdmac.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

Comments

Vinod Koul July 28, 2021, 10:51 a.m. UTC | #1
On 28-07-21, 11:46, Clément Léger wrote:
> When using SCMI clocks, the clocks are probed later than subsys initcall
> level. This driver uses platform_driver_probe which is not compatible with
> deferred probing and won't be probed again later if probe function fails
> due to clocks not being available at that time.
> 
> This patch replaces the use of platform_driver_probe with
> platform_driver_register which will allow probing the driver later again
> when clocks will be available.

Applied, thanks
diff mbox series

Patch

diff --git a/drivers/dma/at_xdmac.c b/drivers/dma/at_xdmac.c
index 64a52bf4d737..ab78e0f6afd7 100644
--- a/drivers/dma/at_xdmac.c
+++ b/drivers/dma/at_xdmac.c
@@ -2240,10 +2240,16 @@  static struct platform_driver at_xdmac_driver = {
 
 static int __init at_xdmac_init(void)
 {
-	return platform_driver_probe(&at_xdmac_driver, at_xdmac_probe);
+	return platform_driver_register(&at_xdmac_driver);
 }
 subsys_initcall(at_xdmac_init);
 
+static void __exit at_xdmac_exit(void)
+{
+	platform_driver_unregister(&at_xdmac_driver);
+}
+module_exit(at_xdmac_exit);
+
 MODULE_DESCRIPTION("Atmel Extended DMA Controller driver");
 MODULE_AUTHOR("Ludovic Desroches <ludovic.desroches@atmel.com>");
 MODULE_LICENSE("GPL");