
On Wed, 2008-04-30 at 10:21 -0500, Scott Wood wrote:
On Wed, Apr 30, 2008 at 05:11:09PM +0200, Joakim Tjernlund wrote:
Yet the in_bex()/out_bex() functions in PowerPC linux uses sync and all SOC drivers are encouraged to use them. What a waste :(
sync is needed in some of the cases, to sync I/O accesses with DMA buffer accesses. Ideally, we could trust the driver writers to put synchronization in where needed, but it seems Linux has too much x86 heritage for that.
Perhaps, is sync needed in this case for non-smp too? or is eieio enough? Anyway, just have a look at ucc_geth and you will see that most such accesses are just about getting the endian right.
There should at least be raw alternatives, though...
There need be a get-the-endian-right-but-no-sync. After all 2.4 managed well without using the in/out be() functions.
Jocke
-Scott