Subject: Re: [PATCH 2.6] PCI I/O region starting from zero is valid

From: Ralf Baechle <[email-masked]>
Date: Sat, 13 Dec 2003 04:24:59 +0100

On Sat, Dec 13, 2003 at 01:54:27AM +0100, Vivien Chappelier wrote:

> 	PCI devices can have I/O mapped at a region starting from
> 0x0000. The O2 actually has one of its onboard SCSI controller here...
> This code looks like a incorrect copy/paste from the x86 code where this
> I/O range is used by legacy ISA.
> 
> --- arch/mips/pci/pci.c	2003-11-12 16:51:09.000000000 +0100
> +++ arch/mips/pci/pci.c	2003-12-13 00:57:56.000000000 +0100
> @@ -173,10 +173,6 @@
>  			continue;
>  
>  		r = &dev->resource[idx];
> -		if (!r->start && r->end) {
> -			printk(KERN_ERR "PCI: Device %s not available because of resource collisions\n", pci_name(dev));
> -			return -EINVAL;
> -		}
>  		if (r->flags & IORESOURCE_IO)
>  			cmd |= PCI_COMMAND_IO;
>  		if (r->flags & IORESOURCE_MEM)
> 

I tend to agree with Vivien.  There's another unsolved problem with
pcibios_enable_device - how many resources should it enable?  Jun once
changed it to PCI_NUM_RESOURCES but that broke other systems though it
seems the logic thing to do ...

The code he wants to remove is just a safety check for PCs.  It doesn't
much sense on legacy-free systems and these days less and less MIPS
systems have legacy devices.

I forgot the details but maybe removing above lines will even permit
putting back the change Jun needed, will need to test.

  Ralf

---

From: Geert Uytterhoeven <[email-masked]>
Date: Sat, 13 Dec 2003 13:15:28 +0100 (MET)

> seems the logic thing to do ...

IMHO it should enable all resources, and you should add quirks for devices that
can't live with it.

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email-masked]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds