Umm. Then you can't run a generic driver that can do either. That's the
worst choice of all.
As to where in the stack to do the choice - I suspect it's easier if it's
done at the lowest level, but that can cause performance issues (ie
testing that flag over and over again). The mmio code avoids some of the
performance issues exactly by doing the "repeat" versions - so for some
cases you can do the check once at the top, and then just repeat.
Linus
--