On Monday 15 October 2007, Kalra Ashish-B00888 wrote: > Thanks for your comments and feedback. > > Actually, for PowerPC platforms iowrite32/ioread32 internally call > writel/readl, which are again mapped to out_le32/in_le32, This is correct on 6xx and e500 for now, but it's a little more complicated than that in general: iowriteXX/ioreadXX are either the simple readX/writeX wrappers from arch/powerpc/kernel/iomap.c, or the more complex functions from lib/iomap.c, depending on whether any of the active platforms has set CONFIG_PPC_INDIRECT_IO. writeX/readX can either map directly to out_leXX/in_leXX, or do something more complicated, again depending on the platform. In general, writeX/readX may need to consider PCI specific error handling or synchronization requirements, while out_leXX/in_leXX are low-level accessors that should only be used by device drivers when they are used on directly connected (non-PCI) devices. Since iowriteXX/ioreadXX is supposed to be the most generic variant covering both PCI MMIO (writeX/readX) and PCI PIO (outX/inX) transfers, it would make sense to extend them to also do SOC MMIO (out_leXX/in_leXX/out_beXX/in_beXX) and DCR (dcr_write/dcr_read) accesses in the future. Arnd <>< - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html