module_amba_driver is macro for module_init/exit module_init is device_initcall level when it configured with built-in driver. pl330 is dmaengine driver. because slave drivers depend on dmaengine drivers, dmaengine drivers is more appropriate subsys_initcall. Signed-off-by: Bumyong Lee <bumyong.lee@xxxxxxxxxxx> --- drivers/dma/pl330.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c index 3cf0b38387ae..4970830d7ab0 100644 --- a/drivers/dma/pl330.c +++ b/drivers/dma/pl330.c @@ -3270,7 +3270,17 @@ static struct amba_driver pl330_driver = { .remove = pl330_remove, }; -module_amba_driver(pl330_driver); +static int __init pl330_init(void) +{ + return amba_driver_register(&pl330_driver); +} +subsys_initcall(pl330_init); + +static void __exit pl330_exit(void) +{ + amba_driver_unregister(&pl330_driver); +} +module_exit(pl330_exit); MODULE_AUTHOR("Jaswinder Singh <jassisinghbrar@xxxxxxxxx>"); MODULE_DESCRIPTION("API Driver for PL330 DMAC"); -- 2.42.0