mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-25 16:11:45 +00:00
[PATCH] Make MODULE_DEVICE_TABLE work for vio devices
Make MODULE_DEVICE_TABLE work for vio devices. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
parent
71d276d751
commit
fb120da678
12 changed files with 35 additions and 15 deletions
|
@ -341,6 +341,22 @@ static int do_of_entry (const char *filename, struct of_device_id *of, char *ali
|
|||
return 1;
|
||||
}
|
||||
|
||||
static int do_vio_entry(const char *filename, struct vio_device_id *vio,
|
||||
char *alias)
|
||||
{
|
||||
char *tmp;
|
||||
|
||||
sprintf(alias, "vio:T%sS%s", vio->type[0] ? vio->type : "*",
|
||||
vio->compat[0] ? vio->compat : "*");
|
||||
|
||||
/* Replace all whitespace with underscores */
|
||||
for (tmp = alias; tmp && *tmp; tmp++)
|
||||
if (isspace (*tmp))
|
||||
*tmp = '_';
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Ignore any prefix, eg. v850 prepends _ */
|
||||
static inline int sym_is(const char *symbol, const char *name)
|
||||
{
|
||||
|
@ -422,6 +438,9 @@ void handle_moddevtable(struct module *mod, struct elf_info *info,
|
|||
else if (sym_is(symname, "__mod_of_device_table"))
|
||||
do_table(symval, sym->st_size, sizeof(struct of_device_id),
|
||||
do_of_entry, mod);
|
||||
else if (sym_is(symname, "__mod_vio_device_table"))
|
||||
do_table(symval, sym->st_size, sizeof(struct vio_device_id),
|
||||
do_vio_entry, mod);
|
||||
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue