diff options
| author | Axel Lin <axel.lin@ingics.com> | 2016-03-09 07:38:55 -0500 |
|---|---|---|
| committer | Linus Walleij <linus.walleij@linaro.org> | 2016-03-30 04:39:39 -0400 |
| commit | fd975a7b180c9a8f6e02d2251eaabe9b0dcfeed6 (patch) | |
| tree | 8e0446439d1467ea8ca1e37301fa037363630f72 /drivers/gpio | |
| parent | f55532a0c0b8bb6148f4e07853b876ef73bc69ca (diff) | |
gpio: menz127: Drop lock field from struct men_z127_gpio
Current code uses a uninitialized spin lock.
bgpio_init() already initialized a spin lock, so let's switch to use
&gc->bgpio_lock instead and remove the lock from struct men_z127_gpio.
Fixes: f436bc2726c6 "gpio: add driver for MEN 16Z127 GPIO controller"
Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/gpio')
| -rw-r--r-- | drivers/gpio/gpio-menz127.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/gpio/gpio-menz127.c b/drivers/gpio/gpio-menz127.c index a68e199d579d..c5c9599a3a71 100644 --- a/drivers/gpio/gpio-menz127.c +++ b/drivers/gpio/gpio-menz127.c | |||
| @@ -37,7 +37,6 @@ struct men_z127_gpio { | |||
| 37 | void __iomem *reg_base; | 37 | void __iomem *reg_base; |
| 38 | struct mcb_device *mdev; | 38 | struct mcb_device *mdev; |
| 39 | struct resource *mem; | 39 | struct resource *mem; |
| 40 | spinlock_t lock; | ||
| 41 | }; | 40 | }; |
| 42 | 41 | ||
| 43 | static int men_z127_debounce(struct gpio_chip *gc, unsigned gpio, | 42 | static int men_z127_debounce(struct gpio_chip *gc, unsigned gpio, |
| @@ -69,7 +68,7 @@ static int men_z127_debounce(struct gpio_chip *gc, unsigned gpio, | |||
| 69 | debounce /= 50; | 68 | debounce /= 50; |
| 70 | } | 69 | } |
| 71 | 70 | ||
| 72 | spin_lock(&priv->lock); | 71 | spin_lock(&gc->bgpio_lock); |
| 73 | 72 | ||
| 74 | db_en = readl(priv->reg_base + MEN_Z127_DBER); | 73 | db_en = readl(priv->reg_base + MEN_Z127_DBER); |
| 75 | 74 | ||
| @@ -84,7 +83,7 @@ static int men_z127_debounce(struct gpio_chip *gc, unsigned gpio, | |||
| 84 | writel(db_en, priv->reg_base + MEN_Z127_DBER); | 83 | writel(db_en, priv->reg_base + MEN_Z127_DBER); |
| 85 | writel(db_cnt, priv->reg_base + GPIO_TO_DBCNT_REG(gpio)); | 84 | writel(db_cnt, priv->reg_base + GPIO_TO_DBCNT_REG(gpio)); |
| 86 | 85 | ||
| 87 | spin_unlock(&priv->lock); | 86 | spin_unlock(&gc->bgpio_lock); |
| 88 | 87 | ||
| 89 | return 0; | 88 | return 0; |
| 90 | } | 89 | } |
| @@ -97,7 +96,7 @@ static int men_z127_request(struct gpio_chip *gc, unsigned gpio_pin) | |||
| 97 | if (gpio_pin >= gc->ngpio) | 96 | if (gpio_pin >= gc->ngpio) |
| 98 | return -EINVAL; | 97 | return -EINVAL; |
| 99 | 98 | ||
| 100 | spin_lock(&priv->lock); | 99 | spin_lock(&gc->bgpio_lock); |
| 101 | od_en = readl(priv->reg_base + MEN_Z127_ODER); | 100 | od_en = readl(priv->reg_base + MEN_Z127_ODER); |
| 102 | 101 | ||
| 103 | if (gpiochip_line_is_open_drain(gc, gpio_pin)) | 102 | if (gpiochip_line_is_open_drain(gc, gpio_pin)) |
| @@ -106,7 +105,7 @@ static int men_z127_request(struct gpio_chip *gc, unsigned gpio_pin) | |||
| 106 | od_en &= ~BIT(gpio_pin); | 105 | od_en &= ~BIT(gpio_pin); |
| 107 | 106 | ||
| 108 | writel(od_en, priv->reg_base + MEN_Z127_ODER); | 107 | writel(od_en, priv->reg_base + MEN_Z127_ODER); |
| 109 | spin_unlock(&priv->lock); | 108 | spin_unlock(&gc->bgpio_lock); |
| 110 | 109 | ||
| 111 | return 0; | 110 | return 0; |
| 112 | } | 111 | } |
