2018-11-20 13:19:04

by Marek Szyprowski

[permalink] [raw]
Subject: [PATCH] regulator: s2mps11: Fix GPIO descriptor initialization

GPIO descriptor array must be zero initialized to ensure that core will
properly handle also the case when no external GPIO pin is defined.

Fixes: 1c984942f0a4 ("regulator: s2mps11: Pass descriptor instead of GPIO number")
Signed-off-by: Marek Szyprowski <[email protected]>
---
This fixes broken eMMC boot on Artik, Rinato and Odroid XU3/XU4/HC1
boards.
---
drivers/regulator/s2mps11.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/regulator/s2mps11.c b/drivers/regulator/s2mps11.c
index 6fec45897194..63e66f485cc0 100644
--- a/drivers/regulator/s2mps11.c
+++ b/drivers/regulator/s2mps11.c
@@ -1134,9 +1134,8 @@ static int s2mps11_pmic_probe(struct platform_device *pdev)
return -EINVAL;
}

- s2mps11->ext_control_gpiod = devm_kmalloc_array(&pdev->dev,
- rdev_num, sizeof(*s2mps11->ext_control_gpiod),
- GFP_KERNEL);
+ s2mps11->ext_control_gpiod = devm_kcalloc(&pdev->dev, rdev_num,
+ sizeof(*s2mps11->ext_control_gpiod), GFP_KERNEL);
if (!s2mps11->ext_control_gpiod)
return -ENOMEM;

--
2.17.1



2018-11-20 16:00:14

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH] regulator: s2mps11: Fix GPIO descriptor initialization

On Tue, 20 Nov 2018 at 13:39, Marek Szyprowski <[email protected]> wrote:
>
> GPIO descriptor array must be zero initialized to ensure that core will
> properly handle also the case when no external GPIO pin is defined.
>
> Fixes: 1c984942f0a4 ("regulator: s2mps11: Pass descriptor instead of GPIO number")
> Signed-off-by: Marek Szyprowski <[email protected]>
> ---
> This fixes broken eMMC boot on Artik, Rinato and Odroid XU3/XU4/HC1
> boards.

I missed that on my review. Now it looks fine, thanks for fixing it!
Reviewed-by: Krzysztof Kozlowski <[email protected]>

Best regards,
Krzysztof


> ---
> drivers/regulator/s2mps11.c | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/regulator/s2mps11.c b/drivers/regulator/s2mps11.c
> index 6fec45897194..63e66f485cc0 100644
> --- a/drivers/regulator/s2mps11.c
> +++ b/drivers/regulator/s2mps11.c
> @@ -1134,9 +1134,8 @@ static int s2mps11_pmic_probe(struct platform_device *pdev)
> return -EINVAL;
> }
>
> - s2mps11->ext_control_gpiod = devm_kmalloc_array(&pdev->dev,
> - rdev_num, sizeof(*s2mps11->ext_control_gpiod),
> - GFP_KERNEL);
> + s2mps11->ext_control_gpiod = devm_kcalloc(&pdev->dev, rdev_num,
> + sizeof(*s2mps11->ext_control_gpiod), GFP_KERNEL);
> if (!s2mps11->ext_control_gpiod)
> return -ENOMEM;
>
> --
> 2.17.1
>