diff options
Diffstat (limited to 'drivers/acpi')
-rw-r--r-- | drivers/acpi/Kconfig | 4 | ||||
-rw-r--r-- | drivers/acpi/ac.c | 1 | ||||
-rw-r--r-- | drivers/acpi/button.c | 3 | ||||
-rw-r--r-- | drivers/acpi/pci_root.c | 11 | ||||
-rw-r--r-- | drivers/acpi/video.c | 7 | ||||
-rw-r--r-- | drivers/acpi/video_detect.c | 2 |
6 files changed, 24 insertions, 4 deletions
diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig index 0ed42d8870c7..93d2c7971df6 100644 --- a/drivers/acpi/Kconfig +++ b/drivers/acpi/Kconfig | |||
@@ -218,10 +218,10 @@ config ACPI_PROCESSOR_AGGREGATOR | |||
218 | depends on X86 | 218 | depends on X86 |
219 | help | 219 | help |
220 | ACPI 4.0 defines processor Aggregator, which enables OS to perform | 220 | ACPI 4.0 defines processor Aggregator, which enables OS to perform |
221 | specfic processor configuration and control that applies to all | 221 | specific processor configuration and control that applies to all |
222 | processors in the platform. Currently only logical processor idling | 222 | processors in the platform. Currently only logical processor idling |
223 | is defined, which is to reduce power consumption. This driver | 223 | is defined, which is to reduce power consumption. This driver |
224 | support the new device. | 224 | supports the new device. |
225 | 225 | ||
226 | config ACPI_THERMAL | 226 | config ACPI_THERMAL |
227 | tristate "Thermal Zone" | 227 | tristate "Thermal Zone" |
diff --git a/drivers/acpi/ac.c b/drivers/acpi/ac.c index 98b9690b0159..b6ed60b57b0d 100644 --- a/drivers/acpi/ac.c +++ b/drivers/acpi/ac.c | |||
@@ -245,6 +245,7 @@ static void acpi_ac_notify(struct acpi_device *device, u32 event) | |||
245 | acpi_bus_generate_netlink_event(device->pnp.device_class, | 245 | acpi_bus_generate_netlink_event(device->pnp.device_class, |
246 | dev_name(&device->dev), event, | 246 | dev_name(&device->dev), event, |
247 | (u32) ac->state); | 247 | (u32) ac->state); |
248 | acpi_notifier_call_chain(device, event, (u32) ac->state); | ||
248 | #ifdef CONFIG_ACPI_SYSFS_POWER | 249 | #ifdef CONFIG_ACPI_SYSFS_POWER |
249 | kobject_uevent(&ac->charger.dev->kobj, KOBJ_CHANGE); | 250 | kobject_uevent(&ac->charger.dev->kobj, KOBJ_CHANGE); |
250 | #endif | 251 | #endif |
diff --git a/drivers/acpi/button.c b/drivers/acpi/button.c index 9335b87c5174..0c9c6a9a002c 100644 --- a/drivers/acpi/button.c +++ b/drivers/acpi/button.c | |||
@@ -251,6 +251,9 @@ int acpi_lid_open(void) | |||
251 | acpi_status status; | 251 | acpi_status status; |
252 | unsigned long long state; | 252 | unsigned long long state; |
253 | 253 | ||
254 | if (!lid_device) | ||
255 | return -ENODEV; | ||
256 | |||
254 | status = acpi_evaluate_integer(lid_device->handle, "_LID", NULL, | 257 | status = acpi_evaluate_integer(lid_device->handle, "_LID", NULL, |
255 | &state); | 258 | &state); |
256 | if (ACPI_FAILURE(status)) | 259 | if (ACPI_FAILURE(status)) |
diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c index 31122214e0ec..1af808171d46 100644 --- a/drivers/acpi/pci_root.c +++ b/drivers/acpi/pci_root.c | |||
@@ -389,6 +389,17 @@ struct pci_dev *acpi_get_pci_dev(acpi_handle handle) | |||
389 | 389 | ||
390 | pbus = pdev->subordinate; | 390 | pbus = pdev->subordinate; |
391 | pci_dev_put(pdev); | 391 | pci_dev_put(pdev); |
392 | |||
393 | /* | ||
394 | * This function may be called for a non-PCI device that has a | ||
395 | * PCI parent (eg. a disk under a PCI SATA controller). In that | ||
396 | * case pdev->subordinate will be NULL for the parent. | ||
397 | */ | ||
398 | if (!pbus) { | ||
399 | dev_dbg(&pdev->dev, "Not a PCI-to-PCI bridge\n"); | ||
400 | pdev = NULL; | ||
401 | break; | ||
402 | } | ||
392 | } | 403 | } |
393 | out: | 404 | out: |
394 | list_for_each_entry_safe(node, tmp, &device_list, node) | 405 | list_for_each_entry_safe(node, tmp, &device_list, node) |
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c index f6e54bf8dd96..64e3c581b7a9 100644 --- a/drivers/acpi/video.c +++ b/drivers/acpi/video.c | |||
@@ -1109,7 +1109,12 @@ static int acpi_video_bus_check(struct acpi_video_bus *video) | |||
1109 | */ | 1109 | */ |
1110 | 1110 | ||
1111 | /* Does this device support video switching? */ | 1111 | /* Does this device support video switching? */ |
1112 | if (video->cap._DOS) { | 1112 | if (video->cap._DOS || video->cap._DOD) { |
1113 | if (!video->cap._DOS) { | ||
1114 | printk(KERN_WARNING FW_BUG | ||
1115 | "ACPI(%s) defines _DOD but not _DOS\n", | ||
1116 | acpi_device_bid(video->device)); | ||
1117 | } | ||
1113 | video->flags.multihead = 1; | 1118 | video->flags.multihead = 1; |
1114 | status = 0; | 1119 | status = 0; |
1115 | } | 1120 | } |
diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c index 7032f25da9b5..575593a8b4e6 100644 --- a/drivers/acpi/video_detect.c +++ b/drivers/acpi/video_detect.c | |||
@@ -84,7 +84,7 @@ long acpi_is_video_device(struct acpi_device *device) | |||
84 | return 0; | 84 | return 0; |
85 | 85 | ||
86 | /* Does this device able to support video switching ? */ | 86 | /* Does this device able to support video switching ? */ |
87 | if (ACPI_SUCCESS(acpi_get_handle(device->handle, "_DOD", &h_dummy)) && | 87 | if (ACPI_SUCCESS(acpi_get_handle(device->handle, "_DOD", &h_dummy)) || |
88 | ACPI_SUCCESS(acpi_get_handle(device->handle, "_DOS", &h_dummy))) | 88 | ACPI_SUCCESS(acpi_get_handle(device->handle, "_DOS", &h_dummy))) |
89 | video_caps |= ACPI_VIDEO_OUTPUT_SWITCHING; | 89 | video_caps |= ACPI_VIDEO_OUTPUT_SWITCHING; |
90 | 90 | ||