diff options
author | Len Brown <len.brown@intel.com> | 2005-08-05 00:31:42 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2005-08-05 00:31:42 -0400 |
commit | 1d492eb41371d9a5145651e8eb64bea1042a4057 (patch) | |
tree | 2a66a8fd347cf8dd8a665c4575b30d873035a5a4 /drivers | |
parent | 5d2a22079c825669d91a3a200332f1053b4b61b0 (diff) | |
parent | cbfc1bae55bbd053308ef0fa6b6448cd1ddf3e67 (diff) |
[ACPI] Merge acpi-2.6.12 branch into 2.6.13-rc3
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/acpi/Kconfig | 8 | ||||
-rw-r--r-- | drivers/acpi/pci_irq.c | 9 | ||||
-rw-r--r-- | drivers/acpi/pci_link.c | 3 | ||||
-rw-r--r-- | drivers/acpi/video.c | 7 | ||||
-rw-r--r-- | drivers/char/hpet.c | 8 | ||||
-rw-r--r-- | drivers/pnp/pnpacpi/rsparser.c | 2 | ||||
-rw-r--r-- | drivers/serial/8250_acpi.c | 20 |
7 files changed, 42 insertions, 15 deletions
diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig index ba13896cae40..66c60982ba46 100644 --- a/drivers/acpi/Kconfig +++ b/drivers/acpi/Kconfig | |||
@@ -154,12 +154,10 @@ config ACPI_PROCESSOR | |||
154 | support it. | 154 | support it. |
155 | 155 | ||
156 | config ACPI_HOTPLUG_CPU | 156 | config ACPI_HOTPLUG_CPU |
157 | bool "Processor Hotplug (EXPERIMENTAL)" | 157 | bool |
158 | depends on ACPI_PROCESSOR && HOTPLUG_CPU && EXPERIMENTAL | 158 | depends on ACPI_PROCESSOR && HOTPLUG_CPU |
159 | select ACPI_CONTAINER | 159 | select ACPI_CONTAINER |
160 | default n | 160 | default y |
161 | ---help--- | ||
162 | Select this option if your platform support physical CPU hotplug. | ||
163 | 161 | ||
164 | config ACPI_THERMAL | 162 | config ACPI_THERMAL |
165 | tristate "Thermal Zone" | 163 | tristate "Thermal Zone" |
diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c index bb973d2109a1..c885300579ec 100644 --- a/drivers/acpi/pci_irq.c +++ b/drivers/acpi/pci_irq.c | |||
@@ -424,6 +424,7 @@ acpi_pci_irq_enable ( | |||
424 | int edge_level = ACPI_LEVEL_SENSITIVE; | 424 | int edge_level = ACPI_LEVEL_SENSITIVE; |
425 | int active_high_low = ACPI_ACTIVE_LOW; | 425 | int active_high_low = ACPI_ACTIVE_LOW; |
426 | char *link = NULL; | 426 | char *link = NULL; |
427 | int rc; | ||
427 | 428 | ||
428 | ACPI_FUNCTION_TRACE("acpi_pci_irq_enable"); | 429 | ACPI_FUNCTION_TRACE("acpi_pci_irq_enable"); |
429 | 430 | ||
@@ -476,7 +477,13 @@ acpi_pci_irq_enable ( | |||
476 | } | 477 | } |
477 | } | 478 | } |
478 | 479 | ||
479 | dev->irq = acpi_register_gsi(irq, edge_level, active_high_low); | 480 | rc = acpi_register_gsi(irq, edge_level, active_high_low); |
481 | if (rc < 0) { | ||
482 | printk(KERN_WARNING PREFIX "PCI Interrupt %s[%c]: failed " | ||
483 | "to register GSI\n", pci_name(dev), ('A' + pin)); | ||
484 | return_VALUE(rc); | ||
485 | } | ||
486 | dev->irq = rc; | ||
480 | 487 | ||
481 | printk(KERN_INFO PREFIX "PCI Interrupt %s[%c] -> ", | 488 | printk(KERN_INFO PREFIX "PCI Interrupt %s[%c] -> ", |
482 | pci_name(dev), 'A' + pin); | 489 | pci_name(dev), 'A' + pin); |
diff --git a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c index 834c2ceff1aa..26aa3829f1de 100644 --- a/drivers/acpi/pci_link.c +++ b/drivers/acpi/pci_link.c | |||
@@ -804,8 +804,7 @@ acpi_pci_link_resume( | |||
804 | */ | 804 | */ |
805 | int acpi_in_resume; | 805 | int acpi_in_resume; |
806 | static int | 806 | static int |
807 | irqrouter_resume( | 807 | irqrouter_resume(struct sys_device *dev) |
808 | struct sys_device *dev) | ||
809 | { | 808 | { |
810 | struct list_head *node = NULL; | 809 | struct list_head *node = NULL; |
811 | struct acpi_pci_link *link = NULL; | 810 | struct acpi_pci_link *link = NULL; |
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c index 2cf264fd52e0..7b10a7b070c9 100644 --- a/drivers/acpi/video.c +++ b/drivers/acpi/video.c | |||
@@ -1665,6 +1665,7 @@ static int | |||
1665 | acpi_video_bus_put_one_device( | 1665 | acpi_video_bus_put_one_device( |
1666 | struct acpi_video_device *device) | 1666 | struct acpi_video_device *device) |
1667 | { | 1667 | { |
1668 | acpi_status status; | ||
1668 | struct acpi_video_bus *video; | 1669 | struct acpi_video_bus *video; |
1669 | 1670 | ||
1670 | ACPI_FUNCTION_TRACE("acpi_video_bus_put_one_device"); | 1671 | ACPI_FUNCTION_TRACE("acpi_video_bus_put_one_device"); |
@@ -1679,6 +1680,12 @@ acpi_video_bus_put_one_device( | |||
1679 | up(&video->sem); | 1680 | up(&video->sem); |
1680 | acpi_video_device_remove_fs(device->dev); | 1681 | acpi_video_device_remove_fs(device->dev); |
1681 | 1682 | ||
1683 | status = acpi_remove_notify_handler(device->handle, | ||
1684 | ACPI_DEVICE_NOTIFY, acpi_video_device_notify); | ||
1685 | if (ACPI_FAILURE(status)) | ||
1686 | ACPI_DEBUG_PRINT((ACPI_DB_ERROR, | ||
1687 | "Error removing notify handler\n")); | ||
1688 | |||
1682 | return_VALUE(0); | 1689 | return_VALUE(0); |
1683 | } | 1690 | } |
1684 | 1691 | ||
diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c index 762fa430fb5b..97feb7f7024d 100644 --- a/drivers/char/hpet.c +++ b/drivers/char/hpet.c | |||
@@ -906,11 +906,15 @@ static acpi_status hpet_resources(struct acpi_resource *res, void *data) | |||
906 | if (irqp->number_of_interrupts > 0) { | 906 | if (irqp->number_of_interrupts > 0) { |
907 | hdp->hd_nirqs = irqp->number_of_interrupts; | 907 | hdp->hd_nirqs = irqp->number_of_interrupts; |
908 | 908 | ||
909 | for (i = 0; i < hdp->hd_nirqs; i++) | 909 | for (i = 0; i < hdp->hd_nirqs; i++) { |
910 | hdp->hd_irq[i] = | 910 | int rc = |
911 | acpi_register_gsi(irqp->interrupts[i], | 911 | acpi_register_gsi(irqp->interrupts[i], |
912 | irqp->edge_level, | 912 | irqp->edge_level, |
913 | irqp->active_high_low); | 913 | irqp->active_high_low); |
914 | if (rc < 0) | ||
915 | return AE_ERROR; | ||
916 | hdp->hd_irq[i] = rc; | ||
917 | } | ||
914 | } | 918 | } |
915 | } | 919 | } |
916 | 920 | ||
diff --git a/drivers/pnp/pnpacpi/rsparser.c b/drivers/pnp/pnpacpi/rsparser.c index 75575f6c349c..1e296cbef004 100644 --- a/drivers/pnp/pnpacpi/rsparser.c +++ b/drivers/pnp/pnpacpi/rsparser.c | |||
@@ -81,7 +81,7 @@ pnpacpi_parse_allocated_irqresource(struct pnp_resource_table * res, int irq) | |||
81 | i++; | 81 | i++; |
82 | if (i < PNP_MAX_IRQ) { | 82 | if (i < PNP_MAX_IRQ) { |
83 | res->irq_resource[i].flags = IORESOURCE_IRQ; //Also clears _UNSET flag | 83 | res->irq_resource[i].flags = IORESOURCE_IRQ; //Also clears _UNSET flag |
84 | if (irq == -1) { | 84 | if (irq < 0) { |
85 | res->irq_resource[i].flags |= IORESOURCE_DISABLED; | 85 | res->irq_resource[i].flags |= IORESOURCE_DISABLED; |
86 | return; | 86 | return; |
87 | } | 87 | } |
diff --git a/drivers/serial/8250_acpi.c b/drivers/serial/8250_acpi.c index 6b9ead288517..a802bdce6e5d 100644 --- a/drivers/serial/8250_acpi.c +++ b/drivers/serial/8250_acpi.c | |||
@@ -47,18 +47,30 @@ static acpi_status acpi_serial_port(struct uart_port *port, | |||
47 | static acpi_status acpi_serial_ext_irq(struct uart_port *port, | 47 | static acpi_status acpi_serial_ext_irq(struct uart_port *port, |
48 | struct acpi_resource_ext_irq *ext_irq) | 48 | struct acpi_resource_ext_irq *ext_irq) |
49 | { | 49 | { |
50 | if (ext_irq->number_of_interrupts > 0) | 50 | int rc; |
51 | port->irq = acpi_register_gsi(ext_irq->interrupts[0], | 51 | |
52 | if (ext_irq->number_of_interrupts > 0) { | ||
53 | rc = acpi_register_gsi(ext_irq->interrupts[0], | ||
52 | ext_irq->edge_level, ext_irq->active_high_low); | 54 | ext_irq->edge_level, ext_irq->active_high_low); |
55 | if (rc < 0) | ||
56 | return AE_ERROR; | ||
57 | port->irq = rc; | ||
58 | } | ||
53 | return AE_OK; | 59 | return AE_OK; |
54 | } | 60 | } |
55 | 61 | ||
56 | static acpi_status acpi_serial_irq(struct uart_port *port, | 62 | static acpi_status acpi_serial_irq(struct uart_port *port, |
57 | struct acpi_resource_irq *irq) | 63 | struct acpi_resource_irq *irq) |
58 | { | 64 | { |
59 | if (irq->number_of_interrupts > 0) | 65 | int rc; |
60 | port->irq = acpi_register_gsi(irq->interrupts[0], | 66 | |
67 | if (irq->number_of_interrupts > 0) { | ||
68 | rc = acpi_register_gsi(irq->interrupts[0], | ||
61 | irq->edge_level, irq->active_high_low); | 69 | irq->edge_level, irq->active_high_low); |
70 | if (rc < 0) | ||
71 | return AE_ERROR; | ||
72 | port->irq = rc; | ||
73 | } | ||
62 | return AE_OK; | 74 | return AE_OK; |
63 | } | 75 | } |
64 | 76 | ||