aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAxel Lin <axel.lin@ingics.com>2016-03-09 07:38:55 -0500
committerLinus Walleij <linus.walleij@linaro.org>2016-03-30 04:39:39 -0400
commitfd975a7b180c9a8f6e02d2251eaabe9b0dcfeed6 (patch)
tree8e0446439d1467ea8ca1e37301fa037363630f72
parentf55532a0c0b8bb6148f4e07853b876ef73bc69ca (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.c9
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
43static int men_z127_debounce(struct gpio_chip *gc, unsigned gpio, 42static 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}