|
@@ -1428,7 +1428,8 @@ static void hcd_free_coherent(struct usb_bus *bus, dma_addr_t *dma_handle,
|
|
|
|
|
|
void usb_hcd_unmap_urb_setup_for_dma(struct usb_hcd *hcd, struct urb *urb)
|
|
|
{
|
|
|
- if (urb->transfer_flags & URB_SETUP_MAP_SINGLE)
|
|
|
+ if (IS_ENABLED(CONFIG_HAS_DMA) &&
|
|
|
+ (urb->transfer_flags & URB_SETUP_MAP_SINGLE))
|
|
|
dma_unmap_single(hcd->self.controller,
|
|
|
urb->setup_dma,
|
|
|
sizeof(struct usb_ctrlrequest),
|
|
@@ -1460,17 +1461,20 @@ void usb_hcd_unmap_urb_for_dma(struct usb_hcd *hcd, struct urb *urb)
|
|
|
usb_hcd_unmap_urb_setup_for_dma(hcd, urb);
|
|
|
|
|
|
dir = usb_urb_dir_in(urb) ? DMA_FROM_DEVICE : DMA_TO_DEVICE;
|
|
|
- if (urb->transfer_flags & URB_DMA_MAP_SG)
|
|
|
+ if (IS_ENABLED(CONFIG_HAS_DMA) &&
|
|
|
+ (urb->transfer_flags & URB_DMA_MAP_SG))
|
|
|
dma_unmap_sg(hcd->self.controller,
|
|
|
urb->sg,
|
|
|
urb->num_sgs,
|
|
|
dir);
|
|
|
- else if (urb->transfer_flags & URB_DMA_MAP_PAGE)
|
|
|
+ else if (IS_ENABLED(CONFIG_HAS_DMA) &&
|
|
|
+ (urb->transfer_flags & URB_DMA_MAP_PAGE))
|
|
|
dma_unmap_page(hcd->self.controller,
|
|
|
urb->transfer_dma,
|
|
|
urb->transfer_buffer_length,
|
|
|
dir);
|
|
|
- else if (urb->transfer_flags & URB_DMA_MAP_SINGLE)
|
|
|
+ else if (IS_ENABLED(CONFIG_HAS_DMA) &&
|
|
|
+ (urb->transfer_flags & URB_DMA_MAP_SINGLE))
|
|
|
dma_unmap_single(hcd->self.controller,
|
|
|
urb->transfer_dma,
|
|
|
urb->transfer_buffer_length,
|
|
@@ -1512,7 +1516,7 @@ int usb_hcd_map_urb_for_dma(struct usb_hcd *hcd, struct urb *urb,
|
|
|
if (usb_endpoint_xfer_control(&urb->ep->desc)) {
|
|
|
if (hcd->self.uses_pio_for_control)
|
|
|
return ret;
|
|
|
- if (hcd->self.uses_dma) {
|
|
|
+ if (IS_ENABLED(CONFIG_HAS_DMA) && hcd->self.uses_dma) {
|
|
|
urb->setup_dma = dma_map_single(
|
|
|
hcd->self.controller,
|
|
|
urb->setup_packet,
|
|
@@ -1538,7 +1542,7 @@ int usb_hcd_map_urb_for_dma(struct usb_hcd *hcd, struct urb *urb,
|
|
|
dir = usb_urb_dir_in(urb) ? DMA_FROM_DEVICE : DMA_TO_DEVICE;
|
|
|
if (urb->transfer_buffer_length != 0
|
|
|
&& !(urb->transfer_flags & URB_NO_TRANSFER_DMA_MAP)) {
|
|
|
- if (hcd->self.uses_dma) {
|
|
|
+ if (IS_ENABLED(CONFIG_HAS_DMA) && hcd->self.uses_dma) {
|
|
|
if (urb->num_sgs) {
|
|
|
int n;
|
|
|
|