aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/usb
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/usb')
-rw-r--r--include/linux/usb/hcd.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/include/linux/usb/hcd.h b/include/linux/usb/hcd.h
index 395704bdf5cc..92b96fe39307 100644
--- a/include/linux/usb/hcd.h
+++ b/include/linux/usb/hcd.h
@@ -233,6 +233,19 @@ struct hc_driver {
233 int (*urb_dequeue)(struct usb_hcd *hcd, 233 int (*urb_dequeue)(struct usb_hcd *hcd,
234 struct urb *urb, int status); 234 struct urb *urb, int status);
235 235
236 /*
237 * (optional) these hooks allow an HCD to override the default DMA
238 * mapping and unmapping routines. In general, they shouldn't be
239 * necessary unless the host controller has special DMA requirements,
240 * such as alignment contraints. If these are not specified, the
241 * general usb_hcd_(un)?map_urb_for_dma functions will be used instead
242 * (and it may be a good idea to call these functions in your HCD
243 * implementation)
244 */
245 int (*map_urb_for_dma)(struct usb_hcd *hcd, struct urb *urb,
246 gfp_t mem_flags);
247 void (*unmap_urb_for_dma)(struct usb_hcd *hcd, struct urb *urb);
248
236 /* hw synch, freeing endpoint resources that urb_dequeue can't */ 249 /* hw synch, freeing endpoint resources that urb_dequeue can't */
237 void (*endpoint_disable)(struct usb_hcd *hcd, 250 void (*endpoint_disable)(struct usb_hcd *hcd,
238 struct usb_host_endpoint *ep); 251 struct usb_host_endpoint *ep);
@@ -329,6 +342,8 @@ extern int usb_hcd_submit_urb(struct urb *urb, gfp_t mem_flags);
329extern int usb_hcd_unlink_urb(struct urb *urb, int status); 342extern int usb_hcd_unlink_urb(struct urb *urb, int status);
330extern void usb_hcd_giveback_urb(struct usb_hcd *hcd, struct urb *urb, 343extern void usb_hcd_giveback_urb(struct usb_hcd *hcd, struct urb *urb,
331 int status); 344 int status);
345extern int usb_hcd_map_urb_for_dma(struct usb_hcd *hcd, struct urb *urb,
346 gfp_t mem_flags);
332extern void usb_hcd_unmap_urb_setup_for_dma(struct usb_hcd *, struct urb *); 347extern void usb_hcd_unmap_urb_setup_for_dma(struct usb_hcd *, struct urb *);
333extern void usb_hcd_unmap_urb_for_dma(struct usb_hcd *, struct urb *); 348extern void usb_hcd_unmap_urb_for_dma(struct usb_hcd *, struct urb *);
334extern void usb_hcd_flush_endpoint(struct usb_device *udev, 349extern void usb_hcd_flush_endpoint(struct usb_device *udev,