gpio: eic-sprd: break loop when getting NULL device resource
authorChunyan Zhang <chunyan.zhang@unisoc.com>
Wed, 9 Dec 2020 05:51:06 +0000 (13:51 +0800)
committerLinus Walleij <linus.walleij@linaro.org>
Wed, 9 Dec 2020 08:41:49 +0000 (09:41 +0100)
EIC controller have unfixed numbers of banks on different Spreadtrum SoCs,
and each bank has its own base address, the loop of getting there base
address in driver should break if the resource gotten via
platform_get_resource() is NULL already. The later ones would be all NULL
even if the loop continues.

Fixes: 25518e024e3a ("gpio: Add Spreadtrum EIC driver support")
Signed-off-by: Chunyan Zhang <chunyan.zhang@unisoc.com>
Link: https://lore.kernel.org/r/20201209055106.840100-1-zhang.lyra@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpio-eic-sprd.c

index ad61daf..865ab2b 100644 (file)
@@ -598,7 +598,7 @@ static int sprd_eic_probe(struct platform_device *pdev)
                 */
                res = platform_get_resource(pdev, IORESOURCE_MEM, i);
                if (!res)
-                       continue;
+                       break;
 
                sprd_eic->base[i] = devm_ioremap_resource(&pdev->dev, res);
                if (IS_ERR(sprd_eic->base[i]))