i386: turn on CONFIG_PNP in defconfig
[pandora-kernel.git] / drivers / acpi / motherboard.c
index d51d68f..cddab7b 100644 (file)
@@ -33,8 +33,7 @@
 ACPI_MODULE_NAME("acpi_motherboard")
 
 /* Dell use PNP0C01 instead of PNP0C02 */
-#define ACPI_MB_HID1                   "PNP0C01"
-#define ACPI_MB_HID2                   "PNP0C02"
+#define ACPI_MB_HID                    "PNP0C01,PNP0C02"
 /**
  * Doesn't care about legacy IO ports, only IO ports beyond 0x1000 are reserved
  * Doesn't care about the failure of 'request_region', since other may reserve
@@ -48,17 +47,22 @@ ACPI_MODULE_NAME("acpi_motherboard")
  * the io ports if they really know they can use it, while
  * still preventing hotplug PCI devices from using it.
  */
+
+/*
+ * When CONFIG_PNP is enabled, pnp/system.c binds to PNP0C01
+ * and PNP0C02, redundant with acpi_reserve_io_ranges().
+ * But acpi_reserve_io_ranges() is necessary for !CONFIG_PNP.
+ */
 static acpi_status acpi_reserve_io_ranges(struct acpi_resource *res, void *data)
 {
        struct resource *requested_res = NULL;
 
-       ACPI_FUNCTION_TRACE("acpi_reserve_io_ranges");
 
        if (res->type == ACPI_RESOURCE_TYPE_IO) {
                struct acpi_resource_io *io_res = &res->data.io;
 
                if (io_res->minimum != io_res->maximum)
-                       return_VALUE(AE_OK);
+                       return AE_OK;
                if (IS_RESERVED_ADDR
                    (io_res->minimum, io_res->address_length)) {
                        ACPI_DEBUG_PRINT((ACPI_DB_INFO,
@@ -92,7 +96,7 @@ static acpi_status acpi_reserve_io_ranges(struct acpi_resource *res, void *data)
 
        if (requested_res)
                requested_res->flags &= ~IORESOURCE_BUSY;
-       return_VALUE(AE_OK);
+       return AE_OK;
 }
 
 static int acpi_motherboard_add(struct acpi_device *device)
@@ -105,77 +109,18 @@ static int acpi_motherboard_add(struct acpi_device *device)
        return 0;
 }
 
-static struct acpi_driver acpi_motherboard_driver1 = {
+static struct acpi_driver acpi_motherboard_driver = {
        .name = "motherboard",
        .class = "",
-       .ids = ACPI_MB_HID1,
+       .ids = ACPI_MB_HID,
        .ops = {
                .add = acpi_motherboard_add,
                },
 };
 
-static struct acpi_driver acpi_motherboard_driver2 = {
-       .name = "motherboard",
-       .class = "",
-       .ids = ACPI_MB_HID2,
-       .ops = {
-               .add = acpi_motherboard_add,
-               },
-};
-
-static void __init acpi_request_region (struct acpi_generic_address *addr,
-       unsigned int length, char *desc)
-{
-       if (!addr->address || !length)
-               return;
-
-       if (addr->address_space_id == ACPI_ADR_SPACE_SYSTEM_IO)
-               request_region(addr->address, length, desc);
-       else if (addr->address_space_id == ACPI_ADR_SPACE_SYSTEM_MEMORY)
-               request_mem_region(addr->address, length, desc);
-}
-
-static void __init acpi_reserve_resources(void)
-{
-       acpi_request_region(&acpi_gbl_FADT->xpm1a_evt_blk,
-                              acpi_gbl_FADT->pm1_evt_len, "ACPI PM1a_EVT_BLK");
-
-       acpi_request_region(&acpi_gbl_FADT->xpm1b_evt_blk,
-                              acpi_gbl_FADT->pm1_evt_len, "ACPI PM1b_EVT_BLK");
-
-       acpi_request_region(&acpi_gbl_FADT->xpm1a_cnt_blk,
-                              acpi_gbl_FADT->pm1_cnt_len, "ACPI PM1a_CNT_BLK");
-
-       acpi_request_region(&acpi_gbl_FADT->xpm1b_cnt_blk,
-                              acpi_gbl_FADT->pm1_cnt_len, "ACPI PM1b_CNT_BLK");
-
-       if (acpi_gbl_FADT->pm_tm_len == 4)
-               acpi_request_region(&acpi_gbl_FADT->xpm_tmr_blk, 4, "ACPI PM_TMR");
-
-       acpi_request_region(&acpi_gbl_FADT->xpm2_cnt_blk,
-                              acpi_gbl_FADT->pm2_cnt_len, "ACPI PM2_CNT_BLK");
-
-       /* Length of GPE blocks must be a non-negative multiple of 2 */
-
-       if (!(acpi_gbl_FADT->gpe0_blk_len & 0x1))
-               acpi_request_region(&acpi_gbl_FADT->xgpe0_blk,
-                              acpi_gbl_FADT->gpe0_blk_len, "ACPI GPE0_BLK");
-
-       if (!(acpi_gbl_FADT->gpe1_blk_len & 0x1))
-               acpi_request_region(&acpi_gbl_FADT->xgpe1_blk,
-                              acpi_gbl_FADT->gpe1_blk_len, "ACPI GPE1_BLK");
-}
-
 static int __init acpi_motherboard_init(void)
 {
-       acpi_bus_register_driver(&acpi_motherboard_driver1);
-       acpi_bus_register_driver(&acpi_motherboard_driver2);
-       /*
-        * Guarantee motherboard IO reservation first
-        * This module must run after scan.c
-        */
-       if (!acpi_disabled)
-               acpi_reserve_resources();
+       acpi_bus_register_driver(&acpi_motherboard_driver);
        return 0;
 }