On Tue, 24 Aug 2010, Maulik Mankad wrote: > The USB stack maps the buffer for DMA if the controller supports DMA. > MUSB controller can perform DMA as well as PIO transfers. > The buffer needs to be unmapped before CPU can perform > PIO data transfers. > > Export unmap_urb_for_dma() so that drivers can perform > the DMA unmapping in a sane way. > > Signed-off-by: Maulik Mankad <x0082077@xxxxxx> > Cc: Felipe Balbi <felipe.balbi@xxxxxxxxx> > Cc: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> > --- > Based on 2.6.36-rc1 > V3: Fix Alan's comments. > drivers/usb/core/hcd.c | 3 ++- > drivers/usb/musb/musb_host.c | 5 +++++ > include/linux/usb/hcd.h | 1 + > 3 files changed, 8 insertions(+), 1 deletion(-) > Index: mainline/include/linux/usb/hcd.h > =================================================================== > --- mainline.orig/include/linux/usb/hcd.h > +++ mainline/include/linux/usb/hcd.h > @@ -349,6 +349,7 @@ extern void usb_put_hcd(struct usb_hcd * > extern int usb_add_hcd(struct usb_hcd *hcd, > unsigned int irqnum, unsigned long irqflags); > extern void usb_remove_hcd(struct usb_hcd *hcd); > +extern void unmap_urb_for_dma(struct usb_hcd *, struct urb *); Hmm. Since this deals with an URB rather than with the host controller itself, I would have put it just after usb_hcd_giveback_urb instead of here. Apart from this one drawback, it looks okay to me. By the way, which URBs do you need to unmap in this way? Doesn't the musb driver already tell the core not to map control URBs for DMA? Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html