|
|
@@ -232,7 +232,7 @@ static int orion_mdio_probe(struct platform_device *pdev)
|
|
|
clk_prepare_enable(dev->clk);
|
|
|
|
|
|
dev->err_interrupt = platform_get_irq(pdev, 0);
|
|
|
- if (dev->err_interrupt != -ENXIO) {
|
|
|
+ if (dev->err_interrupt > 0) {
|
|
|
ret = devm_request_irq(&pdev->dev, dev->err_interrupt,
|
|
|
orion_mdio_err_irq,
|
|
|
IRQF_SHARED, pdev->name, dev);
|
|
|
@@ -241,6 +241,9 @@ static int orion_mdio_probe(struct platform_device *pdev)
|
|
|
|
|
|
writel(MVMDIO_ERR_INT_SMI_DONE,
|
|
|
dev->regs + MVMDIO_ERR_INT_MASK);
|
|
|
+
|
|
|
+ } else if (dev->err_interrupt == -EPROBE_DEFER) {
|
|
|
+ return -EPROBE_DEFER;
|
|
|
}
|
|
|
|
|
|
mutex_init(&dev->lock);
|