[PATCH v3 3/6] ASoC: WM8903: Pass pdata to wm8903_init_gpio
Stephen Warren
swarren at nvidia.com
Fri Dec 2 07:49:21 EST 2011
Modify wm8903_init_gpio() so that it's passed the pdata structure rather
than extracting it from the platform device. This allows the caller to
pass in a default pdata structure when the platform device didn't contain
one. wm8903_init_gpio() now uses the centralized default gpio_base
definition added in the previous patch.
Based on work by John Bonesio, but significantly reworked since then.
Signed-off-by: Stephen Warren <swarren at nvidia.com>
---
sound/soc/codecs/wm8903.c | 15 ++++++---------
1 files changed, 6 insertions(+), 9 deletions(-)
diff --git a/sound/soc/codecs/wm8903.c b/sound/soc/codecs/wm8903.c
index 8249571..04d2393 100644
--- a/sound/soc/codecs/wm8903.c
+++ b/sound/soc/codecs/wm8903.c
@@ -1863,20 +1863,16 @@ static struct gpio_chip wm8903_template_chip = {
.can_sleep = 1,
};
-static void wm8903_init_gpio(struct snd_soc_codec *codec)
+static void wm8903_init_gpio(struct snd_soc_codec *codec,
+ struct wm8903_platform_data *pdata)
{
struct wm8903_priv *wm8903 = snd_soc_codec_get_drvdata(codec);
- struct wm8903_platform_data *pdata = dev_get_platdata(codec->dev);
int ret;
wm8903->gpio_chip = wm8903_template_chip;
wm8903->gpio_chip.ngpio = WM8903_NUM_GPIO;
wm8903->gpio_chip.dev = codec->dev;
-
- if (pdata && pdata->gpio_base)
- wm8903->gpio_chip.base = pdata->gpio_base;
- else
- wm8903->gpio_chip.base = -1;
+ wm8903->gpio_chip.base = pdata->gpio_base;
ret = gpiochip_add(&wm8903->gpio_chip);
if (ret != 0)
@@ -1893,7 +1889,8 @@ static void wm8903_free_gpio(struct snd_soc_codec *codec)
dev_err(codec->dev, "Failed to remove GPIOs: %d\n", ret);
}
#else
-static void wm8903_init_gpio(struct snd_soc_codec *codec)
+static void wm8903_init_gpio(struct snd_soc_codec *codec,
+ struct wm8903_platform_data *pdata)
{
}
@@ -2050,7 +2047,7 @@ static int wm8903_probe(struct snd_soc_codec *codec)
snd_soc_add_controls(codec, wm8903_snd_controls,
ARRAY_SIZE(wm8903_snd_controls));
- wm8903_init_gpio(codec);
+ wm8903_init_gpio(codec, pdata);
return ret;
}
--
1.7.0.4
More information about the devicetree-discuss
mailing list