aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/core/buffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/core/buffer.c')
-rw-r--r--drivers/usb/core/buffer.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/drivers/usb/core/buffer.c b/drivers/usb/core/buffer.c
index 89f2e7765093..2741566ee4f2 100644
--- a/drivers/usb/core/buffer.c
+++ b/drivers/usb/core/buffer.c
@@ -62,8 +62,9 @@ int hcd_buffer_create(struct usb_hcd *hcd)
62 char name[16]; 62 char name[16];
63 int i, size; 63 int i, size;
64 64
65 if (!hcd->self.controller->dma_mask && 65 if (!IS_ENABLED(CONFIG_HAS_DMA) ||
66 !(hcd->driver->flags & HCD_LOCAL_MEM)) 66 (!hcd->self.controller->dma_mask &&
67 !(hcd->driver->flags & HCD_LOCAL_MEM)))
67 return 0; 68 return 0;
68 69
69 for (i = 0; i < HCD_BUFFER_POOLS; i++) { 70 for (i = 0; i < HCD_BUFFER_POOLS; i++) {
@@ -93,6 +94,9 @@ void hcd_buffer_destroy(struct usb_hcd *hcd)
93{ 94{
94 int i; 95 int i;
95 96
97 if (!IS_ENABLED(CONFIG_HAS_DMA))
98 return;
99
96 for (i = 0; i < HCD_BUFFER_POOLS; i++) { 100 for (i = 0; i < HCD_BUFFER_POOLS; i++) {
97 struct dma_pool *pool = hcd->pool[i]; 101 struct dma_pool *pool = hcd->pool[i];
98 102
@@ -119,8 +123,9 @@ void *hcd_buffer_alloc(
119 int i; 123 int i;
120 124
121 /* some USB hosts just use PIO */ 125 /* some USB hosts just use PIO */
122 if (!bus->controller->dma_mask && 126 if (!IS_ENABLED(CONFIG_HAS_DMA) ||
123 !(hcd->driver->flags & HCD_LOCAL_MEM)) { 127 (!bus->controller->dma_mask &&
128 !(hcd->driver->flags & HCD_LOCAL_MEM))) {
124 *dma = ~(dma_addr_t) 0; 129 *dma = ~(dma_addr_t) 0;
125 return kmalloc(size, mem_flags); 130 return kmalloc(size, mem_flags);
126 } 131 }
@@ -145,8 +150,9 @@ void hcd_buffer_free(
145 if (!addr) 150 if (!addr)
146 return; 151 return;
147 152
148 if (!bus->controller->dma_mask && 153 if (!IS_ENABLED(CONFIG_HAS_DMA) ||
149 !(hcd->driver->flags & HCD_LOCAL_MEM)) { 154 (!bus->controller->dma_mask &&
155 !(hcd->driver->flags & HCD_LOCAL_MEM))) {
150 kfree(addr); 156 kfree(addr);
151 return; 157 return;
152 } 158 }