diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-22 23:30:48 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-22 23:30:48 -0400 |
commit | 5cc103506289de7ee0a0b526ae0381541990cad4 (patch) | |
tree | ae8a4958e70c6d1295030b40e333dcc007b3c074 /drivers/usb/core/hcd.c | |
parent | 73ecf3a6e3f0206bf56a0fefe3b3eda042fb7034 (diff) | |
parent | 92ca0dc5ee022e4c0e488177e1d8865a0778c6c2 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (141 commits)
USB: mct_u232: fix broken close
USB: gadget: amd5536udc.c: fix error path
USB: imx21-hcd - fix off by one resource size calculation
usb: gadget: fix Kconfig warning
usb: r8a66597-udc: Add processing when USB was removed.
mxc_udc: add workaround for ENGcm09152 for i.MX35
USB: ftdi_sio: add device ids for ScienceScope
USB: musb: AM35x: Workaround for fifo read issue
USB: musb: add musb support for AM35x
USB: AM35x: Add musb support
usb: Fix linker errors with CONFIG_PM=n
USB: ohci-sh - use resource_size instead of defining its own resource_len macro
USB: isp1362-hcd - use resource_size instead of defining its own resource_len macro
USB: isp116x-hcd - use resource_size instead of defining its own resource_len macro
USB: xhci: Fix compile error when CONFIG_PM=n
USB: accept some invalid ep0-maxpacket values
USB: xHCI: PCI power management implementation
USB: xHCI: bus power management implementation
USB: xHCI: port remote wakeup implementation
USB: xHCI: port power management implementation
...
Manually fix up (non-data) conflict: the SCSI merge gad renamed the
'hw_sector_size' member to 'physical_block_size', and the USB tree
brought a new use of it.
Diffstat (limited to 'drivers/usb/core/hcd.c')
-rw-r--r-- | drivers/usb/core/hcd.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c index 5cca00a6d09d..61800f77dac8 100644 --- a/drivers/usb/core/hcd.c +++ b/drivers/usb/core/hcd.c | |||
@@ -1263,10 +1263,8 @@ static void hcd_free_coherent(struct usb_bus *bus, dma_addr_t *dma_handle, | |||
1263 | *dma_handle = 0; | 1263 | *dma_handle = 0; |
1264 | } | 1264 | } |
1265 | 1265 | ||
1266 | static void unmap_urb_for_dma(struct usb_hcd *hcd, struct urb *urb) | 1266 | void unmap_urb_setup_for_dma(struct usb_hcd *hcd, struct urb *urb) |
1267 | { | 1267 | { |
1268 | enum dma_data_direction dir; | ||
1269 | |||
1270 | if (urb->transfer_flags & URB_SETUP_MAP_SINGLE) | 1268 | if (urb->transfer_flags & URB_SETUP_MAP_SINGLE) |
1271 | dma_unmap_single(hcd->self.controller, | 1269 | dma_unmap_single(hcd->self.controller, |
1272 | urb->setup_dma, | 1270 | urb->setup_dma, |
@@ -1279,6 +1277,17 @@ static void unmap_urb_for_dma(struct usb_hcd *hcd, struct urb *urb) | |||
1279 | sizeof(struct usb_ctrlrequest), | 1277 | sizeof(struct usb_ctrlrequest), |
1280 | DMA_TO_DEVICE); | 1278 | DMA_TO_DEVICE); |
1281 | 1279 | ||
1280 | /* Make it safe to call this routine more than once */ | ||
1281 | urb->transfer_flags &= ~(URB_SETUP_MAP_SINGLE | URB_SETUP_MAP_LOCAL); | ||
1282 | } | ||
1283 | EXPORT_SYMBOL_GPL(unmap_urb_setup_for_dma); | ||
1284 | |||
1285 | void unmap_urb_for_dma(struct usb_hcd *hcd, struct urb *urb) | ||
1286 | { | ||
1287 | enum dma_data_direction dir; | ||
1288 | |||
1289 | unmap_urb_setup_for_dma(hcd, urb); | ||
1290 | |||
1282 | dir = usb_urb_dir_in(urb) ? DMA_FROM_DEVICE : DMA_TO_DEVICE; | 1291 | dir = usb_urb_dir_in(urb) ? DMA_FROM_DEVICE : DMA_TO_DEVICE; |
1283 | if (urb->transfer_flags & URB_DMA_MAP_SG) | 1292 | if (urb->transfer_flags & URB_DMA_MAP_SG) |
1284 | dma_unmap_sg(hcd->self.controller, | 1293 | dma_unmap_sg(hcd->self.controller, |
@@ -1303,10 +1312,10 @@ static void unmap_urb_for_dma(struct usb_hcd *hcd, struct urb *urb) | |||
1303 | dir); | 1312 | dir); |
1304 | 1313 | ||
1305 | /* Make it safe to call this routine more than once */ | 1314 | /* Make it safe to call this routine more than once */ |
1306 | urb->transfer_flags &= ~(URB_SETUP_MAP_SINGLE | URB_SETUP_MAP_LOCAL | | 1315 | urb->transfer_flags &= ~(URB_DMA_MAP_SG | URB_DMA_MAP_PAGE | |
1307 | URB_DMA_MAP_SG | URB_DMA_MAP_PAGE | | ||
1308 | URB_DMA_MAP_SINGLE | URB_MAP_LOCAL); | 1316 | URB_DMA_MAP_SINGLE | URB_MAP_LOCAL); |
1309 | } | 1317 | } |
1318 | EXPORT_SYMBOL_GPL(unmap_urb_for_dma); | ||
1310 | 1319 | ||
1311 | static int map_urb_for_dma(struct usb_hcd *hcd, struct urb *urb, | 1320 | static int map_urb_for_dma(struct usb_hcd *hcd, struct urb *urb, |
1312 | gfp_t mem_flags) | 1321 | gfp_t mem_flags) |