diff options
author | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2014-06-04 01:12:20 +0400 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2014-06-04 01:12:20 +0400 |
commit | b04c58b1ed26317bfb4b33d3a2d16377fc6acd0f (patch) | |
tree | 8b6f65582a8fb3b70a07c16321969af1d06f7afc /drivers/acpi/acpi_platform.c | |
parent | 864e055f44a5701cb033bf3afa2b6cc37ddba678 (diff) | |
parent | 48459340b92b00ae1a75179f168ef20d3e61f264 (diff) | |
download | linux-b04c58b1ed26317bfb4b33d3a2d16377fc6acd0f.tar.xz |
Merge branch 'acpi-enumeration'
* acpi-enumeration:
ACPI / scan: use platform bus type by default for _HID enumeration
ACPI / scan: always register ACPI LPSS scan handler
ACPI / scan: always register memory hotplug scan handler
ACPI / scan: always register container scan handler
ACPI / scan: Change the meaning of missing .attach() in scan handlers
ACPI / scan: introduce platform_id device PNP type flag
ACPI / scan: drop unsupported serial IDs from PNP ACPI scan handler ID list
ACPI / scan: drop IDs that do not comply with the ACPI PNP ID rule
ACPI / PNP: use device ID list for PNPACPI device enumeration
ACPI / scan: .match() callback for ACPI scan handlers
Diffstat (limited to 'drivers/acpi/acpi_platform.c')
-rw-r--r-- | drivers/acpi/acpi_platform.c | 44 |
1 files changed, 8 insertions, 36 deletions
diff --git a/drivers/acpi/acpi_platform.c b/drivers/acpi/acpi_platform.c index 3bb89def2292..2bf9082f7523 100644 --- a/drivers/acpi/acpi_platform.c +++ b/drivers/acpi/acpi_platform.c @@ -22,25 +22,11 @@ ACPI_MODULE_NAME("platform"); -/* - * The following ACPI IDs are known to be suitable for representing as - * platform devices. - */ -static const struct acpi_device_id acpi_platform_device_ids[] = { - - { "PNP0D40" }, - { "VPC2004" }, - { "BCM4752" }, - { "LNV4752" }, - { "BCM2E1A" }, - { "BCM2E39" }, - { "BCM2E3D" }, - - /* Intel Smart Sound Technology */ - { "INT33C8" }, - { "80860F28" }, - - { } +static const struct acpi_device_id forbidden_id_list[] = { + {"PNP0000", 0}, /* PIC */ + {"PNP0100", 0}, /* Timer */ + {"PNP0200", 0}, /* AT DMA Controller */ + {"", 0}, }; /** @@ -67,6 +53,9 @@ struct platform_device *acpi_create_platform_device(struct acpi_device *adev) if (adev->physical_node_count) return NULL; + if (!acpi_match_device_ids(adev, forbidden_id_list)) + return ERR_PTR(-EINVAL); + INIT_LIST_HEAD(&resource_list); count = acpi_dev_get_resources(adev, &resource_list, NULL, NULL); if (count < 0) { @@ -124,20 +113,3 @@ struct platform_device *acpi_create_platform_device(struct acpi_device *adev) kfree(resources); return pdev; } - -static int acpi_platform_attach(struct acpi_device *adev, - const struct acpi_device_id *id) -{ - acpi_create_platform_device(adev); - return 1; -} - -static struct acpi_scan_handler platform_handler = { - .ids = acpi_platform_device_ids, - .attach = acpi_platform_attach, -}; - -void __init acpi_platform_init(void) -{ - acpi_scan_add_handler(&platform_handler); -} |