|
|
@@ -1157,12 +1157,19 @@ static int flexcan_probe(struct platform_device *pdev)
|
|
|
const struct flexcan_devtype_data *devtype_data;
|
|
|
struct net_device *dev;
|
|
|
struct flexcan_priv *priv;
|
|
|
+ struct regulator *reg_xceiver;
|
|
|
struct resource *mem;
|
|
|
struct clk *clk_ipg = NULL, *clk_per = NULL;
|
|
|
void __iomem *base;
|
|
|
int err, irq;
|
|
|
u32 clock_freq = 0;
|
|
|
|
|
|
+ reg_xceiver = devm_regulator_get(&pdev->dev, "xceiver");
|
|
|
+ if (PTR_ERR(reg_xceiver) == -EPROBE_DEFER)
|
|
|
+ return -EPROBE_DEFER;
|
|
|
+ else if (IS_ERR(reg_xceiver))
|
|
|
+ reg_xceiver = NULL;
|
|
|
+
|
|
|
if (pdev->dev.of_node)
|
|
|
of_property_read_u32(pdev->dev.of_node,
|
|
|
"clock-frequency", &clock_freq);
|
|
|
@@ -1223,9 +1230,7 @@ static int flexcan_probe(struct platform_device *pdev)
|
|
|
priv->pdata = dev_get_platdata(&pdev->dev);
|
|
|
priv->devtype_data = devtype_data;
|
|
|
|
|
|
- priv->reg_xceiver = devm_regulator_get(&pdev->dev, "xceiver");
|
|
|
- if (IS_ERR(priv->reg_xceiver))
|
|
|
- priv->reg_xceiver = NULL;
|
|
|
+ priv->reg_xceiver = reg_xceiver;
|
|
|
|
|
|
netif_napi_add(dev, &priv->napi, flexcan_poll, FLEXCAN_NAPI_WEIGHT);
|
|
|
|