diff options
| author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2007-10-12 21:27:47 -0400 |
|---|---|---|
| committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2007-10-12 21:27:47 -0400 |
| commit | b981d8b3f5e008ff10d993be633ad00564fc22cd (patch) | |
| tree | e292dc07b22308912cf6a58354a608b9e5e8e1fd /scripts/mod/file2alias.c | |
| parent | b11d2127c4893a7315d1e16273bc8560049fa3ca (diff) | |
| parent | 2b9e0aae1d50e880c58d46788e5e3ebd89d75d62 (diff) | |
Merge master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6
Conflicts:
drivers/macintosh/adbhid.c
Diffstat (limited to 'scripts/mod/file2alias.c')
| -rw-r--r-- | scripts/mod/file2alias.c | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c index f646381dc015..36e3754db53a 100644 --- a/scripts/mod/file2alias.c +++ b/scripts/mod/file2alias.c | |||
| @@ -290,6 +290,14 @@ static int do_serio_entry(const char *filename, | |||
| 290 | return 1; | 290 | return 1; |
| 291 | } | 291 | } |
| 292 | 292 | ||
| 293 | /* looks like: "acpi:ACPI0003 or acpi:PNP0C0B" or "acpi:LNXVIDEO" */ | ||
| 294 | static int do_acpi_entry(const char *filename, | ||
| 295 | struct acpi_device_id *id, char *alias) | ||
| 296 | { | ||
| 297 | sprintf(alias, "acpi*:%s:", id->id); | ||
| 298 | return 1; | ||
| 299 | } | ||
| 300 | |||
| 293 | /* looks like: "pnp:dD" */ | 301 | /* looks like: "pnp:dD" */ |
| 294 | static int do_pnp_entry(const char *filename, | 302 | static int do_pnp_entry(const char *filename, |
| 295 | struct pnp_device_id *id, char *alias) | 303 | struct pnp_device_id *id, char *alias) |
| @@ -476,6 +484,36 @@ static int do_parisc_entry(const char *filename, struct parisc_device_id *id, | |||
| 476 | return 1; | 484 | return 1; |
| 477 | } | 485 | } |
| 478 | 486 | ||
| 487 | /* Looks like: sdio:cNvNdN. */ | ||
| 488 | static int do_sdio_entry(const char *filename, | ||
| 489 | struct sdio_device_id *id, char *alias) | ||
| 490 | { | ||
| 491 | id->class = TO_NATIVE(id->class); | ||
| 492 | id->vendor = TO_NATIVE(id->vendor); | ||
| 493 | id->device = TO_NATIVE(id->device); | ||
| 494 | |||
| 495 | strcpy(alias, "sdio:"); | ||
| 496 | ADD(alias, "c", id->class != (__u8)SDIO_ANY_ID, id->class); | ||
| 497 | ADD(alias, "v", id->vendor != (__u16)SDIO_ANY_ID, id->vendor); | ||
| 498 | ADD(alias, "d", id->device != (__u16)SDIO_ANY_ID, id->device); | ||
| 499 | return 1; | ||
| 500 | } | ||
| 501 | |||
| 502 | /* Looks like: ssb:vNidNrevN. */ | ||
| 503 | static int do_ssb_entry(const char *filename, | ||
| 504 | struct ssb_device_id *id, char *alias) | ||
| 505 | { | ||
| 506 | id->vendor = TO_NATIVE(id->vendor); | ||
| 507 | id->coreid = TO_NATIVE(id->coreid); | ||
| 508 | id->revision = TO_NATIVE(id->revision); | ||
| 509 | |||
| 510 | strcpy(alias, "ssb:"); | ||
| 511 | ADD(alias, "v", id->vendor != SSB_ANY_VENDOR, id->vendor); | ||
| 512 | ADD(alias, "id", id->coreid != SSB_ANY_ID, id->coreid); | ||
| 513 | ADD(alias, "rev", id->revision != SSB_ANY_REV, id->revision); | ||
| 514 | return 1; | ||
| 515 | } | ||
| 516 | |||
| 479 | /* Ignore any prefix, eg. v850 prepends _ */ | 517 | /* Ignore any prefix, eg. v850 prepends _ */ |
| 480 | static inline int sym_is(const char *symbol, const char *name) | 518 | static inline int sym_is(const char *symbol, const char *name) |
| 481 | { | 519 | { |
| @@ -551,6 +589,10 @@ void handle_moddevtable(struct module *mod, struct elf_info *info, | |||
| 551 | do_table(symval, sym->st_size, | 589 | do_table(symval, sym->st_size, |
| 552 | sizeof(struct serio_device_id), "serio", | 590 | sizeof(struct serio_device_id), "serio", |
| 553 | do_serio_entry, mod); | 591 | do_serio_entry, mod); |
| 592 | else if (sym_is(symname, "__mod_acpi_device_table")) | ||
| 593 | do_table(symval, sym->st_size, | ||
| 594 | sizeof(struct acpi_device_id), "acpi", | ||
| 595 | do_acpi_entry, mod); | ||
| 554 | else if (sym_is(symname, "__mod_pnp_device_table")) | 596 | else if (sym_is(symname, "__mod_pnp_device_table")) |
| 555 | do_table(symval, sym->st_size, | 597 | do_table(symval, sym->st_size, |
| 556 | sizeof(struct pnp_device_id), "pnp", | 598 | sizeof(struct pnp_device_id), "pnp", |
| @@ -587,6 +629,14 @@ void handle_moddevtable(struct module *mod, struct elf_info *info, | |||
| 587 | do_table(symval, sym->st_size, | 629 | do_table(symval, sym->st_size, |
| 588 | sizeof(struct parisc_device_id), "parisc", | 630 | sizeof(struct parisc_device_id), "parisc", |
| 589 | do_parisc_entry, mod); | 631 | do_parisc_entry, mod); |
| 632 | else if (sym_is(symname, "__mod_sdio_device_table")) | ||
| 633 | do_table(symval, sym->st_size, | ||
| 634 | sizeof(struct sdio_device_id), "sdio", | ||
| 635 | do_sdio_entry, mod); | ||
| 636 | else if (sym_is(symname, "__mod_ssb_device_table")) | ||
| 637 | do_table(symval, sym->st_size, | ||
| 638 | sizeof(struct ssb_device_id), "ssb", | ||
| 639 | do_ssb_entry, mod); | ||
| 590 | } | 640 | } |
| 591 | 641 | ||
| 592 | /* Now add out buffered information to the generated C source */ | 642 | /* Now add out buffered information to the generated C source */ |
