Thread (8 messages) 8 messages, 3 authors, 2016-07-08

Re: [PATCH 5/6] usb: chipidea: host: let the hcd know's parent device node

From: Peter Chen <hidden>
Date: 2016-07-08 01:54:47
Also in: linux-arm-kernel, linux-pm

On Thu, Jul 07, 2016 at 03:56:51PM -0700, Stephen Boyd wrote:
Quoting Peter Chen (2016-07-07 02:14:51)
quoted
diff --git a/drivers/usb/chipidea/host.c b/drivers/usb/chipidea/host.c
index 053bac9..55120ef 100644
--- a/drivers/usb/chipidea/host.c
+++ b/drivers/usb/chipidea/host.c
@@ -109,15 +109,25 @@ static int host_start(struct ci_hdrc *ci)
        struct ehci_hcd *ehci;
        struct ehci_ci_priv *priv;
        int ret;
+       struct device *dev = ci->dev;
 
-       if (usb_disabled())
+       if (usb_disabled() || !dev)
Does that ever happen?
I don't think so, will delete it.
quoted
                return -ENODEV;
 
-       hcd = usb_create_hcd(&ci_ehci_hc_driver, ci->dev, dev_name(ci->dev));
+       /*
+        * USB Core will try to get child node under roothub,
+        * but chipidea core has no of_node, and the child node
+        * for controller is located at glue layer's node which
+        * is chipidea core's parent.
+        */
+       if (dev->parent && dev->parent->of_node)
+               dev->of_node = dev->parent->of_node;
Why not do this during the ci device probe? How is host special for
having an of_node for the child device.
Good idea. I did this when I added USB device DT support, but did not
consider potential gadget/phy use cases.

-- 

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