Fix reading of the irq routing table.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37385 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -106,19 +106,16 @@ read_device_irq_routing_table(pci_module_info *pci, acpi_module_info* acpi,
|
|||||||
if (status != B_OK)
|
if (status != B_OK)
|
||||||
return status;
|
return status;
|
||||||
|
|
||||||
acpi_object_type* object = (acpi_object_type*)buffer.pointer;
|
|
||||||
if (object->object_type != ACPI_TYPE_PACKAGE) {
|
|
||||||
free(buffer.pointer);
|
|
||||||
return B_ERROR;
|
|
||||||
}
|
|
||||||
|
|
||||||
irq_routing_entry irqEntry;
|
irq_routing_entry irqEntry;
|
||||||
acpi_pci_routing_table* acpiTable
|
acpi_pci_routing_table* acpiTable
|
||||||
= (acpi_pci_routing_table*)buffer.pointer;
|
= (acpi_pci_routing_table*)buffer.pointer;
|
||||||
while (acpiTable->length) {
|
while (acpiTable->length) {
|
||||||
irqEntry.device_address = acpiTable->address;
|
irqEntry.device_address = acpiTable->address;
|
||||||
irqEntry.pin = acpiTable->pin;
|
irqEntry.pin = acpiTable->pin;
|
||||||
irqEntry.source = acpiTable->source;
|
acpi_handle source;
|
||||||
|
if (acpi->get_handle(device, acpiTable->source, &source) != B_OK)
|
||||||
|
continue;
|
||||||
|
irqEntry.source = source;
|
||||||
irqEntry.source_index = acpiTable->sourceIndex;
|
irqEntry.source_index = acpiTable->sourceIndex;
|
||||||
|
|
||||||
// connect to pci device
|
// connect to pci device
|
||||||
|
|||||||
Reference in New Issue
Block a user