[PATCH 0/4] driver: core: add subsys_platform_driver() to reduce boilerplate code in drivers

Brian Masney posted 4 patches 2 weeks, 3 days ago
drivers/clk/qcom/dispcc-x1e80100.c     | 12 +-----------
drivers/clk/qcom/gcc-eliza.c           | 12 +-----------
drivers/clk/qcom/gcc-glymur.c          | 12 +-----------
drivers/clk/qcom/gcc-hawi.c            | 12 +-----------
drivers/clk/qcom/gcc-kaanapali.c       | 12 +-----------
drivers/clk/qcom/gcc-kuno.c            | 12 +-----------
drivers/clk/qcom/gcc-milos.c           | 12 +-----------
drivers/clk/qcom/gcc-nord.c            | 12 +-----------
drivers/clk/qcom/gcc-qcm2290.c         | 12 +-----------
drivers/clk/qcom/gcc-qcs615.c          | 12 +-----------
drivers/clk/qcom/gcc-qcs8300.c         | 12 +-----------
drivers/clk/qcom/gcc-qdu1000.c         | 12 +-----------
drivers/clk/qcom/gcc-sar2130p.c        | 12 +-----------
drivers/clk/qcom/gcc-sc7280.c          | 12 +-----------
drivers/clk/qcom/gcc-sc8280xp.c        | 12 +-----------
drivers/clk/qcom/gcc-sdx55.c           | 12 +-----------
drivers/clk/qcom/gcc-sdx65.c           | 12 +-----------
drivers/clk/qcom/gcc-sdx75.c           | 12 +-----------
drivers/clk/qcom/gcc-shikra.c          | 12 +-----------
drivers/clk/qcom/gcc-sm4450.c          | 12 +-----------
drivers/clk/qcom/gcc-sm6115.c          | 12 +-----------
drivers/clk/qcom/gcc-sm6125.c          | 12 +-----------
drivers/clk/qcom/gcc-sm6375.c          | 12 +-----------
drivers/clk/qcom/gcc-sm7150.c          | 12 +-----------
drivers/clk/qcom/gcc-sm8150.c          | 12 +-----------
drivers/clk/qcom/gcc-sm8250.c          | 12 +-----------
drivers/clk/qcom/gcc-sm8350.c          | 12 +-----------
drivers/clk/qcom/gcc-sm8450.c          | 12 +-----------
drivers/clk/qcom/gcc-sm8550.c          | 12 +-----------
drivers/clk/qcom/gcc-sm8650.c          | 12 +-----------
drivers/clk/qcom/gcc-sm8750.c          | 12 +-----------
drivers/clk/qcom/gcc-x1e80100.c        | 12 +-----------
drivers/clk/qcom/lpasscc-sc7280.c      | 12 +-----------
drivers/clk/qcom/lpasscc-sdm845.c      | 12 +-----------
drivers/clk/qcom/tcsrcc-eliza.c        | 12 +-----------
drivers/clk/qcom/tcsrcc-glymur.c       | 12 +-----------
drivers/clk/qcom/tcsrcc-kaanapali.c    | 12 +-----------
drivers/clk/qcom/tcsrcc-sm8550.c       | 12 +-----------
drivers/clk/qcom/tcsrcc-sm8650.c       | 12 +-----------
drivers/clk/qcom/tcsrcc-sm8750.c       | 12 +-----------
drivers/clk/qcom/tcsrcc-x1e80100.c     | 12 +-----------
drivers/clk/qcom/videocc-sm8750.c      | 12 +-----------
drivers/clk/renesas/r9a06g032-clocks.c |  8 +-------
drivers/clk/renesas/renesas-cpg-mssr.c |  7 +------
drivers/clk/renesas/rzg2l-cpg.c        |  7 +------
drivers/clk/renesas/rzv2h-cpg.c        |  7 +------
include/linux/device/driver.h          | 31 +++++++++++++++++++++++++++++++
include/linux/platform_device.h        | 30 ++++++++++++++++++++++++++++++
48 files changed, 107 insertions(+), 487 deletions(-)
[PATCH 0/4] driver: core: add subsys_platform_driver() to reduce boilerplate code in drivers
Posted by Brian Masney 2 weeks, 3 days ago
There are a fair number of clk drivers that are registered at the
subsys_initcall level since some clk drivers need to be initialized
early for other drivers. Let's add a new macro
subsys_platform_driver() similar module_platform_driver() to eliminate
some boilerplate code in the drivers.

