Hello Gerd,
The saa7134 has a iommu which wants a page list in physical memory. That forms a virtual, 4MB sized I/O space. The saa7146 does the same as far I know.
For DMA transfer you have some control registers (start offset, line padding, ...) for each field. The start offset is needed to fill a buffer with an interlaced image and to place the overlay at a random location on the screen, thus I expect the saa7146 has this too.
This is true, then the both are really quite similar. Btw: is the full specification for the saa7134 freely available?
The start offset can also be used to let the capture buffer start at non-page-aligned addresses.
I just tried that experimentally in my driver (simply increase the start offset) and it works. Hmm, I never really tried that.
Thanks for the kick in the ass... ;-)
If page-alignment is really needed I'd prefeare this way.
To make it clear: it's not needed and we don't need to care about it.
If you allocate memory by mapping anonymous memory it will be page aligned. shared memory is also page-aligned. And applications can figure the page size with the "getpagesize()" call, so they have a chance to do the page-alignment thing themself even for memory allocated via malloc().
True, but most programmers won't think about this if *their* hardware doesn't have the page boundary restriction -- even if it's noted in the docs. In that case, other users with different hardware won't be very happy.
But we can forget about this topic. Sorry for the confusion.
Gerd
CU Michael.