Re: Proposal for new generic device API: dma_get_required_mask()

Russell King
2004-06-20T19:47:42Z

> Wouldn't it be better to not touch the masks (which are device
> capabilities rather than platform limitations) and let alloc/map
> functions always use the correct half of RAM?

They are device limitations - the SA1111 device (which is a bus master
device in its own right) itself is the cause of the problem, so the
devices integrated inside it need to know.

Eg:

+------------------------+ +---------------------------+
| | | |
| SSP CPU--bus i/f-|-----+-----|-bus i/f OHCI SSP SAC |
| | | | | | | | | | |
| +----------------+ | | | +-------+-----+----+ |
| SA11x0 | +-------+ | SA1111 |
+------------------------+ | SDRAM | +---------------------------+
+-------+

The SDRAM bus is shared between the SA11x0 and SA1111 devices, and
there is an arbitration protocol to hand off the SDRAM bus between
the two devices.

The SSP and CPU itself inside the SA11x0 can access all SDRAM memory,
but the OHCI, SSP and SAC devices within the SA1111 are affected by
the problem.

So it's quite correct for this to be a device thing not a platform
thing. It _is_ the SA1111 device itself which has the problem.

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 PCMCIA - http://pcmcia.arm.linux.org.uk/
2.6 Serial core