aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpio/gpio-menz127.c9
-rw-r--r--drivers/gpio/gpio-xgene.c5
2 files changed, 9 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}
diff --git a/drivers/gpio/gpio-xgene.c b/drivers/gpio/gpio-xgene.c
index c0aa387664bf..0dc916191689 100644
--- a/drivers/gpio/gpio-xgene.c
+++ b/drivers/gpio/gpio-xgene.c
@@ -173,6 +173,11 @@ static int xgene_gpio_probe(struct platform_device *pdev)
173 } 173 }
174 174
175 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 175 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
176 if (!res) {
177 err = -EINVAL;
178 goto err;
179 }
180
176 gpio->base = devm_ioremap_nocache(&pdev->dev, res->start, 181 gpio->base = devm_ioremap_nocache(&pdev->dev, res->start,
177 resource_size(res)); 182 resource_size(res));
178 if (!gpio->base) { 183 if (!gpio->base) {