Re: Scatter-gather list constraints
From: David Vrabel
Date: Mon Jun 23 2008 - 11:54:32 EST
Alan Stern wrote:
> Is there any way to express the constraint that for a particular
> request queue, all members of a scatter-gather list (except the last)
> must be a multiple of a particular length?
>
> This question arises in connection with wireless USB mass-storage
> devices. The controller driver requires that all DMA segments
> in a transfer, other than the last one, have a multiple of 1024 bytes.
> But we're sometimes getting s-g lists where an element contains an odd
> number of 512-byte sectors, and of course it doesn't work.
Note that this 1024 byte multiple is for one particular WUSB mass
storage device. The WUSB standard permits max packet sizes of up 3584
(in multiples of 512), but I suspect WUSB mass storage devices will only
use 512, 1024, or 2048.
For a solution, we may be able to do something if the HWA host
controller is passed a single URB with an s-g list (rather than one URB
per s-g list entry) and was careful about how it segmented the URB into
transfers to the rpipe.
Inaky, you know more about WAs that me. Could you comment on this?
A similar solution for WHCI host controllers would require a revision of
the WHCI spec to support full scatter-gather DMA.
David
--
David Vrabel, Senior Software Engineer, Drivers
CSR, Churchill House, Cambridge Business Park, Tel: +44 (0)1223 692562
Cowley Road, Cambridge, CB4 0WZ http://www.csr.com/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/