On 31-03-08 22:51, Bjorn Helgaas wrote:
Ah, right. Thanks for tracking that down. I forgot to factor out isapnp_to_pnpid() and pnpid32_to_pnpid() (and acpi_ex_eisa_id_to_string() for that matter, though that's buried in the ACPI CA)-- they're really doing the same thing and we should only need one copy (plus the CA one).
I'll wait for another round then, before reviewing this further.
Hmmm... that sounds harder. I'll read over it again and see if I can figure anything out.
Actually, other than looking right past it a few dozen times, it's fairly evident. If I apply the attached, my soundcard's functional again.
Rene.
diff --git a/drivers/pnp/resource.c b/drivers/pnp/resource.c index 454290b..9ff76dc 100644 --- a/drivers/pnp/resource.c +++ b/drivers/pnp/resource.c @@ -261,7 +261,7 @@ int pnp_check_port(struct pnp_dev *dev, int idx) if (tdev == dev) continue; for (i = 0; - (tres = pnp_get_resource(dev, IORESOURCE_IO, i)); + (tres = pnp_get_resource(tdev, IORESOURCE_IO, i)); i++) { if (tres->flags & IORESOURCE_IO) { if (cannot_compare(tres->flags)) @@ -325,7 +325,7 @@ int pnp_check_mem(struct pnp_dev *dev, int idx) if (tdev == dev) continue; for (i = 0; - (tres = pnp_get_resource(dev, IORESOURCE_MEM, i)); + (tres = pnp_get_resource(tdev, IORESOURCE_MEM, i)); i++) { if (tres->flags & IORESOURCE_MEM) { if (cannot_compare(tres->flags)) @@ -408,7 +408,7 @@ int pnp_check_irq(struct pnp_dev *dev, int idx) if (tdev == dev) continue; for (i = 0; - (tres = pnp_get_resource(dev, IORESOURCE_IRQ, i)); + (tres = pnp_get_resource(tdev, IORESOURCE_IRQ, i)); i++) { if (tres->flags & IORESOURCE_IRQ) { if (cannot_compare(tres->flags)) @@ -471,7 +471,7 @@ int pnp_check_dma(struct pnp_dev *dev, int idx) if (tdev == dev) continue; for (i = 0; - (tres = pnp_get_resource(dev, IORESOURCE_DMA, i)); + (tres = pnp_get_resource(tdev, IORESOURCE_DMA, i)); i++) { if (tres->flags & IORESOURCE_DMA) { if (cannot_compare(tres->flags))