|
@@ -61,11 +61,9 @@ static int udc_bind_to_driver(struct usb_udc *udc,
|
|
|
|
|
|
#ifdef CONFIG_HAS_DMA
|
|
|
|
|
|
-int usb_gadget_map_request(struct usb_gadget *gadget,
|
|
|
+int usb_gadget_map_request_by_dev(struct device *dev,
|
|
|
struct usb_request *req, int is_in)
|
|
|
{
|
|
|
- struct device *dev = gadget->dev.parent;
|
|
|
-
|
|
|
if (req->length == 0)
|
|
|
return 0;
|
|
|
|
|
@@ -92,24 +90,38 @@ int usb_gadget_map_request(struct usb_gadget *gadget,
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
|
+EXPORT_SYMBOL_GPL(usb_gadget_map_request_by_dev);
|
|
|
+
|
|
|
+int usb_gadget_map_request(struct usb_gadget *gadget,
|
|
|
+ struct usb_request *req, int is_in)
|
|
|
+{
|
|
|
+ return usb_gadget_map_request_by_dev(gadget->dev.parent, req, is_in);
|
|
|
+}
|
|
|
EXPORT_SYMBOL_GPL(usb_gadget_map_request);
|
|
|
|
|
|
-void usb_gadget_unmap_request(struct usb_gadget *gadget,
|
|
|
+void usb_gadget_unmap_request_by_dev(struct device *dev,
|
|
|
struct usb_request *req, int is_in)
|
|
|
{
|
|
|
if (req->length == 0)
|
|
|
return;
|
|
|
|
|
|
if (req->num_mapped_sgs) {
|
|
|
- dma_unmap_sg(gadget->dev.parent, req->sg, req->num_mapped_sgs,
|
|
|
+ dma_unmap_sg(dev, req->sg, req->num_mapped_sgs,
|
|
|
is_in ? DMA_TO_DEVICE : DMA_FROM_DEVICE);
|
|
|
|
|
|
req->num_mapped_sgs = 0;
|
|
|
} else {
|
|
|
- dma_unmap_single(gadget->dev.parent, req->dma, req->length,
|
|
|
+ dma_unmap_single(dev, req->dma, req->length,
|
|
|
is_in ? DMA_TO_DEVICE : DMA_FROM_DEVICE);
|
|
|
}
|
|
|
}
|
|
|
+EXPORT_SYMBOL_GPL(usb_gadget_unmap_request_by_dev);
|
|
|
+
|
|
|
+void usb_gadget_unmap_request(struct usb_gadget *gadget,
|
|
|
+ struct usb_request *req, int is_in)
|
|
|
+{
|
|
|
+ usb_gadget_unmap_request_by_dev(gadget->dev.parent, req, is_in);
|
|
|
+}
|
|
|
EXPORT_SYMBOL_GPL(usb_gadget_unmap_request);
|
|
|
|
|
|
#endif /* CONFIG_HAS_DMA */
|