From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Chen Subject: Re: [PATCH v12 3/9] usb: separate out sysdev pointer from usb_bus Date: Fri, 10 Feb 2017 10:42:36 +0800 Message-ID: <20170210024231.GC1334@b29397-desktop> References: <1486372421-29073-1-git-send-email-peter.chen@nxp.com> <1486372421-29073-4-git-send-email-peter.chen@nxp.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Vivek Gautam Cc: Mark Rutland , Peter Chen , Ulf Hansson , Heiko =?iso-8859-1?Q?St=FCbner?= , Ming Lei , Stephen Boyd , Bjorn Andersson , Gary Bisson , Leo Li , Sinjan Kumar , Sriram Dash , Fabio Estevam , Joshua Clayton , Felipe Balbi , Dmitry Eremin-Solenikov , Dann Frazier , Vaibhav Hiremath , krzk@kernel.org, David Fisher , mka@chromium.org, Alan Stern , Catalin Marinas , devicetree@vger.kernel.org List-Id: devicetree@vger.kernel.org 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 wrote: > > From: Arnd Bergmann > > > > 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 > > Signed-off-by: Sriram Dash > > Tested-by: Baolin Wang > > Tested-by: Brian Norris > > Tested-by: Alexander Sverdlin > > Tested-by: Vivek Gautam > > Signed-off-by: Mathias Nyman > > Cc: Felipe Balbi > > Cc: Grygorii Strashko > > Cc: Sinjan Kumar > > Cc: David Fisher > > Cc: Catalin Marinas > > Cc: "Thang Q. Nguyen" > > Cc: Yoshihiro Shimoda > > Cc: Stephen Boyd > > Cc: Bjorn Andersson > > Cc: Ming Lei > > Cc: Jon Masters > > Cc: Dann Frazier > > Cc: Peter Chen > > Cc: Leo Li > > --- > > 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] > > > @@ -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 > > > -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@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel -- Best Regards, Peter Chen