usb: host: xhci-plat: add platform data support
authorPeter Chen <peter.chen@nxp.com>
Fri, 18 Sep 2020 13:17:43 +0000 (16:17 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 20 Sep 2020 14:18:00 +0000 (16:18 +0200)
Some xhci hosts (eg dwc3 and cdns3) do not use OF to create
platform device, they create xhci-plat platform device runtime.
And these platforms may also have quirks, and the quirks could
be supplied by their parent device through platform data.

Reviewed-by: Jun Li <jun.li@nxp.com>
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Link: https://lore.kernel.org/r/20200918131752.16488-2-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/xhci-plat.c

index 3057cfc..c7f98ed 100644 (file)
@@ -264,7 +264,11 @@ static int xhci_plat_probe(struct platform_device *pdev)
        if (ret)
                goto disable_reg_clk;
 
-       priv_match = of_device_get_match_data(&pdev->dev);
+       if (pdev->dev.of_node)
+               priv_match = of_device_get_match_data(&pdev->dev);
+       else
+               priv_match = dev_get_platdata(&pdev->dev);
+
        if (priv_match) {
                struct xhci_plat_priv *priv = hcd_to_xhci_priv(hcd);