Skip to content

Commit

Permalink
ASoC: WM8903: Disallow all invalid gpio_cfg pdata values
Browse files Browse the repository at this point in the history
The GPIO registers are 15 bits wide. Hence values, higher than 0x7fff are
not legal GPIO register values. Modify the pdata.gpio_cfg handling code
to reject all illegal values, not just WM8903_GPIO_NO_CONFIG (0x8000). This
will allow the later use of 0xffffffff as an invalid value in future device
tree bindings, meaning "don't touch this GPIO's configuration".

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
  • Loading branch information
Stephen Warren authored and Mark Brown committed Dec 2, 2011
1 parent 84b315e commit 6f526f0
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions sound/soc/codecs/wm8903.c
Original file line number Diff line number Diff line change
Expand Up @@ -1936,11 +1936,11 @@ static int wm8903_probe(struct snd_soc_codec *codec)
bool mic_gpio = false;

for (i = 0; i < ARRAY_SIZE(pdata->gpio_cfg); i++) {
if (pdata->gpio_cfg[i] == WM8903_GPIO_NO_CONFIG)
if (pdata->gpio_cfg[i] > 0x7fff)
continue;

snd_soc_write(codec, WM8903_GPIO_CONTROL_1 + i,
pdata->gpio_cfg[i] & 0xffff);
pdata->gpio_cfg[i] & 0x7fff);

val = (pdata->gpio_cfg[i] & WM8903_GP1_FN_MASK)
>> WM8903_GP1_FN_SHIFT;
Expand Down

0 comments on commit 6f526f0

Please sign in to comment.