diff options
Diffstat (limited to 'recipes/linux/linux-omap-2.6.37/linus/0017-ASoC-codecs-Add-missing-control_type-initialization.patch')
-rw-r--r-- | recipes/linux/linux-omap-2.6.37/linus/0017-ASoC-codecs-Add-missing-control_type-initialization.patch | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/recipes/linux/linux-omap-2.6.37/linus/0017-ASoC-codecs-Add-missing-control_type-initialization.patch b/recipes/linux/linux-omap-2.6.37/linus/0017-ASoC-codecs-Add-missing-control_type-initialization.patch new file mode 100644 index 0000000000..59adbc736a --- /dev/null +++ b/recipes/linux/linux-omap-2.6.37/linus/0017-ASoC-codecs-Add-missing-control_type-initialization.patch @@ -0,0 +1,84 @@ +From 7f984b55acb6530bf854bfcac13104228f3336c1 Mon Sep 17 00:00:00 2001 +From: Lars-Peter Clausen <lars@metafoo.de> +Date: Tue, 28 Dec 2010 21:08:57 +0100 +Subject: [PATCH 17/66] ASoC: codecs: Add missing control_type initialization + +Some codec drivers do not initialize the control_type field in their private +device struct, but still use it when calling snd_soc_codec_set_cache_io. +This patch fixes the issue by properly initializing it in the drivers probe +functions. + +Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> +Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> +Cc: stable@kernel.org (for 2.6.37 only) +--- + sound/soc/codecs/wm8940.c | 1 + + sound/soc/codecs/wm8955.c | 1 + + sound/soc/codecs/wm8960.c | 1 + + sound/soc/codecs/wm8971.c | 1 + + sound/soc/codecs/wm9081.c | 1 + + 5 files changed, 5 insertions(+), 0 deletions(-) + +diff --git a/sound/soc/codecs/wm8940.c b/sound/soc/codecs/wm8940.c +index 2cb16f8..23086e2 100644 +--- a/sound/soc/codecs/wm8940.c ++++ b/sound/soc/codecs/wm8940.c +@@ -768,6 +768,7 @@ static __devinit int wm8940_i2c_probe(struct i2c_client *i2c, + + i2c_set_clientdata(i2c, wm8940); + wm8940->control_data = i2c; ++ wm8940->control_type = SND_SOC_I2C; + + ret = snd_soc_register_codec(&i2c->dev, + &soc_codec_dev_wm8940, &wm8940_dai, 1); +diff --git a/sound/soc/codecs/wm8955.c b/sound/soc/codecs/wm8955.c +index 9cbab8e..a2ad91d 100644 +--- a/sound/soc/codecs/wm8955.c ++++ b/sound/soc/codecs/wm8955.c +@@ -1003,6 +1003,7 @@ static __devinit int wm8955_i2c_probe(struct i2c_client *i2c, + return -ENOMEM; + + i2c_set_clientdata(i2c, wm8955); ++ wm8955->control_type = SND_SOC_I2C; + + ret = snd_soc_register_codec(&i2c->dev, + &soc_codec_dev_wm8955, &wm8955_dai, 1); +diff --git a/sound/soc/codecs/wm8960.c b/sound/soc/codecs/wm8960.c +index 21986c4..ff6ff2f 100644 +--- a/sound/soc/codecs/wm8960.c ++++ b/sound/soc/codecs/wm8960.c +@@ -1013,6 +1013,7 @@ static __devinit int wm8960_i2c_probe(struct i2c_client *i2c, + return -ENOMEM; + + i2c_set_clientdata(i2c, wm8960); ++ wm8960->control_type = SND_SOC_I2C; + wm8960->control_data = i2c; + + ret = snd_soc_register_codec(&i2c->dev, +diff --git a/sound/soc/codecs/wm8971.c b/sound/soc/codecs/wm8971.c +index 63f6dbf..9f18db6 100644 +--- a/sound/soc/codecs/wm8971.c ++++ b/sound/soc/codecs/wm8971.c +@@ -718,6 +718,7 @@ static __devinit int wm8971_i2c_probe(struct i2c_client *i2c, + if (wm8971 == NULL) + return -ENOMEM; + ++ wm8971->control_type = SND_SOC_I2C; + i2c_set_clientdata(i2c, wm8971); + + ret = snd_soc_register_codec(&i2c->dev, +diff --git a/sound/soc/codecs/wm9081.c b/sound/soc/codecs/wm9081.c +index ecc7c37..a486670 100644 +--- a/sound/soc/codecs/wm9081.c ++++ b/sound/soc/codecs/wm9081.c +@@ -1335,6 +1335,7 @@ static __devinit int wm9081_i2c_probe(struct i2c_client *i2c, + return -ENOMEM; + + i2c_set_clientdata(i2c, wm9081); ++ wm9081->control_type = SND_SOC_I2C; + wm9081->control_data = i2c; + + ret = snd_soc_register_codec(&i2c->dev, +-- +1.6.6.1 + |