Loading include/linux/mfd/arizona/core.h +1 −0 Original line number Diff line number Diff line Loading @@ -141,6 +141,7 @@ struct arizona { uint16_t dac_comp_coeff; uint8_t dac_comp_enabled; struct mutex dac_comp_lock; }; int arizona_clk32k_enable(struct arizona *arizona); Loading include/linux/mfd/davinci_voicecodec.h +0 −7 Original line number Diff line number Diff line Loading @@ -99,12 +99,6 @@ struct davinci_vcif { dma_addr_t dma_rx_addr; }; struct cq93vc { struct platform_device *pdev; struct snd_soc_codec *codec; u32 sysclk; }; struct davinci_vc; struct davinci_vc { Loading @@ -122,7 +116,6 @@ struct davinci_vc { /* Client devices */ struct davinci_vcif davinci_vcif; struct cq93vc cq93vc; }; #endif include/sound/soc.h +0 −1 Original line number Diff line number Diff line Loading @@ -785,7 +785,6 @@ struct snd_soc_codec { struct device *dev; const struct snd_soc_codec_driver *driver; struct mutex mutex; struct list_head list; struct list_head card_list; Loading sound/soc/codecs/ab8500-codec.c +16 −16 Original line number Diff line number Diff line Loading @@ -126,13 +126,13 @@ struct ab8500_codec_drvdata_dbg { /* Private data for AB8500 device-driver */ struct ab8500_codec_drvdata { struct regmap *regmap; struct mutex ctrl_lock; /* Sidetone */ long *sid_fir_values; enum sid_state sid_status; /* ANC */ struct mutex anc_lock; long *anc_fir_values; long *anc_iir_values; enum anc_state anc_status; Loading Loading @@ -1129,9 +1129,9 @@ static int sid_status_control_get(struct snd_kcontrol *kcontrol, struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); struct ab8500_codec_drvdata *drvdata = dev_get_drvdata(codec->dev); mutex_lock(&codec->mutex); mutex_lock(&drvdata->ctrl_lock); ucontrol->value.integer.value[0] = drvdata->sid_status; mutex_unlock(&codec->mutex); mutex_unlock(&drvdata->ctrl_lock); return 0; } Loading @@ -1154,7 +1154,7 @@ static int sid_status_control_put(struct snd_kcontrol *kcontrol, return -EIO; } mutex_lock(&codec->mutex); mutex_lock(&drvdata->ctrl_lock); sidconf = snd_soc_read(codec, AB8500_SIDFIRCONF); if (((sidconf & BIT(AB8500_SIDFIRCONF_FIRSIDBUSY)) != 0)) { Loading Loading @@ -1185,7 +1185,7 @@ static int sid_status_control_put(struct snd_kcontrol *kcontrol, drvdata->sid_status = SID_FIR_CONFIGURED; out: mutex_unlock(&codec->mutex); mutex_unlock(&drvdata->ctrl_lock); dev_dbg(codec->dev, "%s: Exit\n", __func__); Loading @@ -1198,9 +1198,9 @@ static int anc_status_control_get(struct snd_kcontrol *kcontrol, struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); struct ab8500_codec_drvdata *drvdata = dev_get_drvdata(codec->dev); mutex_lock(&codec->mutex); mutex_lock(&drvdata->ctrl_lock); ucontrol->value.integer.value[0] = drvdata->anc_status; mutex_unlock(&codec->mutex); mutex_unlock(&drvdata->ctrl_lock); return 0; } Loading @@ -1217,7 +1217,7 @@ static int anc_status_control_put(struct snd_kcontrol *kcontrol, dev_dbg(dev, "%s: Enter.\n", __func__); mutex_lock(&drvdata->anc_lock); mutex_lock(&drvdata->ctrl_lock); req = ucontrol->value.integer.value[0]; if (req >= ARRAY_SIZE(enum_anc_state)) { Loading @@ -1244,9 +1244,7 @@ static int anc_status_control_put(struct snd_kcontrol *kcontrol, } snd_soc_dapm_sync(&codec->dapm); mutex_lock(&codec->mutex); anc_configure(codec, apply_fir, apply_iir); mutex_unlock(&codec->mutex); if (apply_fir) { if (drvdata->anc_status == ANC_IIR_CONFIGURED) Loading @@ -1265,7 +1263,7 @@ static int anc_status_control_put(struct snd_kcontrol *kcontrol, snd_soc_dapm_sync(&codec->dapm); cleanup: mutex_unlock(&drvdata->anc_lock); mutex_unlock(&drvdata->ctrl_lock); if (status < 0) dev_err(dev, "%s: Unable to configure ANC! (status = %d)\n", Loading Loading @@ -1294,14 +1292,15 @@ static int filter_control_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); struct ab8500_codec_drvdata *drvdata = snd_soc_codec_get_drvdata(codec); struct filter_control *fc = (struct filter_control *)kcontrol->private_value; unsigned int i; mutex_lock(&codec->mutex); mutex_lock(&drvdata->ctrl_lock); for (i = 0; i < fc->count; i++) ucontrol->value.integer.value[i] = fc->value[i]; mutex_unlock(&codec->mutex); mutex_unlock(&drvdata->ctrl_lock); return 0; } Loading @@ -1310,14 +1309,15 @@ static int filter_control_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); struct ab8500_codec_drvdata *drvdata = snd_soc_codec_get_drvdata(codec); struct filter_control *fc = (struct filter_control *)kcontrol->private_value; unsigned int i; mutex_lock(&codec->mutex); mutex_lock(&drvdata->ctrl_lock); for (i = 0; i < fc->count; i++) fc->value[i] = ucontrol->value.integer.value[i]; mutex_unlock(&codec->mutex); mutex_unlock(&drvdata->ctrl_lock); return 0; } Loading Loading @@ -2545,7 +2545,7 @@ static int ab8500_codec_probe(struct snd_soc_codec *codec) (void)snd_soc_dapm_disable_pin(&codec->dapm, "ANC Configure Input"); mutex_init(&drvdata->anc_lock); mutex_init(&drvdata->ctrl_lock); return status; } Loading sound/soc/codecs/arizona.c +2 −2 Original line number Diff line number Diff line Loading @@ -1185,13 +1185,13 @@ static void arizona_wm5102_set_dac_comp(struct snd_soc_codec *codec, { 0x80, 0x0 }, }; mutex_lock(&codec->mutex); mutex_lock(&arizona->dac_comp_lock); dac_comp[1].def = arizona->dac_comp_coeff; if (rate >= 176400) dac_comp[2].def = arizona->dac_comp_enabled; mutex_unlock(&codec->mutex); mutex_unlock(&arizona->dac_comp_lock); regmap_multi_reg_write(arizona->regmap, dac_comp, Loading Loading
include/linux/mfd/arizona/core.h +1 −0 Original line number Diff line number Diff line Loading @@ -141,6 +141,7 @@ struct arizona { uint16_t dac_comp_coeff; uint8_t dac_comp_enabled; struct mutex dac_comp_lock; }; int arizona_clk32k_enable(struct arizona *arizona); Loading
include/linux/mfd/davinci_voicecodec.h +0 −7 Original line number Diff line number Diff line Loading @@ -99,12 +99,6 @@ struct davinci_vcif { dma_addr_t dma_rx_addr; }; struct cq93vc { struct platform_device *pdev; struct snd_soc_codec *codec; u32 sysclk; }; struct davinci_vc; struct davinci_vc { Loading @@ -122,7 +116,6 @@ struct davinci_vc { /* Client devices */ struct davinci_vcif davinci_vcif; struct cq93vc cq93vc; }; #endif
include/sound/soc.h +0 −1 Original line number Diff line number Diff line Loading @@ -785,7 +785,6 @@ struct snd_soc_codec { struct device *dev; const struct snd_soc_codec_driver *driver; struct mutex mutex; struct list_head list; struct list_head card_list; Loading
sound/soc/codecs/ab8500-codec.c +16 −16 Original line number Diff line number Diff line Loading @@ -126,13 +126,13 @@ struct ab8500_codec_drvdata_dbg { /* Private data for AB8500 device-driver */ struct ab8500_codec_drvdata { struct regmap *regmap; struct mutex ctrl_lock; /* Sidetone */ long *sid_fir_values; enum sid_state sid_status; /* ANC */ struct mutex anc_lock; long *anc_fir_values; long *anc_iir_values; enum anc_state anc_status; Loading Loading @@ -1129,9 +1129,9 @@ static int sid_status_control_get(struct snd_kcontrol *kcontrol, struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); struct ab8500_codec_drvdata *drvdata = dev_get_drvdata(codec->dev); mutex_lock(&codec->mutex); mutex_lock(&drvdata->ctrl_lock); ucontrol->value.integer.value[0] = drvdata->sid_status; mutex_unlock(&codec->mutex); mutex_unlock(&drvdata->ctrl_lock); return 0; } Loading @@ -1154,7 +1154,7 @@ static int sid_status_control_put(struct snd_kcontrol *kcontrol, return -EIO; } mutex_lock(&codec->mutex); mutex_lock(&drvdata->ctrl_lock); sidconf = snd_soc_read(codec, AB8500_SIDFIRCONF); if (((sidconf & BIT(AB8500_SIDFIRCONF_FIRSIDBUSY)) != 0)) { Loading Loading @@ -1185,7 +1185,7 @@ static int sid_status_control_put(struct snd_kcontrol *kcontrol, drvdata->sid_status = SID_FIR_CONFIGURED; out: mutex_unlock(&codec->mutex); mutex_unlock(&drvdata->ctrl_lock); dev_dbg(codec->dev, "%s: Exit\n", __func__); Loading @@ -1198,9 +1198,9 @@ static int anc_status_control_get(struct snd_kcontrol *kcontrol, struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); struct ab8500_codec_drvdata *drvdata = dev_get_drvdata(codec->dev); mutex_lock(&codec->mutex); mutex_lock(&drvdata->ctrl_lock); ucontrol->value.integer.value[0] = drvdata->anc_status; mutex_unlock(&codec->mutex); mutex_unlock(&drvdata->ctrl_lock); return 0; } Loading @@ -1217,7 +1217,7 @@ static int anc_status_control_put(struct snd_kcontrol *kcontrol, dev_dbg(dev, "%s: Enter.\n", __func__); mutex_lock(&drvdata->anc_lock); mutex_lock(&drvdata->ctrl_lock); req = ucontrol->value.integer.value[0]; if (req >= ARRAY_SIZE(enum_anc_state)) { Loading @@ -1244,9 +1244,7 @@ static int anc_status_control_put(struct snd_kcontrol *kcontrol, } snd_soc_dapm_sync(&codec->dapm); mutex_lock(&codec->mutex); anc_configure(codec, apply_fir, apply_iir); mutex_unlock(&codec->mutex); if (apply_fir) { if (drvdata->anc_status == ANC_IIR_CONFIGURED) Loading @@ -1265,7 +1263,7 @@ static int anc_status_control_put(struct snd_kcontrol *kcontrol, snd_soc_dapm_sync(&codec->dapm); cleanup: mutex_unlock(&drvdata->anc_lock); mutex_unlock(&drvdata->ctrl_lock); if (status < 0) dev_err(dev, "%s: Unable to configure ANC! (status = %d)\n", Loading Loading @@ -1294,14 +1292,15 @@ static int filter_control_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); struct ab8500_codec_drvdata *drvdata = snd_soc_codec_get_drvdata(codec); struct filter_control *fc = (struct filter_control *)kcontrol->private_value; unsigned int i; mutex_lock(&codec->mutex); mutex_lock(&drvdata->ctrl_lock); for (i = 0; i < fc->count; i++) ucontrol->value.integer.value[i] = fc->value[i]; mutex_unlock(&codec->mutex); mutex_unlock(&drvdata->ctrl_lock); return 0; } Loading @@ -1310,14 +1309,15 @@ static int filter_control_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); struct ab8500_codec_drvdata *drvdata = snd_soc_codec_get_drvdata(codec); struct filter_control *fc = (struct filter_control *)kcontrol->private_value; unsigned int i; mutex_lock(&codec->mutex); mutex_lock(&drvdata->ctrl_lock); for (i = 0; i < fc->count; i++) fc->value[i] = ucontrol->value.integer.value[i]; mutex_unlock(&codec->mutex); mutex_unlock(&drvdata->ctrl_lock); return 0; } Loading Loading @@ -2545,7 +2545,7 @@ static int ab8500_codec_probe(struct snd_soc_codec *codec) (void)snd_soc_dapm_disable_pin(&codec->dapm, "ANC Configure Input"); mutex_init(&drvdata->anc_lock); mutex_init(&drvdata->ctrl_lock); return status; } Loading
sound/soc/codecs/arizona.c +2 −2 Original line number Diff line number Diff line Loading @@ -1185,13 +1185,13 @@ static void arizona_wm5102_set_dac_comp(struct snd_soc_codec *codec, { 0x80, 0x0 }, }; mutex_lock(&codec->mutex); mutex_lock(&arizona->dac_comp_lock); dac_comp[1].def = arizona->dac_comp_coeff; if (rate >= 176400) dac_comp[2].def = arizona->dac_comp_enabled; mutex_unlock(&codec->mutex); mutex_unlock(&arizona->dac_comp_lock); regmap_multi_reg_write(arizona->regmap, dac_comp, Loading