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>
        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);