On Tue, Feb 14, 2017 at 11:36 AM, Roger Quadros <rog...@ti.com> wrote: > On 11/02/17 03:27, Peter Chen wrote: >> From: Arnd Bergmann <a...@arndb.de> >> >> For xhci-hcd platform device, all the DMA parameters are not >> configured properly, notably dma ops for dwc3 devices. So, set >> the dma for xhci from sysdev. sysdev is pointing to device that >> is known to the system firmware or hardware. >> >> Cc: Baolin Wang <baolin.w...@linaro.org> >> Cc: Vivek Gautam <vivek.gau...@codeaurora.org> >> Cc: Alexander Sverdlin <alexander.sverd...@nokia.com> >> Cc: Mathias Nyman <mathias.ny...@linux.intel.com> >> >> Signed-off-by: Arnd Bergmann <a...@arndb.de> >> Signed-off-by: Sriram Dash <sriram.d...@nxp.com> >> --- >> Hi, Baolin, Vivek and Alexander, >> I removed your tested-by tag due to add one change that adding sysdev >> for shared hcd too, if your test shows this change works for you or >> has no effect for you, please consider adding tested-by tag again, >> thanks.
>> @@ -222,20 +241,20 @@ static int xhci_plat_probe(struct platform_device >> *pdev) >> >> xhci->clk = clk; >> xhci->main_hcd = hcd; >> - xhci->shared_hcd = usb_create_shared_hcd(driver, &pdev->dev, >> + xhci->shared_hcd = __usb_create_hcd(driver, sysdev, &pdev->dev, >> dev_name(&pdev->dev), hcd); >> if (!xhci->shared_hcd) { >> ret = -ENOMEM; >> goto disable_clk; >> } >> >> - if (device_property_read_bool(&pdev->dev, "usb3-lpm-capable")) >> + if (device_property_read_bool(sysdev, "usb3-lpm-capable")) > > Why are we using sysdev to read DT property? We should be using the > XHCI device (&pdev->dev) here, no? If I remember correctly, this is one of the cases where pdev does not have a device node attached to it because it was created by the driver of the parent device on the fly in case of dwc3. When you have a pure xhci device in DT, the two pointers are the same. Arnd