Build PHY device tables by using module_device_table macro. The PHY abstractions have been generating their own device tables manually instead of using the module_device_table macro provided by the device_id crate. However, the format of device tables occasionally changes [1] [2], requiring updates to both the device_id crate and the custom format used by the PHY abstractions, which is cumbersome to maintain. [1]: https://lore.kernel.org/lkml/20241119235705.1576946-14-masahiroy@xxxxxxxxxx/ [2]: https://lore.kernel.org/lkml/6e2f70b07a710e761eb68d089d96cee7b27bb2d5.1750511018.git.legion@xxxxxxxxxx/ Danilo, I incorporated your fixes into the first patch and mentioned them in the commit message. Let me know if you'd rather take a different approach. v4: - Rebased on driver-core-next - Improve docs based on Trevor's comments v3: https://lore.kernel.org/lkml/20250704041003.734033-1-fujita.tomonori@xxxxxxxxx/ - Fix Safety comments and typo v2: https://lore.kernel.org/lkml/20250701141252.600113-1-fujita.tomonori@xxxxxxxxx/ - Split off index-related parts of RawDeviceId into RawDeviceIdIndex v1: https://lore.kernel.org/lkml/20250623060951.118564-1-fujita.tomonori@xxxxxxxxx/ FUJITA Tomonori (3): rust: device_id: split out index support into a separate trait rust: net::phy represent DeviceId as transparent wrapper over mdio_device_id rust: net::phy Change module_phy_driver macro to use module_device_table macro rust/kernel/acpi.rs | 15 ++++-- rust/kernel/auxiliary.rs | 11 ++-- rust/kernel/device_id.rs | 91 ++++++++++++++++++++++++--------- rust/kernel/driver.rs | 8 ++- rust/kernel/net/phy.rs | 106 +++++++++++++++++++-------------------- rust/kernel/of.rs | 15 ++++-- rust/kernel/pci.rs | 11 ++-- 7 files changed, 156 insertions(+), 101 deletions(-) base-commit: 3964d07dd821efe9680e90c51c86661a98e60a0f -- 2.43.0