mirror of
https://github.com/torvalds/linux.git
synced 2026-05-22 14:12:07 +02:00
ASoC: soc-ac97: use new GPIO line value setter callbacks
struct gpio_chip now has callbacks for setting line values that return an integer, allowing to indicate failures. Convert the driver to using them. Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org> Link: https://patch.msgid.link/20250408-gpiochip-set-rv-sound-v1-1-dd54b6ca1ef9@linaro.org Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
8ffd015db8
commit
cf16c64014
|
|
@ -87,8 +87,8 @@ static int snd_soc_ac97_gpio_get(struct gpio_chip *chip, unsigned int offset)
|
|||
return !!(ret & (1 << offset));
|
||||
}
|
||||
|
||||
static void snd_soc_ac97_gpio_set(struct gpio_chip *chip, unsigned int offset,
|
||||
int value)
|
||||
static int snd_soc_ac97_gpio_set(struct gpio_chip *chip, unsigned int offset,
|
||||
int value)
|
||||
{
|
||||
struct snd_ac97_gpio_priv *gpio_priv = gpiochip_get_data(chip);
|
||||
struct snd_soc_component *component = gpio_to_component(chip);
|
||||
|
|
@ -98,15 +98,22 @@ static void snd_soc_ac97_gpio_set(struct gpio_chip *chip, unsigned int offset,
|
|||
snd_soc_component_write(component, AC97_GPIO_STATUS,
|
||||
gpio_priv->gpios_set);
|
||||
dev_dbg(component->dev, "set gpio %d to %d\n", offset, !!value);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int snd_soc_ac97_gpio_direction_out(struct gpio_chip *chip,
|
||||
unsigned offset, int value)
|
||||
{
|
||||
struct snd_soc_component *component = gpio_to_component(chip);
|
||||
int ret;
|
||||
|
||||
dev_dbg(component->dev, "set gpio %d to output\n", offset);
|
||||
snd_soc_ac97_gpio_set(chip, offset, value);
|
||||
|
||||
ret = snd_soc_ac97_gpio_set(chip, offset, value);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
return snd_soc_component_update_bits(component, AC97_GPIO_CFG,
|
||||
1 << offset, 0);
|
||||
}
|
||||
|
|
@ -118,7 +125,7 @@ static const struct gpio_chip snd_soc_ac97_gpio_chip = {
|
|||
.direction_input = snd_soc_ac97_gpio_direction_in,
|
||||
.get = snd_soc_ac97_gpio_get,
|
||||
.direction_output = snd_soc_ac97_gpio_direction_out,
|
||||
.set = snd_soc_ac97_gpio_set,
|
||||
.set_rv = snd_soc_ac97_gpio_set,
|
||||
.can_sleep = 1,
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user