diff options
author | Russell King <rmk+kernel@armlinux.org.uk> | 2016-09-24 23:38:59 +0100 |
---|---|---|
committer | Russell King (Oracle) <rmk+kernel@armlinux.org.uk> | 2024-01-08 10:30:15 +0000 |
commit | f787ce7f81ebca4bbe558394680bee1cba8e9fe4 (patch) | |
tree | 0e9a46980d2919a3d1f5398b2bce0e6fa321b667 | |
parent | d38c8fbf810860dac8c7165ffcde649b11c8cfce (diff) |
module: add iPAQ sleeve device table and module alias support
Add support for iPAQ sleeve device table and module alias support, so
that sleeve drivers can be automatically modprobed into the kernel at
run time.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
-rw-r--r-- | include/linux/mod_devicetable.h | 10 | ||||
-rw-r--r-- | scripts/mod/devicetable-offsets.c | 4 | ||||
-rw-r--r-- | scripts/mod/file2alias.c | 11 |
3 files changed, 25 insertions, 0 deletions
diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h index f458469c5ce5..26327be36589 100644 --- a/include/linux/mod_devicetable.h +++ b/include/linux/mod_devicetable.h @@ -653,6 +653,16 @@ struct isapnp_device_id { }; /** + * struct ipaq_option_id - iPAQ sleeve option id + * @vendor: 16-bit vendor identifier + * @device: 16-bit device identifier + */ +struct ipaq_option_id { + __u16 vendor; + __u16 device; +}; + +/** * struct amba_id - identifies a device on an AMBA bus * @id: The significant bits if the hardware device ID * @mask: Bitmask specifying which bits of the id field are significant when diff --git a/scripts/mod/devicetable-offsets.c b/scripts/mod/devicetable-offsets.c index e91a3c38143b..0dc91c57aa54 100644 --- a/scripts/mod/devicetable-offsets.c +++ b/scripts/mod/devicetable-offsets.c @@ -178,6 +178,10 @@ int main(void) DEVID_FIELD(ipack_device_id, vendor); DEVID_FIELD(ipack_device_id, device); + DEVID(ipaq_option_id); + DEVID_FIELD(ipaq_option_id, vendor); + DEVID_FIELD(ipaq_option_id, device); + DEVID(amba_id); DEVID_FIELD(amba_id, id); DEVID_FIELD(amba_id, mask); diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c index 4829680a0a6d..257d095e6c3a 100644 --- a/scripts/mod/file2alias.c +++ b/scripts/mod/file2alias.c @@ -1140,6 +1140,16 @@ static void append_nibble_mask(char **outp, *outp = p; } +/* Looks like: ipaq:vNdN */ +static int do_ipaq_entry(const char *filename, void *symval, char *alias) +{ + DEF_FIELD(symval, ipaq_option_id, vendor); + DEF_FIELD(symval, ipaq_option_id, device); + + sprintf(alias, "ipaq:v%04Xd%04X", vendor, device); + return 1; +} + /* * looks like: "amba:dN" * @@ -1553,6 +1563,7 @@ static const struct devtable devtable[] = { {"zorro", SIZE_zorro_device_id, do_zorro_entry}, {"isapnp", SIZE_isapnp_device_id, do_isapnp_entry}, {"ipack", SIZE_ipack_device_id, do_ipack_entry}, + {"ipaq", SIZE_ipaq_option_id, do_ipaq_entry}, {"amba", SIZE_amba_id, do_amba_entry}, {"mipscdmm", SIZE_mips_cdmm_device_id, do_mips_cdmm_entry}, {"x86cpu", SIZE_x86_cpu_id, do_x86cpu_entry}, |