|
From: Paul M. <le...@li...> - 2003-07-01 14:34:50
|
On Tue, Jul 01, 2003 at 03:01:55PM +0100, Richard Curnow wrote:
> diff -Nru a/include/asm-sh64/pci.h b/include/asm-sh64/pci.h
> --- a/include/asm-sh64/pci.h Tue Jul 1 15:01:55 2003
> +++ b/include/asm-sh64/pci.h Tue Jul 1 15:01:55 2003
> @@ -167,6 +167,7 @@
> } else {
> sg[i].dma_address =3D page_to_bus(sg[i].page) +
> sg[i].offset;
> + dma_cache_wback_inv((unsigned long) bus_to_virt(sg[i].dma_address=
), sg[i].length);
> }
> }
> =20
If you do this, you'll also want to do a similar flush in pci_unmap_sg(). I
don't know if this is specifically needed, since on anything else requiring
coherency, it seems to be omitted.
Though in its present implementation, sg[i].address will =3D=3D 0, so it wi=
ll
just continue through the loop instead of flushing the page.
Again, I don't think this will be needed, but you can try it out just the
same.
|