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