diff options
-rw-r--r-- | drivers/pinctrl/samsung/pinctrl-samsung.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/drivers/pinctrl/samsung/pinctrl-samsung.c b/drivers/pinctrl/samsung/pinctrl-samsung.c index f9ddba7decc1..d7aa22cff480 100644 --- a/drivers/pinctrl/samsung/pinctrl-samsung.c +++ b/drivers/pinctrl/samsung/pinctrl-samsung.c | |||
@@ -988,9 +988,16 @@ samsung_pinctrl_get_soc_data(struct samsung_pinctrl_drv_data *d, | |||
988 | 988 | ||
989 | for (i = 0; i < ctrl->nr_ext_resources + 1; i++) { | 989 | for (i = 0; i < ctrl->nr_ext_resources + 1; i++) { |
990 | res = platform_get_resource(pdev, IORESOURCE_MEM, i); | 990 | res = platform_get_resource(pdev, IORESOURCE_MEM, i); |
991 | virt_base[i] = devm_ioremap_resource(&pdev->dev, res); | 991 | if (!res) { |
992 | if (IS_ERR(virt_base[i])) | 992 | dev_err(&pdev->dev, "failed to get mem%d resource\n", i); |
993 | return ERR_CAST(virt_base[i]); | 993 | return ERR_PTR(-EINVAL); |
994 | } | ||
995 | virt_base[i] = devm_ioremap(&pdev->dev, res->start, | ||
996 | resource_size(res)); | ||
997 | if (!virt_base[i]) { | ||
998 | dev_err(&pdev->dev, "failed to ioremap %pR\n", res); | ||
999 | return ERR_PTR(-EIO); | ||
1000 | } | ||
994 | } | 1001 | } |
995 | 1002 | ||
996 | bank = d->pin_banks; | 1003 | bank = d->pin_banks; |