On 14/02/17 13:44, Arnd Bergmann wrote: > On Tue, Feb 14, 2017 at 11:36 AM, Roger Quadros <rogerq@xxxxxx> wrote: >> On 11/02/17 03:27, Peter Chen wrote: >>> From: Arnd Bergmann <arnd@xxxxxxxx> >>> >>> 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.wang@xxxxxxxxxx> >>> Cc: Vivek Gautam <vivek.gautam@xxxxxxxxxxxxxx> >>> Cc: Alexander Sverdlin <alexander.sverdlin@xxxxxxxxx> >>> Cc: Mathias Nyman <mathias.nyman@xxxxxxxxxxxxxxx> >>> >>> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx> >>> Signed-off-by: Sriram Dash <sriram.dash@xxxxxxx> >>> --- >>> 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. >From drivers/usb/dwc3/host.c > if (dwc->usb3_lpm_capable) { > props[0].name = "usb3-lpm-capable"; > ret = platform_device_add_properties(xhci, props); > if (ret) { > dev_err(dwc->dev, "failed to add properties to xHCI\n"); > goto err1; > } > } So it is setting the usb3-lpm-capable property into the xhci platform device and we should be reading the property from there. -- cheers, -roger -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html