Re: [patch 00/37] PNP resource_table cleanups

Rene Herman
2008-03-31T21:36:31Z

[-- Attachment #1: Type: text/plain, Size: 649 bytes --]

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.

[-- Attachment #2: pnp_check_resource.diff --]
[-- Type: text/plain, Size: 1463 bytes --]

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