[PATCH] dmaengine: Convert to subsys_platform_driver()

Frank Li Frank.li at oss.nxp.com
Thu Nov 12 13:03:38 PST 2026


On Wed, Nov 04, 2026 at 07:33:02PM +0800, Peng Fan (OSS) wrote:
> From: Peng Fan <peng.fan at nxp.com>
>
> Replace the open-coded subsys_initcall()/module_exit() platform driver
> registration with subsys_platform_driver().
>
> No functional change.
>
> Signed-off-by: Peng Fan <peng.fan at nxp.com>
> ---

Reviewed-by: Frank Li <Frank.Li at nxp.com>

>  drivers/dma/at_xdmac.c          | 13 +------------
>  drivers/dma/bestcomm/bestcomm.c | 20 +-------------------
>  drivers/dma/dma-jz4780.c        | 13 +------------
>  drivers/dma/dw/platform.c       | 13 +------------
>  drivers/dma/fsl-edma-main.c     | 13 +------------
>  drivers/dma/mcf-edma-main.c     | 13 +------------
>  drivers/dma/sa11x0-dma.c        | 13 +------------
>  drivers/dma/sf-pdma/sf-pdma.c   | 13 +------------
>  8 files changed, 8 insertions(+), 103 deletions(-)
>
> diff --git a/drivers/dma/at_xdmac.c b/drivers/dma/at_xdmac.c
> index d40a8b40dddc..3e83883cc17d 100644
> --- a/drivers/dma/at_xdmac.c
> +++ b/drivers/dma/at_xdmac.c
> @@ -2487,18 +2487,7 @@ static struct platform_driver at_xdmac_driver = {
>  		.pm		= pm_ptr(&atmel_xdmac_dev_pm_ops),
>  	}
>  };
> -
> -static int __init at_xdmac_init(void)
> -{
> -	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);
> +subsys_platform_driver(at_xdmac_driver);
>
>  MODULE_DESCRIPTION("Atmel Extended DMA Controller driver");
>  MODULE_AUTHOR("Ludovic Desroches <ludovic.desroches at atmel.com>");
> diff --git a/drivers/dma/bestcomm/bestcomm.c b/drivers/dma/bestcomm/bestcomm.c
> index 241a91936fe8..1ec700c2c996 100644
> --- a/drivers/dma/bestcomm/bestcomm.c
> +++ b/drivers/dma/bestcomm/bestcomm.c
> @@ -469,28 +469,10 @@ static struct platform_driver mpc52xx_bcom_of_platform_driver = {
>  	},
>  };
>
> -
> -/* ======================================================================== */
> -/* Module                                                                   */
> -/* ======================================================================== */
> -
> -static int __init
> -mpc52xx_bcom_init(void)
> -{
> -	return platform_driver_register(&mpc52xx_bcom_of_platform_driver);
> -}
> -
> -static void __exit
> -mpc52xx_bcom_exit(void)
> -{
> -	platform_driver_unregister(&mpc52xx_bcom_of_platform_driver);
> -}
> -
>  /* If we're not a module, we must make sure everything is setup before  */
>  /* anyone tries to use us ... that's why we use subsys_initcall instead */
>  /* of module_init. */
> -subsys_initcall(mpc52xx_bcom_init);
> -module_exit(mpc52xx_bcom_exit);
> +subsys_platform_driver(mpc52xx_bcom_of_platform_driver);
>
>  MODULE_DESCRIPTION("Freescale MPC52xx BestComm DMA");
>  MODULE_AUTHOR("Sylvain Munaut <tnt at 246tNt.com>");
> diff --git a/drivers/dma/dma-jz4780.c b/drivers/dma/dma-jz4780.c
> index ac2094e65ecf..57ab0f621105 100644
> --- a/drivers/dma/dma-jz4780.c
> +++ b/drivers/dma/dma-jz4780.c
> @@ -1128,18 +1128,7 @@ static struct platform_driver jz4780_dma_driver = {
>  		.of_match_table = jz4780_dma_dt_match,
>  	},
>  };
> -
> -static int __init jz4780_dma_init(void)
> -{
> -	return platform_driver_register(&jz4780_dma_driver);
> -}
> -subsys_initcall(jz4780_dma_init);
> -
> -static void __exit jz4780_dma_exit(void)
> -{
> -	platform_driver_unregister(&jz4780_dma_driver);
> -}
> -module_exit(jz4780_dma_exit);
> +subsys_platform_driver(jz4780_dma_driver);
>
>  MODULE_AUTHOR("Alex Smith <alex at alex-smith.me.uk>");
>  MODULE_DESCRIPTION("Ingenic JZ4780 DMA controller driver");
> diff --git a/drivers/dma/dw/platform.c b/drivers/dma/dw/platform.c
> index 5c1c97eb28a4..95a36af613e8 100644
> --- a/drivers/dma/dw/platform.c
> +++ b/drivers/dma/dw/platform.c
> @@ -194,18 +194,7 @@ static struct platform_driver dw_driver = {
>  		.acpi_match_table = ACPI_PTR(dw_dma_acpi_id_table),
>  	},
>  };
> -
> -static int __init dw_init(void)
> -{
> -	return platform_driver_register(&dw_driver);
> -}
> -subsys_initcall(dw_init);
> -
> -static void __exit dw_exit(void)
> -{
> -	platform_driver_unregister(&dw_driver);
> -}
> -module_exit(dw_exit);
> +subsys_platform_driver(dw_driver);
>
>  MODULE_LICENSE("GPL v2");
>  MODULE_DESCRIPTION("Synopsys DesignWare DMA Controller platform driver");
> diff --git a/drivers/dma/fsl-edma-main.c b/drivers/dma/fsl-edma-main.c
> index 630285c85482..0feb878a03ff 100644
> --- a/drivers/dma/fsl-edma-main.c
> +++ b/drivers/dma/fsl-edma-main.c
> @@ -977,18 +977,7 @@ static struct platform_driver fsl_edma_driver = {
>  	.probe          = fsl_edma_probe,
>  	.remove		= fsl_edma_remove,
>  };
> -
> -static int __init fsl_edma_init(void)
> -{
> -	return platform_driver_register(&fsl_edma_driver);
> -}
> -subsys_initcall(fsl_edma_init);
> -
> -static void __exit fsl_edma_exit(void)
> -{
> -	platform_driver_unregister(&fsl_edma_driver);
> -}
> -module_exit(fsl_edma_exit);
> +subsys_platform_driver(fsl_edma_driver);
>
>  MODULE_DESCRIPTION("Freescale eDMA engine driver");
>  MODULE_LICENSE("GPL v2");
> diff --git a/drivers/dma/mcf-edma-main.c b/drivers/dma/mcf-edma-main.c
> index 9e1c6400c77b..5b72af393ec3 100644
> --- a/drivers/dma/mcf-edma-main.c
> +++ b/drivers/dma/mcf-edma-main.c
> @@ -281,18 +281,7 @@ bool mcf_edma_filter_fn(struct dma_chan *chan, void *param)
>  	return false;
>  }
>  EXPORT_SYMBOL(mcf_edma_filter_fn);
> -
> -static int __init mcf_edma_init(void)
> -{
> -	return platform_driver_register(&mcf_edma_driver);
> -}
> -subsys_initcall(mcf_edma_init);
> -
> -static void __exit mcf_edma_exit(void)
> -{
> -	platform_driver_unregister(&mcf_edma_driver);
> -}
> -module_exit(mcf_edma_exit);
> +subsys_platform_driver(mcf_edma_driver);
>
>  MODULE_ALIAS("platform:mcf-edma");
>  MODULE_DESCRIPTION("Freescale eDMA engine driver, ColdFire family");
> diff --git a/drivers/dma/sa11x0-dma.c b/drivers/dma/sa11x0-dma.c
> index a6fa431530e3..6a7a519910ec 100644
> --- a/drivers/dma/sa11x0-dma.c
> +++ b/drivers/dma/sa11x0-dma.c
> @@ -1079,18 +1079,7 @@ static struct platform_driver sa11x0_dma_driver = {
>  	.probe		= sa11x0_dma_probe,
>  	.remove		= sa11x0_dma_remove,
>  };
> -
> -static int __init sa11x0_dma_init(void)
> -{
> -	return platform_driver_register(&sa11x0_dma_driver);
> -}
> -subsys_initcall(sa11x0_dma_init);
> -
> -static void __exit sa11x0_dma_exit(void)
> -{
> -	platform_driver_unregister(&sa11x0_dma_driver);
> -}
> -module_exit(sa11x0_dma_exit);
> +subsys_platform_driver(sa11x0_dma_driver);
>
>  MODULE_AUTHOR("Russell King");
>  MODULE_DESCRIPTION("SA-11x0 DMA driver");
> diff --git a/drivers/dma/sf-pdma/sf-pdma.c b/drivers/dma/sf-pdma/sf-pdma.c
> index 6f79cc28703e..c7d6774d0970 100644
> --- a/drivers/dma/sf-pdma/sf-pdma.c
> +++ b/drivers/dma/sf-pdma/sf-pdma.c
> @@ -639,19 +639,8 @@ static struct platform_driver sf_pdma_driver = {
>  	},
>  };
>
> -static int __init sf_pdma_init(void)
> -{
> -	return platform_driver_register(&sf_pdma_driver);
> -}
> -
> -static void __exit sf_pdma_exit(void)
> -{
> -	platform_driver_unregister(&sf_pdma_driver);
> -}
> -
>  /* do early init */
> -subsys_initcall(sf_pdma_init);
> -module_exit(sf_pdma_exit);
> +subsys_platform_driver(sf_pdma_driver);
>
>  MODULE_LICENSE("GPL v2");
>  MODULE_DESCRIPTION("SiFive Platform DMA driver");
> --
> 2.51.0
>



More information about the linux-arm-kernel mailing list