Re: [linux-usb-devel] Re: highmem and usb [was "sr: unaligned transfer" in 2.5.2-pre1]

David Brownell
2002-01-02T18:39:30Z

> > requirement for drivers is that the transfer buffers can be passed to
> > pci_map_single() calls by the Host Controller Drivers (HCDs). The
> > device drivers, and URBs, don't expose such mappings, they only
> > require that they can be created/destroyed.
>
> .. which is the requirement that you want to change to use pci_map_page
> or pci_map_sg

OK, I think I'm clear on this much then: in 2.5, to support block drivers
over USB (usb-storage only, for now) there needs to be an addition to
the buffer addressing model in usbcore, as exposed by URBs.

- Current "transfer_buffer" + "transfer_buffer_length" mode needs to
stay, since most drivers aren't block drivers.

- Add some kind of "page + offset" addressing model.

Discussion of details can be taken off LKML, it'd seem. Though I'm
curious when the scatterlist->address field will vanish, making these
changes a requirement. Is that a 2.5.2 thing?

Also, I noticed that include/asm-sparc/pci.h doesn't include the
standard pci_map_page() call ... what's up with that? That surely
causes portability problems.

- Dave