diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2014-12-16 06:25:38 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2014-12-16 06:25:38 -0500 |
commit | 8ab7913675726e5ae23b91221c0b5442d986d44a (patch) | |
tree | f2673dcb25e864cc87abe3f2d58db9bf9730f148 /drivers/acpi | |
parent | 864b94adfcba752aa902ee34497bbe58b97aa8d3 (diff) | |
parent | 3a5dc1fafb016560315fe45bb4ef8bde259dd1bc (diff) |
Merge branch 'x86/vt-d' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu into x86/apic-picks
Required to apply Jiangs x86 irq handling rework without creating a
nightmare of conflicts.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'drivers/acpi')
-rw-r--r-- | drivers/acpi/apei/ghes.c | 20 | ||||
-rw-r--r-- | drivers/acpi/blacklist.c | 8 | ||||
-rw-r--r-- | drivers/acpi/device_pm.c | 2 | ||||
-rw-r--r-- | drivers/acpi/video.c | 3 |
4 files changed, 14 insertions, 19 deletions
diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c index fc5f780bb61d..1b6aa514848f 100644 --- a/drivers/acpi/apei/ghes.c +++ b/drivers/acpi/apei/ghes.c | |||
@@ -128,7 +128,7 @@ static DEFINE_SPINLOCK(ghes_ioremap_lock_irq); | |||
128 | static struct gen_pool *ghes_estatus_pool; | 128 | static struct gen_pool *ghes_estatus_pool; |
129 | static unsigned long ghes_estatus_pool_size_request; | 129 | static unsigned long ghes_estatus_pool_size_request; |
130 | 130 | ||
131 | struct ghes_estatus_cache *ghes_estatus_caches[GHES_ESTATUS_CACHES_SIZE]; | 131 | static struct ghes_estatus_cache *ghes_estatus_caches[GHES_ESTATUS_CACHES_SIZE]; |
132 | static atomic_t ghes_estatus_cache_alloced; | 132 | static atomic_t ghes_estatus_cache_alloced; |
133 | 133 | ||
134 | static int ghes_ioremap_init(void) | 134 | static int ghes_ioremap_init(void) |
@@ -738,20 +738,6 @@ static LIST_HEAD(ghes_nmi); | |||
738 | 738 | ||
739 | static int ghes_panic_timeout __read_mostly = 30; | 739 | static int ghes_panic_timeout __read_mostly = 30; |
740 | 740 | ||
741 | static struct llist_node *llist_nodes_reverse(struct llist_node *llnode) | ||
742 | { | ||
743 | struct llist_node *next, *tail = NULL; | ||
744 | |||
745 | while (llnode) { | ||
746 | next = llnode->next; | ||
747 | llnode->next = tail; | ||
748 | tail = llnode; | ||
749 | llnode = next; | ||
750 | } | ||
751 | |||
752 | return tail; | ||
753 | } | ||
754 | |||
755 | static void ghes_proc_in_irq(struct irq_work *irq_work) | 741 | static void ghes_proc_in_irq(struct irq_work *irq_work) |
756 | { | 742 | { |
757 | struct llist_node *llnode, *next; | 743 | struct llist_node *llnode, *next; |
@@ -765,7 +751,7 @@ static void ghes_proc_in_irq(struct irq_work *irq_work) | |||
765 | * Because the time order of estatus in list is reversed, | 751 | * Because the time order of estatus in list is reversed, |
766 | * revert it back to proper order. | 752 | * revert it back to proper order. |
767 | */ | 753 | */ |
768 | llnode = llist_nodes_reverse(llnode); | 754 | llnode = llist_reverse_order(llnode); |
769 | while (llnode) { | 755 | while (llnode) { |
770 | next = llnode->next; | 756 | next = llnode->next; |
771 | estatus_node = llist_entry(llnode, struct ghes_estatus_node, | 757 | estatus_node = llist_entry(llnode, struct ghes_estatus_node, |
@@ -798,7 +784,7 @@ static void ghes_print_queued_estatus(void) | |||
798 | * Because the time order of estatus in list is reversed, | 784 | * Because the time order of estatus in list is reversed, |
799 | * revert it back to proper order. | 785 | * revert it back to proper order. |
800 | */ | 786 | */ |
801 | llnode = llist_nodes_reverse(llnode); | 787 | llnode = llist_reverse_order(llnode); |
802 | while (llnode) { | 788 | while (llnode) { |
803 | estatus_node = llist_entry(llnode, struct ghes_estatus_node, | 789 | estatus_node = llist_entry(llnode, struct ghes_estatus_node, |
804 | llnode); | 790 | llnode); |
diff --git a/drivers/acpi/blacklist.c b/drivers/acpi/blacklist.c index ed122e17636e..7556e7c4a055 100644 --- a/drivers/acpi/blacklist.c +++ b/drivers/acpi/blacklist.c | |||
@@ -290,6 +290,14 @@ static struct dmi_system_id acpi_osi_dmi_table[] __initdata = { | |||
290 | DMI_MATCH(DMI_PRODUCT_NAME, "Vostro 3446"), | 290 | DMI_MATCH(DMI_PRODUCT_NAME, "Vostro 3446"), |
291 | }, | 291 | }, |
292 | }, | 292 | }, |
293 | { | ||
294 | .callback = dmi_disable_osi_win8, | ||
295 | .ident = "Dell Vostro 3546", | ||
296 | .matches = { | ||
297 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), | ||
298 | DMI_MATCH(DMI_PRODUCT_NAME, "Vostro 3546"), | ||
299 | }, | ||
300 | }, | ||
293 | 301 | ||
294 | /* | 302 | /* |
295 | * BIOS invocation of _OSI(Linux) is almost always a BIOS bug. | 303 | * BIOS invocation of _OSI(Linux) is almost always a BIOS bug. |
diff --git a/drivers/acpi/device_pm.c b/drivers/acpi/device_pm.c index 143ec6ea1468..7db193160766 100644 --- a/drivers/acpi/device_pm.c +++ b/drivers/acpi/device_pm.c | |||
@@ -878,7 +878,7 @@ int acpi_dev_suspend_late(struct device *dev) | |||
878 | return 0; | 878 | return 0; |
879 | 879 | ||
880 | target_state = acpi_target_system_state(); | 880 | target_state = acpi_target_system_state(); |
881 | wakeup = device_may_wakeup(dev); | 881 | wakeup = device_may_wakeup(dev) && acpi_device_can_wakeup(adev); |
882 | error = acpi_device_wakeup(adev, target_state, wakeup); | 882 | error = acpi_device_wakeup(adev, target_state, wakeup); |
883 | if (wakeup && error) | 883 | if (wakeup && error) |
884 | return error; | 884 | return error; |
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c index 807a88a0f394..9d75ead2a1f9 100644 --- a/drivers/acpi/video.c +++ b/drivers/acpi/video.c | |||
@@ -1164,7 +1164,8 @@ static bool acpi_video_device_in_dod(struct acpi_video_device *device) | |||
1164 | return true; | 1164 | return true; |
1165 | 1165 | ||
1166 | for (i = 0; i < video->attached_count; i++) { | 1166 | for (i = 0; i < video->attached_count; i++) { |
1167 | if (video->attached_array[i].bind_info == device) | 1167 | if ((video->attached_array[i].value.int_val & 0xfff) == |
1168 | (device->device_id & 0xfff)) | ||
1168 | return true; | 1169 | return true; |
1169 | } | 1170 | } |
1170 | 1171 | ||