> libata intentionally provides higher level hooks than just I/O accessors. > > A low level I/O hook approach makes it difficult to take into account > platform-specific details like mmiowb(), especially on embedded platforms. > > The high level hook approach also enables greater efficiency. For > example, an embedded platform could do > > __raw_writeb(datum, mmio_address + ATA_REG_FOO); > __raw_writeb(datum, mmio_address + ATA_REG_BAR); > eieio(); > > to optimize an entire taskfile-read or taskfile-write operation. I've been looking at that for them and for Efika but it's acutally quite a bit of a mess. I'd be happy if you could have a look as well, but it's not simple to find the "right" level of abstraction to be able to use the reset/probe handling with special reset accessors. And hooking at the toplevel is such a wastage (LOTS of code duplication) that it's really no fun (it's what Toshiba initial patch does, though you haven't commented on it). So some hints as to where you think the right hooks/abstractions would be would be much welcome. Ben. - 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