Re: [patch 00/37] PNP resource_table cleanups

From: Rene Herman
Date: Mon Mar 31 2008 - 17:36:50 EST


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))