Loading drivers/mmc/core/sdio_bus.c +20 −1 Original line number Diff line number Diff line Loading @@ -68,7 +68,26 @@ static int sdio_bus_uevent(struct device *dev, char **envp, int num_envp, char *buf, int buf_size) { envp[0] = NULL; struct sdio_func *func = dev_to_sdio_func(dev); int i = 0, length = 0; if (add_uevent_var(envp, num_envp, &i, buf, buf_size, &length, "SDIO_CLASS=%02X", func->class)) return -ENOMEM; if (add_uevent_var(envp, num_envp, &i, buf, buf_size, &length, "SDIO_ID=%04X:%04X", func->vendor, func->device)) return -ENOMEM; if (add_uevent_var(envp, num_envp, &i, buf, buf_size, &length, "MODALIAS=sdio:c%02Xv%04Xd%04X", func->class, func->vendor, func->device)) return -ENOMEM; envp[i] = NULL; return 0; } Loading scripts/mod/file2alias.c +20 −0 Original line number Diff line number Diff line Loading @@ -484,6 +484,22 @@ static int do_parisc_entry(const char *filename, struct parisc_device_id *id, return 1; } /* Looks like: sdio:cNvNdN. */ static int do_sdio_entry(const char *filename, struct sdio_device_id *id, char *alias) { id->class = TO_NATIVE(id->class); id->vendor = TO_NATIVE(id->vendor); id->device = TO_NATIVE(id->device); strcpy(alias, "sdio:"); ADD(alias, "c", id->class != (__u8)SDIO_ANY_ID, id->class); ADD(alias, "v", id->vendor != (__u16)SDIO_ANY_ID, id->vendor); ADD(alias, "d", id->device != (__u16)SDIO_ANY_ID, id->device); return 1; } /* Ignore any prefix, eg. v850 prepends _ */ static inline int sym_is(const char *symbol, const char *name) { Loading Loading @@ -599,6 +615,10 @@ void handle_moddevtable(struct module *mod, struct elf_info *info, do_table(symval, sym->st_size, sizeof(struct parisc_device_id), "parisc", do_parisc_entry, mod); else if (sym_is(symname, "__mod_sdio_device_table")) do_table(symval, sym->st_size, sizeof(struct sdio_device_id), "sdio", do_sdio_entry, mod); } /* Now add out buffered information to the generated C source */ Loading Loading
drivers/mmc/core/sdio_bus.c +20 −1 Original line number Diff line number Diff line Loading @@ -68,7 +68,26 @@ static int sdio_bus_uevent(struct device *dev, char **envp, int num_envp, char *buf, int buf_size) { envp[0] = NULL; struct sdio_func *func = dev_to_sdio_func(dev); int i = 0, length = 0; if (add_uevent_var(envp, num_envp, &i, buf, buf_size, &length, "SDIO_CLASS=%02X", func->class)) return -ENOMEM; if (add_uevent_var(envp, num_envp, &i, buf, buf_size, &length, "SDIO_ID=%04X:%04X", func->vendor, func->device)) return -ENOMEM; if (add_uevent_var(envp, num_envp, &i, buf, buf_size, &length, "MODALIAS=sdio:c%02Xv%04Xd%04X", func->class, func->vendor, func->device)) return -ENOMEM; envp[i] = NULL; return 0; } Loading
scripts/mod/file2alias.c +20 −0 Original line number Diff line number Diff line Loading @@ -484,6 +484,22 @@ static int do_parisc_entry(const char *filename, struct parisc_device_id *id, return 1; } /* Looks like: sdio:cNvNdN. */ static int do_sdio_entry(const char *filename, struct sdio_device_id *id, char *alias) { id->class = TO_NATIVE(id->class); id->vendor = TO_NATIVE(id->vendor); id->device = TO_NATIVE(id->device); strcpy(alias, "sdio:"); ADD(alias, "c", id->class != (__u8)SDIO_ANY_ID, id->class); ADD(alias, "v", id->vendor != (__u16)SDIO_ANY_ID, id->vendor); ADD(alias, "d", id->device != (__u16)SDIO_ANY_ID, id->device); return 1; } /* Ignore any prefix, eg. v850 prepends _ */ static inline int sym_is(const char *symbol, const char *name) { Loading Loading @@ -599,6 +615,10 @@ void handle_moddevtable(struct module *mod, struct elf_info *info, do_table(symval, sym->st_size, sizeof(struct parisc_device_id), "parisc", do_parisc_entry, mod); else if (sym_is(symname, "__mod_sdio_device_table")) do_table(symval, sym->st_size, sizeof(struct sdio_device_id), "sdio", do_sdio_entry, mod); } /* Now add out buffered information to the generated C source */ Loading