Skip to content

Commit

Permalink
[PATCH] HPET: handle multiple ACPI EXTENDED_IRQ resources
Browse files Browse the repository at this point in the history
When the _CRS for a single HPET contains multiple EXTENDED_IRQ resources,
we overwrote hdp->hd_nirqs every time we found one.

So the driver worked when all the IRQs were described in a single
EXTENDED_IRQ resource, but failed when multiple resources were used.
(Strictly speaking, I think the latter is actually more correct, but both
styles have been used.)

Someday we should remove all the ACPI stuff from hpet.c and use PNP driver
registration instead.  But currently PNP_MAX_IRQ is 2, and HPETs often have
more IRQs.  Hint, hint, Adam :-)

Signed-off-by: Bjorn Helgaas <[email protected]>
Acked-by: Bob Picco <[email protected]>
Cc: Venkatesh Pallipadi <[email protected]>
Cc: Len Brown <[email protected]>
Cc: Adam Belay <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
Bjorn Helgaas authored and Linus Torvalds committed Feb 15, 2006
1 parent da96582 commit be5efff
Showing 1 changed file with 9 additions and 13 deletions.
22 changes: 9 additions & 13 deletions drivers/char/hpet.c
Original file line number Diff line number Diff line change
Expand Up @@ -956,22 +956,18 @@ static acpi_status hpet_resources(struct acpi_resource *res, void *data)
}
} else if (res->type == ACPI_RESOURCE_TYPE_EXTENDED_IRQ) {
struct acpi_resource_extended_irq *irqp;
int i;
int i, irq;

irqp = &res->data.extended_irq;

if (irqp->interrupt_count > 0) {
hdp->hd_nirqs = irqp->interrupt_count;

for (i = 0; i < hdp->hd_nirqs; i++) {
int rc =
acpi_register_gsi(irqp->interrupts[i],
irqp->triggering,
irqp->polarity);
if (rc < 0)
return AE_ERROR;
hdp->hd_irq[i] = rc;
}
for (i = 0; i < irqp->interrupt_count; i++) {
irq = acpi_register_gsi(irqp->interrupts[i],
irqp->triggering, irqp->polarity);
if (irq < 0)
return AE_ERROR;

hdp->hd_irq[hdp->hd_nirqs] = irq;
hdp->hd_nirqs++;
}
}

Expand Down

0 comments on commit be5efff

Please sign in to comment.