aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/sound/soc-dapm.h1
-rw-r--r--include/sound/soc.h9
-rw-r--r--sound/soc/codecs/Kconfig2
-rw-r--r--sound/soc/soc-core.c29
-rw-r--r--sound/soc/soc-dapm.c1
-rw-r--r--sound/soc/soc-io.c5
6 files changed, 21 insertions, 26 deletions
diff --git a/include/sound/soc-dapm.h b/include/sound/soc-dapm.h
index e1ef63d4a5c4..d4c004929ae5 100644
--- a/include/sound/soc-dapm.h
+++ b/include/sound/soc-dapm.h
@@ -565,7 +565,6 @@ struct snd_soc_dapm_update {
565 565
566/* DAPM context */ 566/* DAPM context */
567struct snd_soc_dapm_context { 567struct snd_soc_dapm_context {
568 int n_widgets; /* number of widgets in this context */
569 enum snd_soc_bias_level bias_level; 568 enum snd_soc_bias_level bias_level;
570 enum snd_soc_bias_level suspend_bias_level; 569 enum snd_soc_bias_level suspend_bias_level;
571 struct delayed_work delayed_work; 570 struct delayed_work delayed_work;
diff --git a/include/sound/soc.h b/include/sound/soc.h
index a6a059ca3874..f619905f0a65 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -371,7 +371,7 @@ int snd_soc_suspend(struct device *dev);
371int snd_soc_resume(struct device *dev); 371int snd_soc_resume(struct device *dev);
372int snd_soc_poweroff(struct device *dev); 372int snd_soc_poweroff(struct device *dev);
373int snd_soc_register_platform(struct device *dev, 373int snd_soc_register_platform(struct device *dev,
374 struct snd_soc_platform_driver *platform_drv); 374 const struct snd_soc_platform_driver *platform_drv);
375void snd_soc_unregister_platform(struct device *dev); 375void snd_soc_unregister_platform(struct device *dev);
376int snd_soc_register_codec(struct device *dev, 376int snd_soc_register_codec(struct device *dev,
377 const struct snd_soc_codec_driver *codec_drv, 377 const struct snd_soc_codec_driver *codec_drv,
@@ -801,10 +801,10 @@ struct snd_soc_platform_driver {
801 struct snd_soc_dai *); 801 struct snd_soc_dai *);
802 802
803 /* platform stream pcm ops */ 803 /* platform stream pcm ops */
804 struct snd_pcm_ops *ops; 804 const struct snd_pcm_ops *ops;
805 805
806 /* platform stream compress ops */ 806 /* platform stream compress ops */
807 struct snd_compr_ops *compr_ops; 807 const struct snd_compr_ops *compr_ops;
808 808
809 /* platform stream completion event */ 809 /* platform stream completion event */
810 int (*stream_event)(struct snd_soc_dapm_context *dapm, int event); 810 int (*stream_event)(struct snd_soc_dapm_context *dapm, int event);
@@ -823,7 +823,7 @@ struct snd_soc_platform {
823 const char *name; 823 const char *name;
824 int id; 824 int id;
825 struct device *dev; 825 struct device *dev;
826 struct snd_soc_platform_driver *driver; 826 const struct snd_soc_platform_driver *driver;
827 struct mutex mutex; 827 struct mutex mutex;
828 828
829 unsigned int suspended:1; /* platform is suspended */ 829 unsigned int suspended:1; /* platform is suspended */
@@ -1086,7 +1086,6 @@ struct soc_enum {
1086 unsigned int mask; 1086 unsigned int mask;
1087 const char * const *texts; 1087 const char * const *texts;
1088 const unsigned int *values; 1088 const unsigned int *values;
1089 void *dapm;
1090}; 1089};
1091 1090
1092/* codec IO */ 1091/* codec IO */
diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig
index 45b72561c615..350b86458971 100644
--- a/sound/soc/codecs/Kconfig
+++ b/sound/soc/codecs/Kconfig
@@ -324,7 +324,7 @@ config SND_SOC_TLV320AIC23
324 tristate 324 tristate
325 325
326config SND_SOC_TLV320AIC26 326config SND_SOC_TLV320AIC26
327 tristate "TI TLV320AIC26 Codec support" if SND_SOC_OF_SIMPLE 327 tristate
328 depends on SPI 328 depends on SPI
329 329
330config SND_SOC_TLV320AIC32X4 330config SND_SOC_TLV320AIC32X4
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index b7e84a7cd9ee..4d24b5ea3ba7 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -3906,7 +3906,7 @@ EXPORT_SYMBOL_GPL(snd_soc_unregister_dais);
3906 * @platform: platform to register 3906 * @platform: platform to register
3907 */ 3907 */
3908int snd_soc_register_platform(struct device *dev, 3908int snd_soc_register_platform(struct device *dev,
3909 struct snd_soc_platform_driver *platform_drv) 3909 const struct snd_soc_platform_driver *platform_drv)
3910{ 3910{
3911 struct snd_soc_platform *platform; 3911 struct snd_soc_platform *platform;
3912 3912
@@ -4022,8 +4022,8 @@ int snd_soc_register_codec(struct device *dev,
4022 /* create CODEC component name */ 4022 /* create CODEC component name */
4023 codec->name = fmt_single_name(dev, &codec->id); 4023 codec->name = fmt_single_name(dev, &codec->id);
4024 if (codec->name == NULL) { 4024 if (codec->name == NULL) {
4025 kfree(codec); 4025 ret = -ENOMEM;
4026 return -ENOMEM; 4026 goto fail_codec;
4027 } 4027 }
4028 4028
4029 if (codec_drv->compress_type) 4029 if (codec_drv->compress_type)
@@ -4062,7 +4062,7 @@ int snd_soc_register_codec(struct device *dev,
4062 reg_size, GFP_KERNEL); 4062 reg_size, GFP_KERNEL);
4063 if (!codec->reg_def_copy) { 4063 if (!codec->reg_def_copy) {
4064 ret = -ENOMEM; 4064 ret = -ENOMEM;
4065 goto fail; 4065 goto fail_codec_name;
4066 } 4066 }
4067 } 4067 }
4068 } 4068 }
@@ -4086,18 +4086,22 @@ int snd_soc_register_codec(struct device *dev,
4086 mutex_unlock(&client_mutex); 4086 mutex_unlock(&client_mutex);
4087 4087
4088 /* register any DAIs */ 4088 /* register any DAIs */
4089 if (num_dai) { 4089 ret = snd_soc_register_dais(dev, dai_drv, num_dai);
4090 ret = snd_soc_register_dais(dev, dai_drv, num_dai); 4090 if (ret < 0) {
4091 if (ret < 0) 4091 dev_err(codec->dev, "ASoC: Failed to regster DAIs: %d\n", ret);
4092 dev_err(codec->dev, "ASoC: Failed to regster" 4092 goto fail_codec_name;
4093 " DAIs: %d\n", ret);
4094 } 4093 }
4095 4094
4096 dev_dbg(codec->dev, "ASoC: Registered codec '%s'\n", codec->name); 4095 dev_dbg(codec->dev, "ASoC: Registered codec '%s'\n", codec->name);
4097 return 0; 4096 return 0;
4098 4097
4099fail: 4098fail_codec_name:
4099 mutex_lock(&client_mutex);
4100 list_del(&codec->list);
4101 mutex_unlock(&client_mutex);
4102
4100 kfree(codec->name); 4103 kfree(codec->name);
4104fail_codec:
4101 kfree(codec); 4105 kfree(codec);
4102 return ret; 4106 return ret;
4103} 4107}
@@ -4111,7 +4115,6 @@ EXPORT_SYMBOL_GPL(snd_soc_register_codec);
4111void snd_soc_unregister_codec(struct device *dev) 4115void snd_soc_unregister_codec(struct device *dev)
4112{ 4116{
4113 struct snd_soc_codec *codec; 4117 struct snd_soc_codec *codec;
4114 int i;
4115 4118
4116 list_for_each_entry(codec, &codec_list, list) { 4119 list_for_each_entry(codec, &codec_list, list) {
4117 if (dev == codec->dev) 4120 if (dev == codec->dev)
@@ -4120,9 +4123,7 @@ void snd_soc_unregister_codec(struct device *dev)
4120 return; 4123 return;
4121 4124
4122found: 4125found:
4123 if (codec->num_dai) 4126 snd_soc_unregister_dais(dev, codec->num_dai);
4124 for (i = 0; i < codec->num_dai; i++)
4125 snd_soc_unregister_dai(dev);
4126 4127
4127 mutex_lock(&client_mutex); 4128 mutex_lock(&client_mutex);
4128 list_del(&codec->list); 4129 list_del(&codec->list);
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
index 1d6a9b3ceb27..625d4824abbb 100644
--- a/sound/soc/soc-dapm.c
+++ b/sound/soc/soc-dapm.c
@@ -3123,7 +3123,6 @@ snd_soc_dapm_new_control(struct snd_soc_dapm_context *dapm,
3123 break; 3123 break;
3124 } 3124 }
3125 3125
3126 dapm->n_widgets++;
3127 w->dapm = dapm; 3126 w->dapm = dapm;
3128 w->codec = dapm->codec; 3127 w->codec = dapm->codec;
3129 w->platform = dapm->platform; 3128 w->platform = dapm->platform;
diff --git a/sound/soc/soc-io.c b/sound/soc/soc-io.c
index 29183ef2b93d..8ca9ecc5ac57 100644
--- a/sound/soc/soc-io.c
+++ b/sound/soc/soc-io.c
@@ -158,10 +158,7 @@ int snd_soc_codec_set_cache_io(struct snd_soc_codec *codec,
158 return -EINVAL; 158 return -EINVAL;
159 } 159 }
160 160
161 if (IS_ERR(codec->control_data)) 161 return PTR_RET(codec->control_data);
162 return PTR_ERR(codec->control_data);
163
164 return 0;
165} 162}
166EXPORT_SYMBOL_GPL(snd_soc_codec_set_cache_io); 163EXPORT_SYMBOL_GPL(snd_soc_codec_set_cache_io);
167#else 164#else