aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rw-r--r--scripts/mod/file2alias.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c
index df90f31d14bf..9cf2400580a7 100644
--- a/scripts/mod/file2alias.c
+++ b/scripts/mod/file2alias.c
@@ -796,6 +796,28 @@ static int do_platform_entry(const char *filename,
796 return 1; 796 return 1;
797} 797}
798 798
799static int do_mdio_entry(const char *filename,
800 struct mdio_device_id *id, char *alias)
801{
802 int i;
803
804 alias += sprintf(alias, MDIO_MODULE_PREFIX);
805
806 for (i = 0; i < 32; i++) {
807 if (!((id->phy_id_mask >> (31-i)) & 1))
808 *(alias++) = '?';
809 else if ((id->phy_id >> (31-i)) & 1)
810 *(alias++) = '1';
811 else
812 *(alias++) = '0';
813 }
814
815 /* Terminate the string */
816 *alias = 0;
817
818 return 1;
819}
820
799/* Looks like: zorro:iN. */ 821/* Looks like: zorro:iN. */
800static int do_zorro_entry(const char *filename, struct zorro_device_id *id, 822static int do_zorro_entry(const char *filename, struct zorro_device_id *id,
801 char *alias) 823 char *alias)
@@ -953,6 +975,10 @@ void handle_moddevtable(struct module *mod, struct elf_info *info,
953 do_table(symval, sym->st_size, 975 do_table(symval, sym->st_size,
954 sizeof(struct platform_device_id), "platform", 976 sizeof(struct platform_device_id), "platform",
955 do_platform_entry, mod); 977 do_platform_entry, mod);
978 else if (sym_is(symname, "__mod_mdio_device_table"))
979 do_table(symval, sym->st_size,
980 sizeof(struct mdio_device_id), "mdio",
981 do_mdio_entry, mod);
956 else if (sym_is(symname, "__mod_zorro_device_table")) 982 else if (sym_is(symname, "__mod_zorro_device_table"))
957 do_table(symval, sym->st_size, 983 do_table(symval, sym->st_size,
958 sizeof(struct zorro_device_id), "zorro", 984 sizeof(struct zorro_device_id), "zorro",