Re: [PATCH] generic device DMA (dma_pool update)

Russell King
2003-01-03T00:12:13Z

On Thu, Jan 02, 2003 at 02:07:46PM -0800, Adam J. Richter wrote:
> The pci_pool_alloc in sa1111-buf.c is more interesting.
> alloc_safe_buffer is used to implement an unusual version of
> pci_map_single. It is unclear to me whether this approach is optimal.
> I'll look into this more.

Welcome to the world of seriously broken hardware that a fair number
of people put on their boards. Unfortunately, the hardware bug got
marged as "never fix" by Intel.

Basically, the chip is only able to DMA from certain memory regions
and its RAM size dependent. For 32MB of memory, it works out at
around 1MB regions - odd regions are not able to perform DMA, even
regions can.

Linux only supports one DMA region per memory node though, so in
this configuration, we only have 1MB of memory able to be used for
OHCI.

To work around this, we have "unusual" versions of the mapping
functions. Although they may not be optimal, they are, afaik
completely functional.

--
Russell King (rmk@arm.linux.org.uk) The developer of ARM Linux