[RFC/PATCH 2/2] powerpc: Add legacy PCI access via sysfs
Jesse Barnes
jbarnes at virtuousgeek.org
Sat Oct 4 01:59:12 EST 2008
On Friday, October 3, 2008 2:49 am Benjamin Herrenschmidt wrote:
> + /* WARNING: The generic code is idiotic. It gets passed a pointer
> + * to what can be a 1, 2 or 4 byte quantity and always reads that
> + * as a u32, which means that we have to correct the location of
> + * the data read within those 32 bits for size 1 and 2
> + */
> + switch(size) {
> + case 1:
> + out_8(addr, val >> 24);
> + return 1;
> + case 2:
> + if (port & 1)
> + return -EINVAL;
> + out_le16(addr, val >> 16);
> + return 2;
> + case 4:
> + if (port & 3)
> + return -EINVAL;
> + out_le32(addr, val);
> + return 4;
> + }
> + return -EINVAL;
Feel free to change the generic code if it makes things easier for you, the
only limitation is that we have to live within the generic sysfs read/write
functions. Obviously I didn't worry about it when doing this code on ia64...
Jesse
More information about the Linuxppc-dev
mailing list