[PATCH v5 0/4] Enable sysfs module symlink for more built-in drivers

Shashank Balaji shashank.mahadasyam at sony.com
Mon May 18 03:19:56 PDT 2026


struct device_driver's mod_name is not set by a number of bus' driver registration
functions. Without that, built-in drivers don't have the module symlink in sysfs.
We want this to go from unbound driver name -> module name -> kernel config name.
This is useful on embedded platforms to minimize kernel config, reduce kernel size,
and reduce boot time.

In order to achieve this, mod_name has to be set to KBUILD_MODNAME, and this has
to be done for all buses which don't yet do this.

Here are some treewide stats:
- 110 registration functions across all bus types
- 20 of them set mod_name
- Remaining 90 do not set mod_name:
    1. 36 functions under pattern 1:
        They have a __register function + register macro. KBUILD_MODNAME needs to
        be passed and the function needs to take mod_name as input.
    2. 42 functions under pattern 2:
        These have no macro wrapper. They need a double-underscore rename + macro
        wrapper to make them similar to pattern 1.
    3. Remaining 12 do not have such a clean registration interface. More analysis
       is required.

We plan to start with pattern 1, since it's the easiest category of changes.
Within that, for now we're only sending the platform patch. If we get the go-ahead
on that, we'll send the remaining ones.

Patch 4 depends on patches 1, 2, and 3.

Co-developed-by: Rahul Bukte <rahul.bukte at sony.com>
Signed-off-by: Rahul Bukte <rahul.bukte at sony.com>
Signed-off-by: Shashank Balaji <shashank.mahadasyam at sony.com>
---
Changes in v5:
- Move tegra cbb driver init to core_initcall and module_kset init to pure_initcall (Gary)
- Rename coresight_init_driver() to coresight_init_driver_with_owner(), and
  declare function prototype before use (Leo)
- Merge doc change patch with code change patch, so that __platform_register_drivers()
  prototype is changed everywhere in the same patch
- Link to v4: https://patch.msgid.link/20260427-acpi_mod_name-v4-0-22b42240c9bf@sony.com

Changes in v4:
- Initialize module_kset in do_basic_setup() before do_initcalls() (Gary)
- Add commit body to the documentation patch (Greg)
- Link to v3: https://patch.msgid.link/20260422-acpi_mod_name-v3-0-a184eff9ff6f@sony.com

Changes in v3:
- Initialize module_kset on-demand (Greg)
- Make coresight driver registration happen through a macro (Greg)
- Split up the patch adding mod_name to platform driver registrations (Greg)
- Link to v2: https://patch.msgid.link/20260421-acpi_mod_name-v2-0-e73f9310dad3@sony.com

Changes in v2:
- Drop acpi patch, send platform instead (Rafael)
- Link to v1: https://patch.msgid.link/20260416-acpi_mod_name-v1-0-1a4d96fd86c9@sony.com

To: Suzuki K Poulose <suzuki.poulose at arm.com>
To: Mike Leach <mike.leach at linaro.org>
To: James Clark <james.clark at linaro.org>
To: Alexander Shishkin <alexander.shishkin at linux.intel.com>
To: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
To: "Rafael J. Wysocki" <rafael at kernel.org>
To: Danilo Krummrich <dakr at kernel.org>
To: Miguel Ojeda <ojeda at kernel.org>
To: Boqun Feng <boqun at kernel.org>
To: Gary Guo <gary at garyguo.net>
To: Björn Roy Baron <bjorn3_gh at protonmail.com>
To: Benno Lossin <lossin at kernel.org>
To: Andreas Hindborg <a.hindborg at kernel.org>
To: Alice Ryhl <aliceryhl at google.com>
To: Trevor Gross <tmgross at umich.edu>
To: Jonathan Corbet <corbet at lwn.net>
To: Shuah Khan <skhan at linuxfoundation.org>
To: Luis Chamberlain <mcgrof at kernel.org>
To: Petr Pavlu <petr.pavlu at suse.com>
To: Daniel Gomez <da.gomez at kernel.org>
To: Sami Tolvanen <samitolvanen at google.com>
To: Aaron Tomlin <atomlin at atomlin.com>
To: Mike Leach <mike.leach at arm.com>
To: Leo Yan <leo.yan at arm.com>
To: Thierry Reding <thierry.reding at kernel.org>
To: Jonathan Hunter <jonathanh at nvidia.com>
Cc: linux-kernel at vger.kernel.org
Cc: coresight at lists.linaro.org
Cc: linux-arm-kernel at lists.infradead.org
Cc: driver-core at lists.linux.dev
Cc: rust-for-linux at vger.kernel.org
Cc: linux-doc at vger.kernel.org
Cc: Shashank Balaji <shashank.mahadasyam at sony.com>
Cc: Rahul Bukte <rahul.bukte at sony.com>
Cc: Daniel Palmer <daniel.palmer at sony.com>
Cc: Tim Bird <tim.bird at sony.com>
Cc: linux-modules at vger.kernel.org
Cc: linux-tegra at vger.kernel.org
Cc: Sumit Gupta <sumitg at nvidia.com>

---
Shashank Balaji (4):
      soc/tegra: cbb: Move driver registration from pure_initcall to core_initcall
      kernel: param: initialize module_kset in a pure_initcall
      coresight: pass THIS_MODULE implicitly through a macro
      driver core: platform: set mod_name in driver registration

 Documentation/driver-api/driver-model/platform.rst |  3 ++-
 drivers/base/platform.c                            | 21 ++++++++++++++-------
 drivers/hwtracing/coresight/coresight-catu.c       |  2 +-
 drivers/hwtracing/coresight/coresight-core.c       |  9 +++++----
 drivers/hwtracing/coresight/coresight-cpu-debug.c  |  3 +--
 drivers/hwtracing/coresight/coresight-funnel.c     |  3 +--
 drivers/hwtracing/coresight/coresight-replicator.c |  3 +--
 drivers/hwtracing/coresight/coresight-stm.c        |  2 +-
 drivers/hwtracing/coresight/coresight-tmc-core.c   |  2 +-
 drivers/hwtracing/coresight/coresight-tnoc.c       |  2 +-
 drivers/hwtracing/coresight/coresight-tpdm.c       |  3 +--
 drivers/hwtracing/coresight/coresight-tpiu.c       |  2 +-
 drivers/soc/tegra/cbb/tegra194-cbb.c               |  2 +-
 drivers/soc/tegra/cbb/tegra234-cbb.c               |  2 +-
 include/linux/coresight.h                          |  7 +++++--
 include/linux/platform_device.h                    | 17 +++++++++--------
 kernel/params.c                                    |  2 +-
 rust/kernel/platform.rs                            |  4 +++-
 18 files changed, 50 insertions(+), 39 deletions(-)
---
base-commit: 5200f5f493f79f14bbdc349e402a40dfb32f23c8
change-id: 20260416-acpi_mod_name-f645a76e337b

Best regards,
--  
Shashank Balaji <shashank.mahadasyam at sony.com>




More information about the linux-arm-kernel mailing list