Re: Legacy PCI IO for PCI graphics on SGI O2...Anybody?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 18 Jun 2007 12:32:37 -0400 (EDT), sknauert@xxxxxxxxxxxx wrote:
> Justing bumping this topic, I'm really stuck and could use some (any) help
> here. I understand that people are busy and most effort is focused on
> 2.6.23, but I haven't received any response regarding my prelimenary patch
> and its been over a week.

I suppose HAVE_PCI_LEGACY provides us a standard way to access 8/16/32
bit registers in PCI I/O space, right?

If so, it would be great; When I tried to read a 16-bit register in
PCI I/O space from userland, I had to find a physical address of the
PCI I/O region and mmap it via /dev/mem, since /dev/port only supports
8bit access.

Also I'd suggest to support multiple PCI busses (please refer iomap-pci.c):

Something like this:

int pci_legacy_read(struct pci_bus *bus, u16 port, u32 *val, u8 size)
{
	struct pci_controller *ctrl = bus->sysdata;
	unsigned long base = ctrl->io_map_base;
	void __iomem *addr = (void __iomem *)(ctrl->io_map_base + port);
	int ret = size;

	switch (size) {
	case 1:
		*val = ioread8(addr);
		break;
	case 2:
		*val = ioread16(addr);
		break;
	case 4:
		*val = ioread32(addr);
		break;
	default:
		ret = -EINVAL;
		break;
	}

	return ret;
}

Also I think no need to add "mips_" prefix and make aliases. (unless
we really need to override them for each platform)

> +#define pci_get_legacy_mem mips_pci_get_legacy_mem
> +#define pci_legacy_read mips_pci_legacy_read
> +#define pci_legacy_write mips_pci_legacy_write

---
Atsushi Nemoto


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux