diff options
| -rw-r--r-- | drivers/gpio/gpio-menz127.c | 9 | ||||
| -rw-r--r-- | drivers/gpio/gpio-xgene.c | 5 |
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 | ||
| 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 | } |
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) { |
