|
@@ -19,6 +19,8 @@ static int __devinit parport_pc_find_nonpci_ports (int autoirq, int autodma)
|
|
|
u32 io1, io2;
|
|
|
int propsize;
|
|
|
int count = 0;
|
|
|
+ int virq;
|
|
|
+
|
|
|
for (np = NULL; (np = of_find_compatible_node(np,
|
|
|
"parallel",
|
|
|
"pnpPNP,400")) != NULL;) {
|
|
@@ -26,10 +28,13 @@ static int __devinit parport_pc_find_nonpci_ports (int autoirq, int autodma)
|
|
|
if (!prop || propsize > 6*sizeof(u32))
|
|
|
continue;
|
|
|
io1 = prop[1]; io2 = prop[2];
|
|
|
- prop = of_get_property(np, "interrupts", NULL);
|
|
|
- if (!prop)
|
|
|
+
|
|
|
+ virq = irq_of_parse_and_map(np, 0);
|
|
|
+ if (virq == NO_IRQ)
|
|
|
continue;
|
|
|
- if (parport_pc_probe_port(io1, io2, prop[0], autodma, NULL, 0) != NULL)
|
|
|
+
|
|
|
+ if (parport_pc_probe_port(io1, io2, virq, autodma, NULL, 0)
|
|
|
+ != NULL)
|
|
|
count++;
|
|
|
}
|
|
|
return count;
|