On Sat, Jan 22, 2005 at 02:51:47AM +0000, Maciej W. Rozycki wrote:
> > 1. How about using 'const void *' for outs*()/reads*() ? This will
> > remove some compiler warnings too. Also, it seems 'volatile' for
> > memory buffer are unneeded.
> >
> > 2. In *in*()/*out*(), it would be better to call __swizzle_addr*()
> > AFTER adding mips_io_port_base. This unifies the meaning of the
> > argument of __swizzle_addr*() (always virtual address). Then,
> > mach-specific __swizzle_addr*() can to every evil thing based on
> > the argument.
> >
> > 3. How about Moving generic ioswab*() to mangle-port.h ? Also how
> > about passing virtual address to *ioswab*() ? Then we can provide
> > mach-specific ioswab*() and can do every evil thing based on its
> > argument. It is usefull on machines which have regions with
> > different endian conversion scheme.
>
> Thanks for your insight -- your comments are not lost and I am working on
> taking them into account. But meanwhile a confusion around the semantics
> of these operations arose (there is no documentation on them and some
> drivers expect some of these functions to swap, while others expect them
> not to) and changes were made to the tree that invalidated some of the
> fixes. That needs to be addressed first and I expect another update to
> the file. Here's a patch I'm going to start with. Functions it adds have
> been named dma_* to indicate they are meant to preserve memory byte
> ordering.
Looks good but I don't really like the dma_* name prefix as these functions
really have nothing to do with DMA - in fact they're the opposite.
Ralf
|