Subject: Re: What is the correct way to indicate an unassigned PCI resource ?

From: Benjamin Herrenschmidt <[email-masked]>
Date: Fri, 05 Jan 2007 08:30:40 +1100

> > Add to pseries/pci.c a quirk for that chipset (don't forget to test for
> > machine_is(pseries) in the quirk as they get called for all platforms in
> > a combo kernel. The quirk shall check if resource 6 has a 0 base and
> > clear the size as Alan suggested (possibly setting the UNSET flag as
> > well).
> 
> I will test this change tomorrow:
> 
> +++ linux-2.6/arch/powerpc/platforms/pseries/pci.c
> @@ -98,6 +98,10 @@ static void fixup_winbond_82c105(struct
>                 if (dev->resource[i].flags & IORESOURCE_IO
>                     && dev->bus->number == 0 && dev->devfn == 0x81)
>                         dev->resource[i].flags &= ~IORESOURCE_IO;
> +               if (dev->resource[i].start == 0) {
> +                       printk("disable IO resource %d on W82c105 IDE controller\n", i);
> +                       dev->resource[i].flags = IORESOURCE_DISABLED;
> +               }
>         }
>  }
>  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_WINBOND, PCI_DEVICE_ID_WINBOND_82C105,
> 
> 
> 
> Or did you mean 'if (dev->resource[5].start == 0)' ?

Nah, but also set resource->end = 0 too and or-in IORESOURCE_UNSET for
flags not (=) (or just set it to 0, I have no problem with completely
clearing the resource, that will keep it out of the way)