diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c index a0768d6dffc2..cf830915713b 100644 --- a/drivers/i2c/i2c-core.c +++ b/drivers/i2c/i2c-core.c @@ -629,8 +629,10 @@ static int i2c_device_probe(struct device *dev) if (!client->irq && dev->of_node) { int irq = of_irq_get(dev->of_node, 0); - if (irq < 0) + if (irq == -EPROBE_DEFER) return irq; + if (irq < 0) + irq = 0; client->irq = irq; }