aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorLen Brown <len.brown@intel.com>2005-08-05 00:31:42 -0400
committerLen Brown <len.brown@intel.com>2005-08-05 00:31:42 -0400
commit1d492eb41371d9a5145651e8eb64bea1042a4057 (patch)
tree2a66a8fd347cf8dd8a665c4575b30d873035a5a4 /drivers
parent5d2a22079c825669d91a3a200332f1053b4b61b0 (diff)
parentcbfc1bae55bbd053308ef0fa6b6448cd1ddf3e67 (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/Kconfig8
-rw-r--r--drivers/acpi/pci_irq.c9
-rw-r--r--drivers/acpi/pci_link.c3
-rw-r--r--drivers/acpi/video.c7
-rw-r--r--drivers/char/hpet.c8
-rw-r--r--drivers/pnp/pnpacpi/rsparser.c2
-rw-r--r--drivers/serial/8250_acpi.c20
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
156config ACPI_HOTPLUG_CPU 156config 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
164config ACPI_THERMAL 162config 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 */
805int acpi_in_resume; 805int acpi_in_resume;
806static int 806static int
807irqrouter_resume( 807irqrouter_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
1665acpi_video_bus_put_one_device( 1665acpi_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,
47static acpi_status acpi_serial_ext_irq(struct uart_port *port, 47static 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
56static acpi_status acpi_serial_irq(struct uart_port *port, 62static 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