[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250619200537.260017-2-sean.anderson@linux.dev>
Date: Thu, 19 Jun 2025 16:05:34 -0400
From: Sean Anderson <sean.anderson@...ux.dev>
To: Radhey Shyam Pandey <radhey.shyam.pandey@....com>,
Andrew Lunn <andrew+netdev@...n.ch>,
"David S . Miller" <davem@...emloft.net>,
Eric Dumazet <edumazet@...gle.com>,
Jakub Kicinski <kuba@...nel.org>,
Paolo Abeni <pabeni@...hat.com>,
netdev@...r.kernel.org,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc: Michal Simek <michal.simek@....com>,
Saravana Kannan <saravanak@...gle.com>,
Leon Romanovsky <leon@...nel.org>,
Dave Ertman <david.m.ertman@...el.com>,
linux-kernel@...r.kernel.org,
Ira Weiny <ira.weiny@...el.com>,
linux-arm-kernel@...ts.infradead.org,
Sean Anderson <sean.anderson@...ux.dev>,
Danilo Krummrich <dakr@...nel.org>,
"Rafael J. Wysocki" <rafael@...nel.org>
Subject: [PATCH net 1/4] auxiliary: Allow empty id
Support creating auxiliary devices with the id included as part of the
name. This allows for non-decimal ids, which may be more appropriate for
auxiliary devices created as children of memory-mapped devices. For
example, a name like "xilinx_emac.mac.802c0000" could be achieved by
setting .name to "mac.802c0000" and .id to AUXILIARY_DEVID_NONE.
Signed-off-by: Sean Anderson <sean.anderson@...ux.dev>
---
drivers/base/auxiliary.c | 6 +++++-
include/linux/auxiliary_bus.h | 4 +++-
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/drivers/base/auxiliary.c b/drivers/base/auxiliary.c
index dba7c8e13a53..64a0d5e2eb83 100644
--- a/drivers/base/auxiliary.c
+++ b/drivers/base/auxiliary.c
@@ -331,7 +331,11 @@ int __auxiliary_device_add(struct auxiliary_device *auxdev, const char *modname)
return -EINVAL;
}
- ret = dev_set_name(dev, "%s.%s.%d", modname, auxdev->name, auxdev->id);
+ if (auxdev->id == AUXILIARY_DEVID_NONE)
+ ret = dev_set_name(dev, "%s.%s", modname, auxdev->name);
+ else
+ ret = dev_set_name(dev, "%s.%s.%d", modname, auxdev->name,
+ auxdev->id);
if (ret) {
dev_err(dev, "auxiliary device dev_set_name failed: %d\n", ret);
return ret;
diff --git a/include/linux/auxiliary_bus.h b/include/linux/auxiliary_bus.h
index 4086afd0cc6b..76904cf2c3dd 100644
--- a/include/linux/auxiliary_bus.h
+++ b/include/linux/auxiliary_bus.h
@@ -51,6 +51,8 @@
* unregisters the auxiliary device.
*/
+#define AUXILIARY_DEVID_NONE (-1)
+
/**
* struct auxiliary_device - auxiliary device object.
* @dev: Device,
@@ -269,7 +271,7 @@ struct auxiliary_device *__devm_auxiliary_device_create(struct device *dev,
#define devm_auxiliary_device_create(dev, devname, platform_data) \
__devm_auxiliary_device_create(dev, KBUILD_MODNAME, devname, \
- platform_data, 0)
+ platform_data, AUXILIARY_DEVID_NONE)
/**
* module_auxiliary_driver() - Helper macro for registering an auxiliary driver
--
2.35.1.1320.gc452695387.dirty
Powered by blists - more mailing lists