ADMA is not SFF-8038i compilant, it's the IDE DMA spec of its own. And I'm seeing references to libata-sff.c... confusing.
In libata, SFF is used for controllers which have TF interface
and BMDMA is used for the BMDMA part of SFF-8038i.
I think this is the source of confusion here.
Looks like there's no clean separation within libata-sff.c itself between SFF-8038i (BMDMA spec) and IDE registers itself -- that confused me: at first I thought there's a big issue with a patch. :-/
Jeff, Tejun, what "sff" in the file name actually means? Isn't it strange that the drivers lacking DMA support or not really compliant with SFF-8038i have to link with this file?
Maybe it should be libata-tf and libata-bmdma, but sff (sans bmdma)
and bmdma is acceptable, hopefully, right?
Thanks.