This series converts the Qualcomm and Renesas clk drivers to show the
code savings that can be achieved. Once this lands, I'll convert the
remaining clk drivers this development cycle if all of this can go
through the clk tree.

Outside of drivers/clk, there are 364 drivers that use subsys_initcall
and I am willing to convert those as well starting the next development
cycle once this lands in Linus's tree.

Signed-off-by: Brian Masney <bmasney@redhat.com>
---
Brian Masney (4):
      driver: core: add subsys_driver() macro
      driver: core: platform: add subsys_platform_driver() macro
      clk: qcom: convert drivers over to use subsys_platform_driver()
      clk: renesas: convert drivers over to use subsys_platform_driver()

 drivers/clk/qcom/dispcc-x1e80100.c     | 12 +-----------
 drivers/clk/qcom/gcc-eliza.c           | 12 +-----------
 drivers/clk/qcom/gcc-glymur.c          | 12 +-----------
 drivers/clk/qcom/gcc-hawi.c            | 12 +-----------
 drivers/clk/qcom/gcc-kaanapali.c       | 12 +-----------
 drivers/clk/qcom/gcc-kuno.c            | 12 +-----------
 drivers/clk/qcom/gcc-milos.c           | 12 +-----------
 drivers/clk/qcom/gcc-nord.c            | 12 +-----------
 drivers/clk/qcom/gcc-qcm2290.c         | 12 +-----------
 drivers/clk/qcom/gcc-qcs615.c          | 12 +-----------
 drivers/clk/qcom/gcc-qcs8300.c         | 12 +-----------
 drivers/clk/qcom/gcc-qdu1000.c         | 12 +-----------
 drivers/clk/qcom/gcc-sar2130p.c        | 12 +-----------
 drivers/clk/qcom/gcc-sc7280.c          | 12 +-----------
 drivers/clk/qcom/gcc-sc8280xp.c        | 12 +-----------
 drivers/clk/qcom/gcc-sdx55.c           | 12 +-----------
 drivers/clk/qcom/gcc-sdx65.c           | 12 +-----------
 drivers/clk/qcom/gcc-sdx75.c           | 12 +-----------
 drivers/clk/qcom/gcc-shikra.c          | 12 +-----------
 drivers/clk/qcom/gcc-sm4450.c          | 12 +-----------
 drivers/clk/qcom/gcc-sm6115.c          | 12 +-----------
 drivers/clk/qcom/gcc-sm6125.c          | 12 +-----------
 drivers/clk/qcom/gcc-sm6375.c          | 12 +-----------
 drivers/clk/qcom/gcc-sm7150.c          | 12 +-----------
 drivers/clk/qcom/gcc-sm8150.c          | 12 +-----------
 drivers/clk/qcom/gcc-sm8250.c          | 12 +-----------
 drivers/clk/qcom/gcc-sm8350.c          | 12 +-----------
 drivers/clk/qcom/gcc-sm8450.c          | 12 +-----------
 drivers/clk/qcom/gcc-sm8550.c          | 12 +-----------
 drivers/clk/qcom/gcc-sm8650.c          | 12 +-----------
 drivers/clk/qcom/gcc-sm8750.c          | 12 +-----------
 drivers/clk/qcom/gcc-x1e80100.c        | 12 +-----------
 drivers/clk/qcom/lpasscc-sc7280.c      | 12 +-----------
 drivers/clk/qcom/lpasscc-sdm845.c      | 12 +-----------
 drivers/clk/qcom/tcsrcc-eliza.c        | 12 +-----------
 drivers/clk/qcom/tcsrcc-glymur.c       | 12 +-----------
 drivers/clk/qcom/tcsrcc-kaanapali.c    | 12 +-----------
 drivers/clk/qcom/tcsrcc-sm8550.c       | 12 +-----------
 drivers/clk/qcom/tcsrcc-sm8650.c       | 12 +-----------
 drivers/clk/qcom/tcsrcc-sm8750.c       | 12 +-----------
 drivers/clk/qcom/tcsrcc-x1e80100.c     | 12 +-----------
 drivers/clk/qcom/videocc-sm8750.c      | 12 +-----------
 drivers/clk/renesas/r9a06g032-clocks.c |  8 +-------
 drivers/clk/renesas/renesas-cpg-mssr.c |  7 +------
 drivers/clk/renesas/rzg2l-cpg.c        |  7 +------
 drivers/clk/renesas/rzv2h-cpg.c        |  7 +------
 include/linux/device/driver.h          | 31 +++++++++++++++++++++++++++++++
 include/linux/platform_device.h        | 30 ++++++++++++++++++++++++++++++
 48 files changed, 107 insertions(+), 487 deletions(-)
