summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAjay Agarwal <ajaya@codeaurora.org>2018-05-04 10:15:01 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2018-05-15 07:17:08 -0700
commitd2b0c86b23cf583ca513fe7219052ca367da2243 (patch)
tree21bbff2c6eb3ec8949c0a7c8ccc680e5f94cc3ae
parentca3d15e44b795dadff563918a96b99a448d32ec4 (diff)
Revert "usb: core: Remove helper APIs returning dcba dma address"
This reverts commit 039bcf340ea35f1e5c4a81f290455570097d7d62. Add back helper APIs to return dcba dma address. Change-Id: Ia65e98691d1a3c241694f07215c12605832f574d Signed-off-by: Ajay Agarwal <ajaya@codeaurora.org>
-rw-r--r--drivers/usb/core/hcd.c11
-rw-r--r--drivers/usb/core/usb.c10
-rw-r--r--include/linux/usb.h1
-rw-r--r--include/linux/usb/hcd.h1
4 files changed, 23 insertions, 0 deletions
diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
index 592f45e6dbac..d7b580cf7f57 100644
--- a/drivers/usb/core/hcd.c
+++ b/drivers/usb/core/hcd.c
@@ -2242,6 +2242,17 @@ usb_hcd_get_sec_event_ring_dma_addr(struct usb_device *udev,
}
dma_addr_t
+usb_hcd_get_dcba_dma_addr(struct usb_device *udev)
+{
+ struct usb_hcd *hcd = bus_to_hcd(udev->bus);
+
+ if (!HCD_RH_RUNNING(hcd))
+ return 0;
+
+ return hcd->driver->get_dcba_dma_addr(hcd, udev);
+}
+
+dma_addr_t
usb_hcd_get_xfer_ring_dma_addr(struct usb_device *udev,
struct usb_host_endpoint *ep)
{
diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
index 65bf86f18a34..e64fd6570a23 100644
--- a/drivers/usb/core/usb.c
+++ b/drivers/usb/core/usb.c
@@ -697,6 +697,16 @@ usb_get_sec_event_ring_dma_addr(struct usb_device *dev,
}
EXPORT_SYMBOL(usb_get_sec_event_ring_dma_addr);
+dma_addr_t
+usb_get_dcba_dma_addr(struct usb_device *dev)
+{
+ if (dev->state == USB_STATE_NOTATTACHED)
+ return 0;
+
+ return usb_hcd_get_dcba_dma_addr(dev);
+}
+EXPORT_SYMBOL(usb_get_dcba_dma_addr);
+
dma_addr_t usb_get_xfer_ring_dma_addr(struct usb_device *dev,
struct usb_host_endpoint *ep)
{
diff --git a/include/linux/usb.h b/include/linux/usb.h
index 1821d34c24a5..2189e292d50c 100644
--- a/include/linux/usb.h
+++ b/include/linux/usb.h
@@ -753,6 +753,7 @@ extern int usb_sec_event_ring_cleanup(struct usb_device *dev,
extern dma_addr_t
usb_get_sec_event_ring_dma_addr(struct usb_device *dev,
unsigned intr_num);
+extern dma_addr_t usb_get_dcba_dma_addr(struct usb_device *dev);
extern dma_addr_t usb_get_xfer_ring_dma_addr(struct usb_device *dev,
struct usb_host_endpoint *ep);
extern int usb_get_controller_id(struct usb_device *dev);
diff --git a/include/linux/usb/hcd.h b/include/linux/usb/hcd.h
index 925401c30abe..f603b46ff48a 100644
--- a/include/linux/usb/hcd.h
+++ b/include/linux/usb/hcd.h
@@ -451,6 +451,7 @@ extern int usb_hcd_sec_event_ring_cleanup(struct usb_device *udev,
extern dma_addr_t
usb_hcd_get_sec_event_ring_dma_addr(struct usb_device *udev,
unsigned intr_num);
+extern dma_addr_t usb_hcd_get_dcba_dma_addr(struct usb_device *udev);
extern dma_addr_t
usb_hcd_get_xfer_ring_dma_addr(struct usb_device *udev,
struct usb_host_endpoint *ep);