Hi!
[ Upstream commit b5b5a27bee5884860798ffd0f08e611a3942064b ]
During probe, return the provided errors value instead of -ENODEV. This allows the driver to be deferred probed if needed.
This is not correct AFAICT.
--- a/drivers/media/platform/stm32/stm32-dcmi.c +++ b/drivers/media/platform/stm32/stm32-dcmi.c @@ -1673,8 +1673,9 @@ static int dcmi_probe(struct platform_device *pdev) irq = platform_get_irq(pdev, 0); if (irq <= 0) {
dev_err(&pdev->dev, "Could not get irq\n");
return -ENODEV;
if (irq != -EPROBE_DEFER)
dev_err(&pdev->dev, "Could not get irq\n");
}return irq;
dcmi->res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
irq == 0 is clearly means error here, but will be interpretted as success when returned to the caller.
As device is not initialized at that point, I'd expect some kind of crash later. Pavel