---
base-commit: 944a035ecca915ae947905dcfb03f2b9dc6d032c
change-id: 20260908-subsys_initcall-05dfd5fb0f04

Best regards,
--  
Brian Masney <bmasney@redhat.com>
Re: [PATCH 0/4] driver: core: add subsys_platform_driver() to reduce boilerplate code in drivers
Posted by Bjorn Andersson 1 week ago
On Tue, 08 Sep 2026 13:47:17 -0400, Brian Masney wrote:
> There are a fair number of clk drivers that are registered at the
> subsys_initcall level since some clk drivers need to be initialized
> early for other drivers. Let's add a new macro
> subsys_platform_driver() similar module_platform_driver() to eliminate
> some boilerplate code in the drivers.
> 
> This series converts the Qualcomm and Renesas clk drivers to show the
> code savings that can be achieved. Once this lands, I'll convert the
> remaining clk drivers this development cycle if all of this can go
> through the clk tree.
> 
> [...]

Applied, thanks!

[1/4] driver: core: add subsys_driver() macro
      commit: 255a14e7c16569f75248640dbd854c632b9d4bee
[2/4] driver: core: platform: add subsys_platform_driver() macro
      commit: 5065ca1325639b0341521f2057e6e2f3b52241a6
[3/4] clk: qcom: convert drivers over to use subsys_platform_driver()
      commit: 51c6b675682a9cf5546fb057fed8f99361b56cf2
[4/4] clk: renesas: convert drivers over to use subsys_platform_driver()
      commit: d11a91e088cefa4b56d7877b49492d8e1dc818dc

Best regards,
-- 
Bjorn Andersson <andersson@kernel.org>
Re: [PATCH 0/4] driver: core: add subsys_platform_driver() to reduce boilerplate code in drivers
Posted by Pankaj Patil 2 weeks, 2 days ago
On 9/8/2026 11:17 PM, Brian Masney wrote:
> There are a fair number of clk drivers that are registered at the
> subsys_initcall level since some clk drivers need to be initialized
> early for other drivers. Let's add a new macro
> subsys_platform_driver() similar module_platform_driver() to eliminate
> some boilerplate code in the drivers.
> 
> This series converts the Qualcomm and Renesas clk drivers to show the
> code savings that can be achieved. Once this lands, I'll convert the
> remaining clk drivers this development cycle if all of this can go
> through the clk tree.
> 
> Outside of drivers/clk, there are 364 drivers that use subsys_initcall
> and I am willing to convert those as well starting the next development
> cycle once this lands in Linus's tree.
> 
> Signed-off-by: Brian Masney <bmasney@redhat.com>
> ---
> Brian Masney (4):
>       driver: core: add subsys_driver() macro
>       driver: core: platform: add subsys_platform_driver() macro
>       clk: qcom: convert drivers over to use subsys_platform_driver()
>       clk: renesas: convert drivers over to use subsys_platform_driver()
> 
>  drivers/clk/qcom/dispcc-x1e80100.c     | 12 +-----------
>  drivers/clk/qcom/gcc-eliza.c           | 12 +-----------
>  drivers/clk/qcom/gcc-glymur.c          | 12 +-----------

Tested on Glymur-CRD
Tested-by: Pankaj Patil <pankaj.patil@oss.qualcomm.com>

[...]
>  drivers/clk/renesas/rzg2l-cpg.c        |  7 +------
>  drivers/clk/renesas/rzv2h-cpg.c        |  7 +------
>  include/linux/device/driver.h          | 31 +++++++++++++++++++++++++++++++
>  include/linux/platform_device.h        | 30 ++++++++++++++++++++++++++++++
>  48 files changed, 107 insertions(+), 487 deletions(-)
> ---
> base-commit: 944a035ecca915ae947905dcfb03f2b9dc6d032c
> change-id: 20260908-subsys_initcall-05dfd5fb0f04
> 
> Best regards,
> --  
> Brian Masney <bmasney@redhat.com>
> 
>