From d2b0c86b23cf583ca513fe7219052ca367da2243 Mon Sep 17 00:00:00 2001 From: Ajay Agarwal Date: Fri, 4 May 2018 10:15:01 +0530 Subject: [PATCH] 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 --- drivers/usb/core/hcd.c | 11 +++++++++++ drivers/usb/core/usb.c | 10 ++++++++++ include/linux/usb.h | 1 + include/linux/usb/hcd.h | 1 + 4 files changed, 23 insertions(+) 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 @@ -2241,6 +2241,17 @@ usb_hcd_get_sec_event_ring_dma_addr(struct usb_device *udev, return hcd->driver->get_sec_event_ring_dma_addr(hcd, intr_num); } +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);