On Thu, 26 Apr 2007 11:35:15 +0200 Manuel Lauss <mano@xxxxxxxxxxxxxxxxxxxxxxx> wrote: > Hello, > > the file arch/mips/lib/iomap.c contains this define > #define PIO_MASK 0x0ffffUL > > which prevents pata_pcmcia with the new devres stuff > from attaching to a CF card. (on my Au1200). > The ports-to-be-iomap()'ed are in the 0xc0000000 range > and the ioport_map() function rejects all attempts > of pata_pcmcia to devm_ioport_map() them. > > What is this mask used for and can it be removed? iomap uses PIO_MASK to idenfiy ports within the I/O space range. The mips code looks somewhat incomplete in the base kernel which is probably much of the problem. The basic idea is that ioread/iowrite and friends work generically regardless of MMIO v PIO so you can just do pci_iomap(some bar); iowrite(blah); pci_iounmap(blah) and not worry about anything. Now if your platform doesn't have seperate IO space you could probably implement iowrite/ioremap/ioport_map to be pretty much no-ops depending upon how your PCI bars are encoded. Alan