Lines Matching full:device
31 #define ACPI_IS_ROOT_DEVICE(device) (!(device)->parent) argument
35 static const char *dummy_hid = "device";
47 * The UART device described by the SPCR table is the only object which needs
144 struct acpi_device *device = NULL; in acpi_bus_offline() local
149 if (acpi_bus_get_device(handle, &device)) in acpi_bus_offline()
152 if (device->handler && !device->handler->hotplug.enabled) { in acpi_bus_offline()
153 *ret_p = &device->dev; in acpi_bus_offline()
157 mutex_lock(&device->physical_node_lock); in acpi_bus_offline()
159 list_for_each_entry(pn, &device->physical_node_list, node) { in acpi_bus_offline()
181 mutex_unlock(&device->physical_node_lock); in acpi_bus_offline()
189 struct acpi_device *device = NULL; in acpi_bus_online() local
192 if (acpi_bus_get_device(handle, &device)) in acpi_bus_online()
195 mutex_lock(&device->physical_node_lock); in acpi_bus_online()
197 list_for_each_entry(pn, &device->physical_node_list, node) in acpi_bus_online()
203 mutex_unlock(&device->physical_node_lock); in acpi_bus_online()
208 static int acpi_scan_try_to_offline(struct acpi_device *device) in acpi_scan_try_to_offline() argument
210 acpi_handle handle = device->handle; in acpi_scan_try_to_offline()
211 struct device *errdev = NULL; in acpi_scan_try_to_offline()
254 static int acpi_scan_hot_remove(struct acpi_device *device) in acpi_scan_hot_remove() argument
256 acpi_handle handle = device->handle; in acpi_scan_hot_remove()
260 if (device->handler && device->handler->hotplug.demand_offline) { in acpi_scan_hot_remove()
261 if (!acpi_scan_is_offline(device, true)) in acpi_scan_hot_remove()
264 int error = acpi_scan_try_to_offline(device); in acpi_scan_hot_remove()
270 "Hot-removing device %s...\n", dev_name(&device->dev))); in acpi_scan_hot_remove()
272 acpi_bus_trim(device); in acpi_scan_hot_remove()
317 * This function is only called for device objects for which in acpi_scan_device_check()
319 * the scan handler is not attached to this device object yet in acpi_scan_device_check()
320 * is when the device has just appeared (either it wasn't in acpi_scan_device_check()
399 * The device object's ACPI handle cannot become invalid as long as we in acpi_device_hotplug()
417 * There may be additional notify handlers for device objects in acpi_device_hotplug()
449 static void acpi_free_power_resources_lists(struct acpi_device *device) in acpi_free_power_resources_lists() argument
453 if (device->wakeup.flags.valid) in acpi_free_power_resources_lists()
454 acpi_power_resources_list_free(&device->wakeup.resources); in acpi_free_power_resources_lists()
456 if (!device->power.flags.power_resources) in acpi_free_power_resources_lists()
460 struct acpi_device_power_state *ps = &device->power.states[i]; in acpi_free_power_resources_lists()
465 static void acpi_device_release(struct device *dev) in acpi_device_release()
475 static void acpi_device_del(struct acpi_device *device) in acpi_device_del() argument
480 if (device->parent) in acpi_device_del()
481 list_del(&device->node); in acpi_device_del()
485 acpi_device_hid(device))) { in acpi_device_del()
495 list_del(&device->wakeup_list); in acpi_device_del()
498 acpi_power_add_remove_device(device, false); in acpi_device_del()
499 acpi_device_remove_files(device); in acpi_device_del()
500 if (device->remove) in acpi_device_del()
501 device->remove(device); in acpi_device_del()
503 device_del(&device->dev); in acpi_device_del()
534 * used by the device. in acpi_device_del_work_fn()
542 * acpi_scan_drop_device - Drop an ACPI device object.
544 * @context: Address of the ACPI device object to drop.
547 * namespace node the device object pointed to by @context is attached to.
551 * ensure the correct ordering (the device objects must be unregistered in the
564 * prevents attempts to register device objects identical to those being in acpi_scan_drop_device()
568 * those work items to ensure that they are not accessing stale device in acpi_scan_drop_device()
581 static int acpi_get_device_data(acpi_handle handle, struct acpi_device **device, in acpi_get_device_data() argument
586 if (!device) in acpi_get_device_data()
590 (void **)device, callback); in acpi_get_device_data()
591 if (ACPI_FAILURE(status) || !*device) { in acpi_get_device_data()
599 int acpi_bus_get_device(acpi_handle handle, struct acpi_device **device) in acpi_bus_get_device() argument
601 return acpi_get_device_data(handle, device, NULL); in acpi_bus_get_device()
624 int acpi_device_add(struct acpi_device *device, in acpi_device_add() argument
625 void (*release)(struct device *)) in acpi_device_add() argument
631 if (device->handle) { in acpi_device_add()
634 status = acpi_attach_data(device->handle, acpi_scan_drop_device, in acpi_device_add()
635 device); in acpi_device_add()
637 acpi_handle_err(device->handle, in acpi_device_add()
638 "Unable to attach device data\n"); in acpi_device_add()
646 * Link this device to its parent and siblings. in acpi_device_add()
648 INIT_LIST_HEAD(&device->children); in acpi_device_add()
649 INIT_LIST_HEAD(&device->node); in acpi_device_add()
650 INIT_LIST_HEAD(&device->wakeup_list); in acpi_device_add()
651 INIT_LIST_HEAD(&device->physical_node_list); in acpi_device_add()
652 INIT_LIST_HEAD(&device->del_list); in acpi_device_add()
653 mutex_init(&device->physical_node_lock); in acpi_device_add()
669 acpi_device_hid(device))) { in acpi_device_add()
678 strcpy(acpi_device_bus_id->bus_id, acpi_device_hid(device)); in acpi_device_add()
682 dev_set_name(&device->dev, "%s:%02x", acpi_device_bus_id->bus_id, acpi_device_bus_id->instance_no); in acpi_device_add()
684 if (device->parent) in acpi_device_add()
685 list_add_tail(&device->node, &device->parent->children); in acpi_device_add()
687 if (device->wakeup.flags.valid) in acpi_device_add()
688 list_add_tail(&device->wakeup_list, &acpi_wakeup_device_list); in acpi_device_add()
691 if (device->parent) in acpi_device_add()
692 device->dev.parent = &device->parent->dev; in acpi_device_add()
693 device->dev.bus = &acpi_bus_type; in acpi_device_add()
694 device->dev.release = release; in acpi_device_add()
695 result = device_add(&device->dev); in acpi_device_add()
697 dev_err(&device->dev, "Error registering device\n"); in acpi_device_add()
701 result = acpi_device_setup_files(device); in acpi_device_add()
703 printk(KERN_ERR PREFIX "Error creating sysfs interface for device %s\n", in acpi_device_add()
704 dev_name(&device->dev)); in acpi_device_add()
710 if (device->parent) in acpi_device_add()
711 list_del(&device->node); in acpi_device_add()
712 list_del(&device->wakeup_list); in acpi_device_add()
716 acpi_detach_data(device->handle, acpi_scan_drop_device); in acpi_device_add()
721 Device Enumeration
725 struct acpi_device *device = NULL; in acpi_bus_get_parent() local
740 } while (acpi_bus_get_device(handle, &device)); in acpi_bus_get_parent()
741 return device; in acpi_bus_get_parent()
847 static bool acpi_wakeup_gpe_init(struct acpi_device *device) in acpi_wakeup_gpe_init() argument
855 struct acpi_device_wakeup *wakeup = &device->wakeup; in acpi_wakeup_gpe_init()
861 if (!acpi_match_device_ids(device, button_device_ids)) { in acpi_wakeup_gpe_init()
862 if (!acpi_match_device_ids(device, &button_device_ids[1])) { in acpi_wakeup_gpe_init()
868 device_set_wakeup_capable(&device->dev, true); in acpi_wakeup_gpe_init()
872 status = acpi_setup_gpe_for_wake(device->handle, wakeup->gpe_device, in acpi_wakeup_gpe_init()
877 static void acpi_bus_get_wakeup_device_flags(struct acpi_device *device) in acpi_bus_get_wakeup_device_flags() argument
882 if (!acpi_has_method(device->handle, "_PRW")) in acpi_bus_get_wakeup_device_flags()
885 err = acpi_bus_extract_wakeup_device_power_package(device); in acpi_bus_get_wakeup_device_flags()
887 dev_err(&device->dev, "_PRW evaluation error: %d\n", err); in acpi_bus_get_wakeup_device_flags()
891 device->wakeup.flags.valid = acpi_wakeup_gpe_init(device); in acpi_bus_get_wakeup_device_flags()
892 device->wakeup.prepare_count = 0; in acpi_bus_get_wakeup_device_flags()
895 * system for the ACPI device with the _PRW object. in acpi_bus_get_wakeup_device_flags()
900 err = acpi_device_sleep_wake(device, 0, 0, 0); in acpi_bus_get_wakeup_device_flags()
906 static void acpi_bus_init_power_state(struct acpi_device *device, int state) in acpi_bus_init_power_state() argument
908 struct acpi_device_power_state *ps = &device->power.states[state]; in acpi_bus_init_power_state()
916 status = acpi_evaluate_object(device->handle, pathname, NULL, &buffer); in acpi_bus_init_power_state()
926 device->power.flags.power_resources = 1; in acpi_bus_init_power_state()
933 if (acpi_has_method(device->handle, pathname)) in acpi_bus_init_power_state()
936 /* State is valid if there are means to put the device into it. */ in acpi_bus_init_power_state()
944 static void acpi_bus_get_power_flags(struct acpi_device *device) in acpi_bus_get_power_flags() argument
949 if (!acpi_has_method(device->handle, "_PS0") && in acpi_bus_get_power_flags()
950 !acpi_has_method(device->handle, "_PR0")) in acpi_bus_get_power_flags()
953 device->flags.power_manageable = 1; in acpi_bus_get_power_flags()
958 if (acpi_has_method(device->handle, "_PSC")) in acpi_bus_get_power_flags()
959 device->power.flags.explicit_get = 1; in acpi_bus_get_power_flags()
961 if (acpi_has_method(device->handle, "_IRC")) in acpi_bus_get_power_flags()
962 device->power.flags.inrush_current = 1; in acpi_bus_get_power_flags()
964 if (acpi_has_method(device->handle, "_DSW")) in acpi_bus_get_power_flags()
965 device->power.flags.dsw_present = 1; in acpi_bus_get_power_flags()
971 acpi_bus_init_power_state(device, i); in acpi_bus_get_power_flags()
973 INIT_LIST_HEAD(&device->power.states[ACPI_STATE_D3_COLD].resources); in acpi_bus_get_power_flags()
974 if (!list_empty(&device->power.states[ACPI_STATE_D3_HOT].resources)) in acpi_bus_get_power_flags()
975 device->power.states[ACPI_STATE_D3_COLD].flags.valid = 1; in acpi_bus_get_power_flags()
978 device->power.states[ACPI_STATE_D0].flags.valid = 1; in acpi_bus_get_power_flags()
979 device->power.states[ACPI_STATE_D0].power = 100; in acpi_bus_get_power_flags()
980 device->power.states[ACPI_STATE_D3_HOT].flags.valid = 1; in acpi_bus_get_power_flags()
982 if (acpi_bus_init_power(device)) in acpi_bus_get_power_flags()
983 device->flags.power_manageable = 0; in acpi_bus_get_power_flags()
986 static void acpi_bus_get_flags(struct acpi_device *device) in acpi_bus_get_flags() argument
989 if (acpi_has_method(device->handle, "_STA")) in acpi_bus_get_flags()
990 device->flags.dynamic_status = 1; in acpi_bus_get_flags()
993 if (acpi_has_method(device->handle, "_RMV")) in acpi_bus_get_flags()
994 device->flags.removable = 1; in acpi_bus_get_flags()
997 if (acpi_has_method(device->handle, "_EJD") || in acpi_bus_get_flags()
998 acpi_has_method(device->handle, "_EJ0")) in acpi_bus_get_flags()
999 device->flags.ejectable = 1; in acpi_bus_get_flags()
1002 static void acpi_device_get_busid(struct acpi_device *device) in acpi_device_get_busid() argument
1011 * The device's Bus ID is simply the object name. in acpi_device_get_busid()
1014 if (ACPI_IS_ROOT_DEVICE(device)) { in acpi_device_get_busid()
1015 strcpy(device->pnp.bus_id, "ACPI"); in acpi_device_get_busid()
1019 switch (device->device_type) { in acpi_device_get_busid()
1021 strcpy(device->pnp.bus_id, "PWRF"); in acpi_device_get_busid()
1024 strcpy(device->pnp.bus_id, "SLPF"); in acpi_device_get_busid()
1027 strcpy(device->pnp.bus_id, "ECDT"); in acpi_device_get_busid()
1030 acpi_get_name(device->handle, ACPI_SINGLE_NAME, &buffer); in acpi_device_get_busid()
1038 strcpy(device->pnp.bus_id, bus_id); in acpi_device_get_busid()
1044 * acpi_ata_match - see if an acpi object is an ATA device
1047 * then we can safely call it an ATA device.
1123 /* Returns true if the ACPI object is a video device which can be
1125 * The device will get a Linux specific CID added in scan.c to
1126 * identify the device as an ACPI graphics device
1127 * Be aware that the graphics device may not be physically present
1135 /* Is this device able to support video switching ? */ in acpi_is_video_device()
1139 /* Is this device able to retrieve a video ROM ? */ in acpi_is_video_device()
1143 /* Is this device able to configure which video head to be POSTed ? */ in acpi_is_video_device()
1159 const char *acpi_device_hid(struct acpi_device *device) in acpi_device_hid() argument
1163 if (list_empty(&device->pnp.ids)) in acpi_device_hid()
1166 hid = list_first_entry(&device->pnp.ids, struct acpi_hardware_id, list); in acpi_device_hid()
1247 pr_err(PREFIX "%s: Error reading device info\n", in acpi_set_pnp_ids()
1327 * acpi_dma_supported - Check DMA support for the specified device.
1328 * @adev: The pointer to acpi device
1352 * acpi_get_dma_attr - Check the supported DMA attr for the specified device.
1353 * @adev: The pointer to acpi device
1369 * acpi_dma_get_range() - Get device DMA parameters.
1371 * @dev: device to configure
1372 * @dma_addr: pointer device DMA address result
1382 int acpi_dma_get_range(struct device *dev, u64 *dma_addr, u64 *offset, in acpi_dma_get_range()
1389 struct device *dma_dev = dev; in acpi_dma_get_range()
1393 * Walk the device tree chasing an ACPI companion with a _DMA in acpi_dma_get_range()
1394 * object while we go. Stop if we find a device with an ACPI in acpi_dma_get_range()
1448 * acpi_dma_configure - Set-up DMA configuration for the device.
1449 * @dev: The pointer to the device
1450 * @attr: device dma attributes
1452 int acpi_dma_configure(struct device *dev, enum dev_dma_attr attr) in acpi_dma_configure()
1502 "ACPI device is missing _CCA.\n"); in acpi_init_coherency()
1521 static bool acpi_is_indirect_io_slave(struct acpi_device *device) in acpi_is_indirect_io_slave() argument
1523 struct acpi_device *parent = device->parent; in acpi_is_indirect_io_slave()
1532 static bool acpi_device_enumeration_by_parent(struct acpi_device *device) in acpi_device_enumeration_by_parent() argument
1552 if (acpi_is_indirect_io_slave(device)) in acpi_device_enumeration_by_parent()
1555 /* Macs use device properties in lieu of _CRS resources */ in acpi_device_enumeration_by_parent()
1557 (fwnode_property_present(&device->fwnode, "spiSclkPeriod") || in acpi_device_enumeration_by_parent()
1558 fwnode_property_present(&device->fwnode, "i2cAddress") || in acpi_device_enumeration_by_parent()
1559 fwnode_property_present(&device->fwnode, "baud"))) in acpi_device_enumeration_by_parent()
1563 if (!acpi_match_device_ids(device, i2c_multi_instantiate_ids)) in acpi_device_enumeration_by_parent()
1567 acpi_dev_get_resources(device, &resource_list, in acpi_device_enumeration_by_parent()
1575 void acpi_init_device_object(struct acpi_device *device, acpi_handle handle, in acpi_init_device_object() argument
1578 INIT_LIST_HEAD(&device->pnp.ids); in acpi_init_device_object()
1579 device->device_type = type; in acpi_init_device_object()
1580 device->handle = handle; in acpi_init_device_object()
1581 device->parent = acpi_bus_get_parent(handle); in acpi_init_device_object()
1582 device->fwnode.ops = &acpi_device_fwnode_ops; in acpi_init_device_object()
1583 acpi_set_device_status(device, sta); in acpi_init_device_object()
1584 acpi_device_get_busid(device); in acpi_init_device_object()
1585 acpi_set_pnp_ids(handle, &device->pnp, type); in acpi_init_device_object()
1586 acpi_init_properties(device); in acpi_init_device_object()
1587 acpi_bus_get_flags(device); in acpi_init_device_object()
1588 device->flags.match_driver = false; in acpi_init_device_object()
1589 device->flags.initialized = true; in acpi_init_device_object()
1590 device->flags.enumeration_by_parent = in acpi_init_device_object()
1591 acpi_device_enumeration_by_parent(device); in acpi_init_device_object()
1592 acpi_device_clear_enumerated(device); in acpi_init_device_object()
1593 device_initialize(&device->dev); in acpi_init_device_object()
1594 dev_set_uevent_suppress(&device->dev, true); in acpi_init_device_object()
1595 acpi_init_coherency(device); in acpi_init_device_object()
1597 device->dep_unmet = 1; in acpi_init_device_object()
1600 void acpi_device_add_finalize(struct acpi_device *device) in acpi_device_add_finalize() argument
1602 dev_set_uevent_suppress(&device->dev, false); in acpi_device_add_finalize()
1603 kobject_uevent(&device->dev.kobj, KOBJ_ADD); in acpi_device_add_finalize()
1611 struct acpi_device *device; in acpi_add_single_object() local
1614 device = kzalloc(sizeof(struct acpi_device), GFP_KERNEL); in acpi_add_single_object()
1615 if (!device) { in acpi_add_single_object()
1620 acpi_init_device_object(device, handle, type, sta); in acpi_add_single_object()
1627 if (acpi_bus_get_status(device) < 0) in acpi_add_single_object()
1628 acpi_set_device_status(device, 0); in acpi_add_single_object()
1630 acpi_bus_get_power_flags(device); in acpi_add_single_object()
1631 acpi_bus_get_wakeup_device_flags(device); in acpi_add_single_object()
1633 result = acpi_device_add(device, acpi_device_release); in acpi_add_single_object()
1635 acpi_device_release(&device->dev); in acpi_add_single_object()
1639 acpi_power_add_remove_device(device, true); in acpi_add_single_object()
1640 acpi_device_add_finalize(device); in acpi_add_single_object()
1643 dev_name(&device->dev), (char *) buffer.pointer, in acpi_add_single_object()
1644 device->parent ? dev_name(&device->parent->dev) : "(null)")); in acpi_add_single_object()
1646 *child = device; in acpi_add_single_object()
1666 /* Check if it should ignore the UART device */ in acpi_device_should_be_hidden()
1671 * The UART device described in SPCR table is assumed to have only one in acpi_device_should_be_hidden()
1679 acpi_handle_info(handle, "The UART device @%pa in SPCR table will be hidden\n", in acpi_device_should_be_hidden()
1822 dev_dbg(&adev->dev, "Error reading _DEP device info\n"); in acpi_device_dep_initialize()
1855 struct acpi_device *device = NULL; in acpi_bus_check_add() local
1860 acpi_bus_get_device(handle, &device); in acpi_bus_check_add()
1861 if (device) in acpi_bus_check_add()
1873 acpi_add_single_object(&device, handle, type, sta); in acpi_bus_check_add()
1874 if (!device) in acpi_bus_check_add()
1877 acpi_scan_init_hotplug(device); in acpi_bus_check_add()
1878 acpi_device_dep_initialize(device); in acpi_bus_check_add()
1882 *return_value = device; in acpi_bus_check_add()
1887 static void acpi_default_enumeration(struct acpi_device *device) in acpi_default_enumeration() argument
1893 if (!device->flags.enumeration_by_parent) { in acpi_default_enumeration()
1894 acpi_create_platform_device(device, NULL); in acpi_default_enumeration()
1895 acpi_device_set_enumerated(device); in acpi_default_enumeration()
1898 ACPI_RECONFIG_DEVICE_ADD, device); in acpi_default_enumeration()
1925 static int acpi_scan_attach_handler(struct acpi_device *device) in acpi_scan_attach_handler() argument
1930 list_for_each_entry(hwid, &device->pnp.ids, list) { in acpi_scan_attach_handler()
1937 device->pnp.type.platform_id = 0; in acpi_scan_attach_handler()
1940 device->handler = handler; in acpi_scan_attach_handler()
1941 ret = handler->attach(device, devid); in acpi_scan_attach_handler()
1945 device->handler = NULL; in acpi_scan_attach_handler()
1954 static void acpi_bus_attach(struct acpi_device *device) in acpi_bus_attach() argument
1960 if (ACPI_SUCCESS(acpi_bus_get_ejd(device->handle, &ejd))) in acpi_bus_attach()
1961 register_dock_dependent_device(device, ejd); in acpi_bus_attach()
1963 acpi_bus_get_status(device); in acpi_bus_attach()
1965 if (!acpi_device_is_present(device)) { in acpi_bus_attach()
1966 device->flags.initialized = false; in acpi_bus_attach()
1967 acpi_device_clear_enumerated(device); in acpi_bus_attach()
1968 device->flags.power_manageable = 0; in acpi_bus_attach()
1971 if (device->handler) in acpi_bus_attach()
1974 if (!device->flags.initialized) { in acpi_bus_attach()
1975 device->flags.power_manageable = in acpi_bus_attach()
1976 device->power.states[ACPI_STATE_D0].flags.valid; in acpi_bus_attach()
1977 if (acpi_bus_init_power(device)) in acpi_bus_attach()
1978 device->flags.power_manageable = 0; in acpi_bus_attach()
1980 device->flags.initialized = true; in acpi_bus_attach()
1981 } else if (device->flags.visited) { in acpi_bus_attach()
1985 ret = acpi_scan_attach_handler(device); in acpi_bus_attach()
1989 device->flags.match_driver = true; in acpi_bus_attach()
1990 if (ret > 0 && !device->flags.enumeration_by_parent) { in acpi_bus_attach()
1991 acpi_device_set_enumerated(device); in acpi_bus_attach()
1995 ret = device_attach(&device->dev); in acpi_bus_attach()
1999 if (device->pnp.type.platform_id || device->flags.enumeration_by_parent) in acpi_bus_attach()
2000 acpi_default_enumeration(device); in acpi_bus_attach()
2002 acpi_device_set_enumerated(device); in acpi_bus_attach()
2005 list_for_each_entry(child, &device->children, node) in acpi_bus_attach()
2008 if (device->handler && device->handler->hotplug.notify_online) in acpi_bus_attach()
2009 device->handler->hotplug.notify_online(device); in acpi_bus_attach()
2036 * acpi_bus_scan - Add ACPI device node objects in a given namespace scope.
2044 * in the table trunk from which the kernel could create a device and add an
2051 void *device = NULL; in acpi_bus_scan() local
2053 if (ACPI_SUCCESS(acpi_bus_check_add(handle, 0, NULL, &device))) in acpi_bus_scan()
2055 acpi_bus_check_add, NULL, NULL, &device); in acpi_bus_scan()
2057 if (device) { in acpi_bus_scan()
2058 acpi_bus_attach(device); in acpi_bus_scan()
2066 * acpi_bus_trim - Detach scan handlers and drivers from ACPI device objects.
2089 * Most likely, the device is going away, so put it into D3cold before in acpi_bus_trim()
2100 struct acpi_device *device = NULL; in acpi_bus_register_early_device() local
2103 result = acpi_add_single_object(&device, NULL, in acpi_bus_register_early_device()
2108 device->flags.match_driver = true; in acpi_bus_register_early_device()
2109 return device_attach(&device->dev); in acpi_bus_register_early_device()
2121 struct acpi_device *device = NULL; in acpi_bus_scan_fixed() local
2123 result = acpi_add_single_object(&device, NULL, in acpi_bus_scan_fixed()
2129 device->flags.match_driver = true; in acpi_bus_scan_fixed()
2130 result = device_attach(&device->dev); in acpi_bus_scan_fixed()
2134 device_init_wakeup(&device->dev, true); in acpi_bus_scan_fixed()
2138 struct acpi_device *device = NULL; in acpi_bus_scan_fixed() local
2140 result = acpi_add_single_object(&device, NULL, in acpi_bus_scan_fixed()
2146 device->flags.match_driver = true; in acpi_bus_scan_fixed()
2147 result = device_attach(&device->dev); in acpi_bus_scan_fixed()
2192 * device in SPCR table. in acpi_scan_init()