platform_get_irq() cannot return the value 0. If it returns -EPROBE_DEFER, we need to populate the error code upwards to retry probing once the irq handler is ready. Signed-off-by: Ricardo Ribalda <ribalda@xxxxxxxxxxxx> --- drivers/media/platform/broadcom/bcm2835-unicam.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/broadcom/bcm2835-unicam.c b/drivers/media/platform/broadcom/bcm2835-unicam.c index bd2bbb53070e..2a3a27ac70ba 100644 --- a/drivers/media/platform/broadcom/bcm2835-unicam.c +++ b/drivers/media/platform/broadcom/bcm2835-unicam.c @@ -2660,9 +2660,10 @@ static int unicam_probe(struct platform_device *pdev) } ret = platform_get_irq(pdev, 0); - if (ret <= 0) { + if (ret < 0) { dev_err(&pdev->dev, "No IRQ resource\n"); - ret = -EINVAL; + if (ret != -EPROBE_DEFER) + ret = -EINVAL; goto err_unicam_put; } -- 2.44.0.769.g3c40516874-goog