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; |
