Thread (22 messages) 22 messages, 5 authors, 2017-02-10

[PATCH v12 3/9] usb: separate out sysdev pointer from usb_bus

From: Peter Chen <hidden>
Date: 2017-02-10 02:42:36
Also in: linux-devicetree, linux-pm

On Thu, Feb 09, 2017 at 11:50:32AM +0530, Vivek Gautam wrote:
Hi,

On Mon, Feb 6, 2017 at 2:43 PM, Peter Chen [off-list ref] wrote:
quoted
From: Arnd Bergmann <arnd@arndb.de>

For xhci-hcd platform device, all the DMA parameters are not
configured properly, notably dma ops for dwc3 devices.

The idea here is that you pass in the parent of_node along with
the child device pointer, so it would behave exactly like the
parent already does. The difference is that it also handles all
the other attributes besides the mask.

sysdev will represent the physical device, as seen from firmware
or bus.Splitting the usb_bus->controller field into the
Linux-internal device (used for the sysfs hierarchy, for printks
and for power management) and a new pointer (used for DMA,
DT enumeration and phy lookup) probably covers all that we really
need.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Sriram Dash <redacted>
Tested-by: Baolin Wang <redacted>
Tested-by: Brian Norris <briannorris@chromium.org>
Tested-by: Alexander Sverdlin <redacted>
Tested-by: Vivek Gautam <redacted>
Signed-off-by: Mathias Nyman <redacted>
Cc: Felipe Balbi <redacted>
Cc: Grygorii Strashko <grygorii.strashko@ti.com>
Cc: Sinjan Kumar <redacted>
Cc: David Fisher <redacted>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: "Thang Q. Nguyen" <redacted>
Cc: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Cc: Stephen Boyd <redacted>
Cc: Bjorn Andersson <redacted>
Cc: Ming Lei <tom.leiming@gmail.com>
Cc: Jon Masters <redacted>
Cc: Dann Frazier <redacted>
Cc: Peter Chen <redacted>
Cc: Leo Li <redacted>
---
 drivers/usb/core/buffer.c | 12 ++++++------
 drivers/usb/core/hcd.c    | 48 ++++++++++++++++++++++++++++-------------------
 drivers/usb/core/usb.c    | 18 +++++++++---------
 include/linux/usb.h       |  1 +
 include/linux/usb/hcd.h   |  3 +++
 5 files changed, 48 insertions(+), 34 deletions(-)
[snip]
quoted
@@ -2511,8 +2512,8 @@ static void init_giveback_urb_bh(struct giveback_urb_bh *bh)
  * Return: On success, a pointer to the created and initialized HCD structure.
  * On failure (e.g. if memory is unavailable), %NULL.
  */
sorry for the noise, but a minor nit here.
The comments section above explains usb_create_shared_hcd() method
and so should be moved down to its place.
Will update it at v13
quoted
-struct usb_hcd *usb_create_shared_hcd(const struct hc_driver *driver,
-               struct device *dev, const char *bus_name,
+struct usb_hcd *__usb_create_hcd(const struct hc_driver *driver,
+               struct device *sysdev, struct device *dev, const char *bus_name,
                struct usb_hcd *primary_hcd)
 {
        struct usb_hcd *hcd;
@@ -2553,8 +2554,9 @@ struct usb_hcd *usb_create_shared_hcd(const struct hc_driver *driver,

        usb_bus_init(&hcd->self);
        hcd->self.controller = dev;
+       hcd->self.sysdev = sysdev;
        hcd->self.bus_name = bus_name;
-       hcd->self.uses_dma = (dev->dma_mask != NULL);
+       hcd->self.uses_dma = (sysdev->dma_mask != NULL);

        init_timer(&hcd->rh_timer);
        hcd->rh_timer.function = rh_timer_func;
@@ -2569,6 +2571,14 @@ struct usb_hcd *usb_create_shared_hcd(const struct hc_driver *driver,
                        "USB Host Controller";
        return hcd;
 }
+EXPORT_SYMBOL_GPL(__usb_create_hcd);
+
+struct usb_hcd *usb_create_shared_hcd(const struct hc_driver *driver,
+               struct device *dev, const char *bus_name,
+               struct usb_hcd *primary_hcd)
+{
+       return __usb_create_hcd(driver, dev, dev, bus_name, primary_hcd);
+}
 EXPORT_SYMBOL_GPL(usb_create_shared_hcd);

Regards
Vivek

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
-- 

Best Regards,
Peter Chen
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help