diff options
author | Thomas Renninger <trenn@suse.de> | 2007-07-23 08:43:51 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2007-07-23 13:56:16 -0400 |
commit | 29b71a1ca74491fab9fed09e9d835d840d042690 (patch) | |
tree | e46dc9c53e4b6266703dedc21925875cea9e4abc /drivers/pnp | |
parent | 8c8eb78f673c07b60f31751e1e47ac367c60c6b7 (diff) |
ACPI: autoload modules - Create ACPI alias interface
Modify modpost (file2alias.c) to add acpi*:XYZ0001: alias in modules.alias
like:
grep acpi /lib/modules/2.6.22-rc4-default/modules.alias
alias acpi*:SNY5001:* sony_laptop
alias acpi*:SNY6001:* sony_laptop
for e.g. the sony_laptop module.
This module matches against all ACPI devices with a HID or CID of SNY5001
or SNY6001
Export an uevent and modalias sysfs file containing the string:
[MODALIAS=]acpi:PNP0C0C:
additional CIDs are concatenated at the end.
Signed-off-by: Thomas Renninger <trenn@suse.de>
Signed-off-by: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/pnp')
-rw-r--r-- | drivers/pnp/pnpacpi/core.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/drivers/pnp/pnpacpi/core.c b/drivers/pnp/pnpacpi/core.c index a00548799e98..0bc889144e6f 100644 --- a/drivers/pnp/pnpacpi/core.c +++ b/drivers/pnp/pnpacpi/core.c | |||
@@ -21,7 +21,10 @@ | |||
21 | 21 | ||
22 | #include <linux/acpi.h> | 22 | #include <linux/acpi.h> |
23 | #include <linux/pnp.h> | 23 | #include <linux/pnp.h> |
24 | #include <linux/mod_devicetable.h> | ||
24 | #include <acpi/acpi_bus.h> | 25 | #include <acpi/acpi_bus.h> |
26 | #include <acpi/actypes.h> | ||
27 | |||
25 | #include "pnpacpi.h" | 28 | #include "pnpacpi.h" |
26 | 29 | ||
27 | static int num = 0; | 30 | static int num = 0; |
@@ -33,15 +36,17 @@ static int num = 0; | |||
33 | * have irqs (PIC, Timer) because we call acpi_register_gsi. | 36 | * have irqs (PIC, Timer) because we call acpi_register_gsi. |
34 | * Finaly only devices that have a CRS method need to be in this list. | 37 | * Finaly only devices that have a CRS method need to be in this list. |
35 | */ | 38 | */ |
36 | static char __initdata excluded_id_list[] = | 39 | static __initdata struct acpi_device_id excluded_id_list[] ={ |
37 | "PNP0C09," /* EC */ | 40 | {"PNP0C09", 0}, /* EC */ |
38 | "PNP0C0F," /* Link device */ | 41 | {"PNP0C0F", 0}, /* Link device */ |
39 | "PNP0000," /* PIC */ | 42 | {"PNP0000", 0}, /* PIC */ |
40 | "PNP0100," /* Timer */ | 43 | {"PNP0100", 0}, /* Timer */ |
41 | ; | 44 | {"", 0}, |
45 | }; | ||
46 | |||
42 | static inline int is_exclusive_device(struct acpi_device *dev) | 47 | static inline int is_exclusive_device(struct acpi_device *dev) |
43 | { | 48 | { |
44 | return (!acpi_match_ids(dev, excluded_id_list)); | 49 | return (!acpi_match_device_ids(dev, excluded_id_list)); |
45 | } | 50 | } |
46 | 51 | ||
47 | /* | 52 | /* |