diff options
| author | Mark Brown <broonie@kernel.org> | 2014-10-06 07:48:52 -0400 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2014-10-06 07:48:52 -0400 |
| commit | 97c53e26f0773b9eb9ede21f544a91dd1bcd9ca9 (patch) | |
| tree | abad2cc74e89d65514b501ad39fdf7a1c3546106 | |
| parent | 5bcaca4b5bf2b05cc15a2c5bfb3d95fc49607e36 (diff) | |
| parent | e03f73a01f010b29504ceebda3c4fca25468516d (diff) | |
Merge remote-tracking branch 'asoc/topic/core' into asoc-next
| -rw-r--r-- | include/sound/soc.h | 6 | ||||
| -rw-r--r-- | include/trace/events/asoc.h | 6 | ||||
| -rw-r--r-- | sound/soc/soc-core.c | 30 |
3 files changed, 19 insertions, 23 deletions
diff --git a/include/sound/soc.h b/include/sound/soc.h index f1366ebca9c5..f90f605b3971 100644 --- a/include/sound/soc.h +++ b/include/sound/soc.h | |||
| @@ -912,7 +912,7 @@ struct snd_soc_dai_link { | |||
| 912 | * only for codec to codec links, or systems using device tree. | 912 | * only for codec to codec links, or systems using device tree. |
| 913 | */ | 913 | */ |
| 914 | const char *cpu_name; | 914 | const char *cpu_name; |
| 915 | const struct device_node *cpu_of_node; | 915 | struct device_node *cpu_of_node; |
| 916 | /* | 916 | /* |
| 917 | * You MAY specify the DAI name of the CPU DAI. If this information is | 917 | * You MAY specify the DAI name of the CPU DAI. If this information is |
| 918 | * omitted, the CPU-side DAI is matched using .cpu_name/.cpu_of_node | 918 | * omitted, the CPU-side DAI is matched using .cpu_name/.cpu_of_node |
| @@ -924,7 +924,7 @@ struct snd_soc_dai_link { | |||
| 924 | * DT/OF node, but not both. | 924 | * DT/OF node, but not both. |
| 925 | */ | 925 | */ |
| 926 | const char *codec_name; | 926 | const char *codec_name; |
| 927 | const struct device_node *codec_of_node; | 927 | struct device_node *codec_of_node; |
| 928 | /* You MUST specify the DAI name within the codec */ | 928 | /* You MUST specify the DAI name within the codec */ |
| 929 | const char *codec_dai_name; | 929 | const char *codec_dai_name; |
| 930 | 930 | ||
| @@ -937,7 +937,7 @@ struct snd_soc_dai_link { | |||
| 937 | * do not need a platform. | 937 | * do not need a platform. |
| 938 | */ | 938 | */ |
| 939 | const char *platform_name; | 939 | const char *platform_name; |
| 940 | const struct device_node *platform_of_node; | 940 | struct device_node *platform_of_node; |
| 941 | int be_id; /* optional ID for machine driver BE identification */ | 941 | int be_id; /* optional ID for machine driver BE identification */ |
| 942 | 942 | ||
| 943 | const struct snd_soc_pcm_stream *params; | 943 | const struct snd_soc_pcm_stream *params; |
diff --git a/include/trace/events/asoc.h b/include/trace/events/asoc.h index 0194a641e4e2..b04ee7e5a466 100644 --- a/include/trace/events/asoc.h +++ b/include/trace/events/asoc.h | |||
| @@ -175,7 +175,7 @@ TRACE_EVENT(snd_soc_dapm_output_path, | |||
| 175 | __entry->path_sink = (long)path->sink; | 175 | __entry->path_sink = (long)path->sink; |
| 176 | ), | 176 | ), |
| 177 | 177 | ||
| 178 | TP_printk("%c%s -> %s -> %s\n", | 178 | TP_printk("%c%s -> %s -> %s", |
| 179 | (int) __entry->path_sink && | 179 | (int) __entry->path_sink && |
| 180 | (int) __entry->path_connect ? '*' : ' ', | 180 | (int) __entry->path_connect ? '*' : ' ', |
| 181 | __get_str(wname), __get_str(pname), __get_str(psname)) | 181 | __get_str(wname), __get_str(pname), __get_str(psname)) |
| @@ -204,7 +204,7 @@ TRACE_EVENT(snd_soc_dapm_input_path, | |||
| 204 | __entry->path_source = (long)path->source; | 204 | __entry->path_source = (long)path->source; |
| 205 | ), | 205 | ), |
| 206 | 206 | ||
| 207 | TP_printk("%c%s <- %s <- %s\n", | 207 | TP_printk("%c%s <- %s <- %s", |
| 208 | (int) __entry->path_source && | 208 | (int) __entry->path_source && |
| 209 | (int) __entry->path_connect ? '*' : ' ', | 209 | (int) __entry->path_connect ? '*' : ' ', |
| 210 | __get_str(wname), __get_str(pname), __get_str(psname)) | 210 | __get_str(wname), __get_str(pname), __get_str(psname)) |
| @@ -226,7 +226,7 @@ TRACE_EVENT(snd_soc_dapm_connected, | |||
| 226 | __entry->stream = stream; | 226 | __entry->stream = stream; |
| 227 | ), | 227 | ), |
| 228 | 228 | ||
| 229 | TP_printk("%s: found %d paths\n", | 229 | TP_printk("%s: found %d paths", |
| 230 | __entry->stream ? "capture" : "playback", __entry->paths) | 230 | __entry->stream ? "capture" : "playback", __entry->paths) |
| 231 | ); | 231 | ); |
| 232 | 232 | ||
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index c75a27ce7b97..57de6a7d7ffa 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c | |||
| @@ -1956,19 +1956,14 @@ static struct platform_driver soc_driver = { | |||
| 1956 | int snd_soc_new_ac97_codec(struct snd_soc_codec *codec, | 1956 | int snd_soc_new_ac97_codec(struct snd_soc_codec *codec, |
| 1957 | struct snd_ac97_bus_ops *ops, int num) | 1957 | struct snd_ac97_bus_ops *ops, int num) |
| 1958 | { | 1958 | { |
| 1959 | mutex_lock(&codec->mutex); | ||
| 1960 | |||
| 1961 | codec->ac97 = kzalloc(sizeof(struct snd_ac97), GFP_KERNEL); | 1959 | codec->ac97 = kzalloc(sizeof(struct snd_ac97), GFP_KERNEL); |
| 1962 | if (codec->ac97 == NULL) { | 1960 | if (codec->ac97 == NULL) |
| 1963 | mutex_unlock(&codec->mutex); | ||
| 1964 | return -ENOMEM; | 1961 | return -ENOMEM; |
| 1965 | } | ||
| 1966 | 1962 | ||
| 1967 | codec->ac97->bus = kzalloc(sizeof(struct snd_ac97_bus), GFP_KERNEL); | 1963 | codec->ac97->bus = kzalloc(sizeof(struct snd_ac97_bus), GFP_KERNEL); |
| 1968 | if (codec->ac97->bus == NULL) { | 1964 | if (codec->ac97->bus == NULL) { |
| 1969 | kfree(codec->ac97); | 1965 | kfree(codec->ac97); |
| 1970 | codec->ac97 = NULL; | 1966 | codec->ac97 = NULL; |
| 1971 | mutex_unlock(&codec->mutex); | ||
| 1972 | return -ENOMEM; | 1967 | return -ENOMEM; |
| 1973 | } | 1968 | } |
| 1974 | 1969 | ||
| @@ -1981,7 +1976,6 @@ int snd_soc_new_ac97_codec(struct snd_soc_codec *codec, | |||
| 1981 | */ | 1976 | */ |
| 1982 | codec->ac97_created = 1; | 1977 | codec->ac97_created = 1; |
| 1983 | 1978 | ||
| 1984 | mutex_unlock(&codec->mutex); | ||
| 1985 | return 0; | 1979 | return 0; |
| 1986 | } | 1980 | } |
| 1987 | EXPORT_SYMBOL_GPL(snd_soc_new_ac97_codec); | 1981 | EXPORT_SYMBOL_GPL(snd_soc_new_ac97_codec); |
| @@ -2151,7 +2145,6 @@ EXPORT_SYMBOL_GPL(snd_soc_set_ac97_ops_of_reset); | |||
| 2151 | */ | 2145 | */ |
| 2152 | void snd_soc_free_ac97_codec(struct snd_soc_codec *codec) | 2146 | void snd_soc_free_ac97_codec(struct snd_soc_codec *codec) |
| 2153 | { | 2147 | { |
| 2154 | mutex_lock(&codec->mutex); | ||
| 2155 | #ifdef CONFIG_SND_SOC_AC97_BUS | 2148 | #ifdef CONFIG_SND_SOC_AC97_BUS |
| 2156 | soc_unregister_ac97_codec(codec); | 2149 | soc_unregister_ac97_codec(codec); |
| 2157 | #endif | 2150 | #endif |
| @@ -2159,7 +2152,6 @@ void snd_soc_free_ac97_codec(struct snd_soc_codec *codec) | |||
| 2159 | kfree(codec->ac97); | 2152 | kfree(codec->ac97); |
| 2160 | codec->ac97 = NULL; | 2153 | codec->ac97 = NULL; |
| 2161 | codec->ac97_created = 0; | 2154 | codec->ac97_created = 0; |
| 2162 | mutex_unlock(&codec->mutex); | ||
| 2163 | } | 2155 | } |
| 2164 | EXPORT_SYMBOL_GPL(snd_soc_free_ac97_codec); | 2156 | EXPORT_SYMBOL_GPL(snd_soc_free_ac97_codec); |
| 2165 | 2157 | ||
| @@ -2876,9 +2868,10 @@ int snd_soc_put_volsw_range(struct snd_kcontrol *kcontrol, | |||
| 2876 | unsigned int val, val_mask; | 2868 | unsigned int val, val_mask; |
| 2877 | int ret; | 2869 | int ret; |
| 2878 | 2870 | ||
| 2879 | val = ((ucontrol->value.integer.value[0] + min) & mask); | ||
| 2880 | if (invert) | 2871 | if (invert) |
| 2881 | val = max - val; | 2872 | val = (max - ucontrol->value.integer.value[0]) & mask; |
| 2873 | else | ||
| 2874 | val = ((ucontrol->value.integer.value[0] + min) & mask); | ||
| 2882 | val_mask = mask << shift; | 2875 | val_mask = mask << shift; |
| 2883 | val = val << shift; | 2876 | val = val << shift; |
| 2884 | 2877 | ||
| @@ -2887,9 +2880,10 @@ int snd_soc_put_volsw_range(struct snd_kcontrol *kcontrol, | |||
| 2887 | return ret; | 2880 | return ret; |
| 2888 | 2881 | ||
| 2889 | if (snd_soc_volsw_is_stereo(mc)) { | 2882 | if (snd_soc_volsw_is_stereo(mc)) { |
| 2890 | val = ((ucontrol->value.integer.value[1] + min) & mask); | ||
| 2891 | if (invert) | 2883 | if (invert) |
| 2892 | val = max - val; | 2884 | val = (max - ucontrol->value.integer.value[1]) & mask; |
| 2885 | else | ||
| 2886 | val = ((ucontrol->value.integer.value[1] + min) & mask); | ||
| 2893 | val_mask = mask << shift; | 2887 | val_mask = mask << shift; |
| 2894 | val = val << shift; | 2888 | val = val << shift; |
| 2895 | 2889 | ||
| @@ -2934,8 +2928,9 @@ int snd_soc_get_volsw_range(struct snd_kcontrol *kcontrol, | |||
| 2934 | if (invert) | 2928 | if (invert) |
| 2935 | ucontrol->value.integer.value[0] = | 2929 | ucontrol->value.integer.value[0] = |
| 2936 | max - ucontrol->value.integer.value[0]; | 2930 | max - ucontrol->value.integer.value[0]; |
| 2937 | ucontrol->value.integer.value[0] = | 2931 | else |
| 2938 | ucontrol->value.integer.value[0] - min; | 2932 | ucontrol->value.integer.value[0] = |
| 2933 | ucontrol->value.integer.value[0] - min; | ||
| 2939 | 2934 | ||
| 2940 | if (snd_soc_volsw_is_stereo(mc)) { | 2935 | if (snd_soc_volsw_is_stereo(mc)) { |
| 2941 | ret = snd_soc_component_read(component, rreg, &val); | 2936 | ret = snd_soc_component_read(component, rreg, &val); |
| @@ -2946,8 +2941,9 @@ int snd_soc_get_volsw_range(struct snd_kcontrol *kcontrol, | |||
| 2946 | if (invert) | 2941 | if (invert) |
| 2947 | ucontrol->value.integer.value[1] = | 2942 | ucontrol->value.integer.value[1] = |
| 2948 | max - ucontrol->value.integer.value[1]; | 2943 | max - ucontrol->value.integer.value[1]; |
| 2949 | ucontrol->value.integer.value[1] = | 2944 | else |
| 2950 | ucontrol->value.integer.value[1] - min; | 2945 | ucontrol->value.integer.value[1] = |
| 2946 | ucontrol->value.integer.value[1] - min; | ||
| 2951 | } | 2947 | } |
| 2952 | 2948 | ||
| 2953 | return 0; | 2949 | return 0; |
