mirror of
https://github.com/torvalds/linux.git
synced 2026-05-24 23:22:31 +02:00
gpio: gpio-rcar: Drop direct use of valid_mask
The valid_mask member of the struct gpio_chip is unconditionally written by the GPIO core at driver registration. It should not be directly populated by the drivers. Hiding the valid_mask in struct gpio_device makes it clear it is not meant to be directly populated by drivers. This means drivers should not access it directly from the struct gpio_chip. The gpio-rcar checks the valid mask in set/get_multiple() operations. This is no longer needed [1]. Drop these checks. Additionally, the valid_mask is needed for enabling the GPIO inputs at probe time. Use the new valid_mask -getter function instead of accessing it directly from the struct gpio_chip. Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Link: https://lore.kernel.org/r/e46441ba8a2840e6b48ec8d2ecd5919995a5675f.1741180097.git.mazziesaccount@gmail.com Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
This commit is contained in:
parent
f636d4f60a
commit
43b665c961
|
|
@ -336,9 +336,6 @@ static int gpio_rcar_get_multiple(struct gpio_chip *chip, unsigned long *mask,
|
|||
unsigned long flags;
|
||||
|
||||
bankmask = mask[0] & GENMASK(chip->ngpio - 1, 0);
|
||||
if (chip->valid_mask)
|
||||
bankmask &= chip->valid_mask[0];
|
||||
|
||||
if (!bankmask)
|
||||
return 0;
|
||||
|
||||
|
|
@ -380,9 +377,6 @@ 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;
|
||||
|
||||
|
|
@ -482,10 +476,13 @@ static int gpio_rcar_parse_dt(struct gpio_rcar_priv *p, unsigned int *npins)
|
|||
static void gpio_rcar_enable_inputs(struct gpio_rcar_priv *p)
|
||||
{
|
||||
u32 mask = GENMASK(p->gpio_chip.ngpio - 1, 0);
|
||||
const unsigned long *valid_mask;
|
||||
|
||||
valid_mask = gpiochip_query_valid_mask(&p->gpio_chip);
|
||||
|
||||
/* Select "Input Enable" in INEN */
|
||||
if (p->gpio_chip.valid_mask)
|
||||
mask &= p->gpio_chip.valid_mask[0];
|
||||
if (valid_mask)
|
||||
mask &= valid_mask[0];
|
||||
if (mask)
|
||||
gpio_rcar_write(p, INEN, gpio_rcar_read(p, INEN) | mask);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user