diff options
Diffstat (limited to 'drivers/usb/core/buffer.c')
-rw-r--r-- | drivers/usb/core/buffer.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/usb/core/buffer.c b/drivers/usb/core/buffer.c index b9bf6e2eb6fe..b64568cf572c 100644 --- a/drivers/usb/core/buffer.c +++ b/drivers/usb/core/buffer.c | |||
@@ -66,7 +66,7 @@ int hcd_buffer_create(struct usb_hcd *hcd) | |||
66 | int i, size; | 66 | int i, size; |
67 | 67 | ||
68 | if (!IS_ENABLED(CONFIG_HAS_DMA) || | 68 | if (!IS_ENABLED(CONFIG_HAS_DMA) || |
69 | (!hcd->self.controller->dma_mask && | 69 | (!is_device_dma_capable(hcd->self.sysdev) && |
70 | !(hcd->driver->flags & HCD_LOCAL_MEM))) | 70 | !(hcd->driver->flags & HCD_LOCAL_MEM))) |
71 | return 0; | 71 | return 0; |
72 | 72 | ||
@@ -75,7 +75,7 @@ int hcd_buffer_create(struct usb_hcd *hcd) | |||
75 | if (!size) | 75 | if (!size) |
76 | continue; | 76 | continue; |
77 | snprintf(name, sizeof(name), "buffer-%d", size); | 77 | snprintf(name, sizeof(name), "buffer-%d", size); |
78 | hcd->pool[i] = dma_pool_create(name, hcd->self.controller, | 78 | hcd->pool[i] = dma_pool_create(name, hcd->self.sysdev, |
79 | size, size, 0); | 79 | size, size, 0); |
80 | if (!hcd->pool[i]) { | 80 | if (!hcd->pool[i]) { |
81 | hcd_buffer_destroy(hcd); | 81 | hcd_buffer_destroy(hcd); |
@@ -130,7 +130,7 @@ void *hcd_buffer_alloc( | |||
130 | 130 | ||
131 | /* some USB hosts just use PIO */ | 131 | /* some USB hosts just use PIO */ |
132 | if (!IS_ENABLED(CONFIG_HAS_DMA) || | 132 | if (!IS_ENABLED(CONFIG_HAS_DMA) || |
133 | (!bus->controller->dma_mask && | 133 | (!is_device_dma_capable(bus->sysdev) && |
134 | !(hcd->driver->flags & HCD_LOCAL_MEM))) { | 134 | !(hcd->driver->flags & HCD_LOCAL_MEM))) { |
135 | *dma = ~(dma_addr_t) 0; | 135 | *dma = ~(dma_addr_t) 0; |
136 | return kmalloc(size, mem_flags); | 136 | return kmalloc(size, mem_flags); |
@@ -140,7 +140,7 @@ void *hcd_buffer_alloc( | |||
140 | if (size <= pool_max[i]) | 140 | if (size <= pool_max[i]) |
141 | return dma_pool_alloc(hcd->pool[i], mem_flags, dma); | 141 | return dma_pool_alloc(hcd->pool[i], mem_flags, dma); |
142 | } | 142 | } |
143 | return dma_alloc_coherent(hcd->self.controller, size, dma, mem_flags); | 143 | return dma_alloc_coherent(hcd->self.sysdev, size, dma, mem_flags); |
144 | } | 144 | } |
145 | 145 | ||
146 | void hcd_buffer_free( | 146 | void hcd_buffer_free( |
@@ -157,7 +157,7 @@ void hcd_buffer_free( | |||
157 | return; | 157 | return; |
158 | 158 | ||
159 | if (!IS_ENABLED(CONFIG_HAS_DMA) || | 159 | if (!IS_ENABLED(CONFIG_HAS_DMA) || |
160 | (!bus->controller->dma_mask && | 160 | (!is_device_dma_capable(bus->sysdev) && |
161 | !(hcd->driver->flags & HCD_LOCAL_MEM))) { | 161 | !(hcd->driver->flags & HCD_LOCAL_MEM))) { |
162 | kfree(addr); | 162 | kfree(addr); |
163 | return; | 163 | return; |
@@ -169,5 +169,5 @@ void hcd_buffer_free( | |||
169 | return; | 169 | return; |
170 | } | 170 | } |
171 | } | 171 | } |
172 | dma_free_coherent(hcd->self.controller, size, addr, dma); | 172 | dma_free_coherent(hcd->self.sysdev, size, addr, dma); |
173 | } | 173 | } |