diff options
author | Lokesh Vutla <lokeshvutla@ti.com> | 2016-01-28 08:38:51 -0500 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2016-02-10 05:00:49 -0500 |
commit | 6ec9249a83b00a754af435ed57ad02ffed105d93 (patch) | |
tree | d82cb88cd586ea1dc5e2a8a09c3237295edcbdc9 | |
parent | 310a7e60435151ccab6dc4bc64b4b3a93b89c0d1 (diff) |
gpio: davinci: Fix the number of controllers allocated
Driver only needs to allocate for [ngpio / 32] controllers,
as each controller handles 32 gpios. But the current driver
allocates for ngpio of which the extra allocated are unused.
Fix it be registering only the required number of controllers.
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
Signed-off-by: Keerthy <j-keerthy@ti.com>
Reviewed-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-rw-r--r-- | drivers/gpio/gpio-davinci.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c index c889f3166205..cd007a67b302 100644 --- a/drivers/gpio/gpio-davinci.c +++ b/drivers/gpio/gpio-davinci.c | |||
@@ -195,7 +195,7 @@ static int davinci_gpio_of_xlate(struct gpio_chip *gc, | |||
195 | static int davinci_gpio_probe(struct platform_device *pdev) | 195 | static int davinci_gpio_probe(struct platform_device *pdev) |
196 | { | 196 | { |
197 | int i, base; | 197 | int i, base; |
198 | unsigned ngpio; | 198 | unsigned ngpio, nbank; |
199 | struct davinci_gpio_controller *chips; | 199 | struct davinci_gpio_controller *chips; |
200 | struct davinci_gpio_platform_data *pdata; | 200 | struct davinci_gpio_platform_data *pdata; |
201 | struct davinci_gpio_regs __iomem *regs; | 201 | struct davinci_gpio_regs __iomem *regs; |
@@ -224,8 +224,9 @@ static int davinci_gpio_probe(struct platform_device *pdev) | |||
224 | if (WARN_ON(ARCH_NR_GPIOS < ngpio)) | 224 | if (WARN_ON(ARCH_NR_GPIOS < ngpio)) |
225 | ngpio = ARCH_NR_GPIOS; | 225 | ngpio = ARCH_NR_GPIOS; |
226 | 226 | ||
227 | nbank = DIV_ROUND_UP(ngpio, 32); | ||
227 | chips = devm_kzalloc(dev, | 228 | chips = devm_kzalloc(dev, |
228 | ngpio * sizeof(struct davinci_gpio_controller), | 229 | nbank * sizeof(struct davinci_gpio_controller), |
229 | GFP_KERNEL); | 230 | GFP_KERNEL); |
230 | if (!chips) | 231 | if (!chips) |
231 | return -ENOMEM; | 232 | return -ENOMEM; |