|
@@ -321,6 +321,9 @@ static void gpio_rcar_set_multiple(struct gpio_chip *chip, unsigned long *mask,
|
|
|
u32 val, bankmask;
|
|
|
|
|
|
bankmask = mask[0] & GENMASK(chip->ngpio - 1, 0);
|
|
|
+ if (chip->valid_mask)
|
|
|
+ bankmask &= chip->valid_mask[0];
|
|
|
+
|
|
|
if (!bankmask)
|
|
|
return;
|
|
|
|
|
@@ -558,6 +561,9 @@ static int gpio_rcar_resume(struct device *dev)
|
|
|
u32 mask;
|
|
|
|
|
|
for (offset = 0; offset < p->gpio_chip.ngpio; offset++) {
|
|
|
+ if (!gpiochip_line_is_valid(&p->gpio_chip, offset))
|
|
|
+ continue;
|
|
|
+
|
|
|
mask = BIT(offset);
|
|
|
/* I/O pin */
|
|
|
if (!(p->bank_info.iointsel & mask)) {
|