> ioremap always returns a null pointer. It seems that it needs to be used > for memory mapped IO only... The documentation with the kernel seems to > imply that it needs to be always used (for portability). ioremap is used for mmio along with readb/writeb etc outb/outw/.. don't need ioremap > IO using [in|out][b|w|l] seems to work, ie doesn't crash but does not > return correct results either. The right order is something like pci_enable_device(foo); unsigned long ioaddr = pci_resource_start(foo, n); outl(0, ioaddr+N)