PCI has dma_mask, which distinguishes different device capabilities.
This nice interface handles 64-bit capable devices, 32-bit ones, ISA
limitations (the old 16MB limit) and some other strange devices.
This mask appears in block devices one way or another so that bounce
buffers are used for high addresses.
How about a mask for block devices which indicates the kinds of
alignment and lengths that the driver can handle? For old drivers that
can't be thoroughly tested, we assume the worst. Some devices have
hardware limitations. Newer, tested drivers can relax the limits.
It's probably not difficult to say, "this 64k request can't be handled
so split it into 1k requests". It integrates naturally with the
decision to use bounce buffers -- alignment restrictions cause copying
just as high addresses causes copying.
-- Jamie
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/