Loading sound/soc/codecs/es8328.c +17 −8 Original line number Diff line number Diff line Loading @@ -85,7 +85,15 @@ static const DECLARE_TLV_DB_SCALE(pga_tlv, 0, 300, 0); static const DECLARE_TLV_DB_SCALE(bypass_tlv, -1500, 300, 0); static const DECLARE_TLV_DB_SCALE(mic_tlv, 0, 300, 0); static const int deemph_settings[] = { 0, 32000, 44100, 48000 }; static const struct { int rate; unsigned int val; } deemph_settings[] = { { 0, ES8328_DACCONTROL6_DEEMPH_OFF }, { 32000, ES8328_DACCONTROL6_DEEMPH_32k }, { 44100, ES8328_DACCONTROL6_DEEMPH_44_1k }, { 48000, ES8328_DACCONTROL6_DEEMPH_48k }, }; static int es8328_set_deemph(struct snd_soc_codec *codec) { Loading @@ -97,21 +105,22 @@ static int es8328_set_deemph(struct snd_soc_codec *codec) * rate. */ if (es8328->deemph) { best = 1; for (i = 2; i < ARRAY_SIZE(deemph_settings); i++) { if (abs(deemph_settings[i] - es8328->playback_fs) < abs(deemph_settings[best] - es8328->playback_fs)) best = 0; for (i = 1; i < ARRAY_SIZE(deemph_settings); i++) { if (abs(deemph_settings[i].rate - es8328->playback_fs) < abs(deemph_settings[best].rate - es8328->playback_fs)) best = i; } val = best << 1; val = deemph_settings[best].val; } else { val = 0; val = ES8328_DACCONTROL6_DEEMPH_OFF; } dev_dbg(codec->dev, "Set deemphasis %d\n", val); return snd_soc_update_bits(codec, ES8328_DACCONTROL6, 0x6, val); return snd_soc_update_bits(codec, ES8328_DACCONTROL6, ES8328_DACCONTROL6_DEEMPH_MASK, val); } static int es8328_get_deemph(struct snd_kcontrol *kcontrol, Loading sound/soc/codecs/es8328.h +1 −0 Original line number Diff line number Diff line Loading @@ -153,6 +153,7 @@ int es8328_probe(struct device *dev, struct regmap *regmap); #define ES8328_DACCONTROL6_CLICKFREE (1 << 3) #define ES8328_DACCONTROL6_DAC_INVR (1 << 4) #define ES8328_DACCONTROL6_DAC_INVL (1 << 5) #define ES8328_DACCONTROL6_DEEMPH_MASK (3 << 6) #define ES8328_DACCONTROL6_DEEMPH_OFF (0 << 6) #define ES8328_DACCONTROL6_DEEMPH_32k (1 << 6) #define ES8328_DACCONTROL6_DEEMPH_44_1k (2 << 6) Loading sound/soc/codecs/sgtl5000.c +1 −0 Original line number Diff line number Diff line Loading @@ -189,6 +189,7 @@ static int power_vag_event(struct snd_soc_dapm_widget *w, case SND_SOC_DAPM_POST_PMU: snd_soc_update_bits(codec, SGTL5000_CHIP_ANA_POWER, SGTL5000_VAG_POWERUP, SGTL5000_VAG_POWERUP); msleep(400); break; case SND_SOC_DAPM_PRE_PMD: Loading sound/soc/codecs/wm8974.c +1 −0 Original line number Diff line number Diff line Loading @@ -574,6 +574,7 @@ static const struct regmap_config wm8974_regmap = { .max_register = WM8974_MONOMIX, .reg_defaults = wm8974_reg_defaults, .num_reg_defaults = ARRAY_SIZE(wm8974_reg_defaults), .cache_type = REGCACHE_FLAT, }; static int wm8974_probe(struct snd_soc_codec *codec) Loading sound/soc/davinci/davinci-mcasp.c +2 −2 Original line number Diff line number Diff line Loading @@ -223,8 +223,8 @@ static void mcasp_start_tx(struct davinci_mcasp *mcasp) /* wait for XDATA to be cleared */ cnt = 0; while (!(mcasp_get_reg(mcasp, DAVINCI_MCASP_TXSTAT_REG) & ~XRDATA) && (cnt < 100000)) while ((mcasp_get_reg(mcasp, DAVINCI_MCASP_TXSTAT_REG) & XRDATA) && (cnt < 100000)) cnt++; /* Release TX state machine */ Loading Loading
sound/soc/codecs/es8328.c +17 −8 Original line number Diff line number Diff line Loading @@ -85,7 +85,15 @@ static const DECLARE_TLV_DB_SCALE(pga_tlv, 0, 300, 0); static const DECLARE_TLV_DB_SCALE(bypass_tlv, -1500, 300, 0); static const DECLARE_TLV_DB_SCALE(mic_tlv, 0, 300, 0); static const int deemph_settings[] = { 0, 32000, 44100, 48000 }; static const struct { int rate; unsigned int val; } deemph_settings[] = { { 0, ES8328_DACCONTROL6_DEEMPH_OFF }, { 32000, ES8328_DACCONTROL6_DEEMPH_32k }, { 44100, ES8328_DACCONTROL6_DEEMPH_44_1k }, { 48000, ES8328_DACCONTROL6_DEEMPH_48k }, }; static int es8328_set_deemph(struct snd_soc_codec *codec) { Loading @@ -97,21 +105,22 @@ static int es8328_set_deemph(struct snd_soc_codec *codec) * rate. */ if (es8328->deemph) { best = 1; for (i = 2; i < ARRAY_SIZE(deemph_settings); i++) { if (abs(deemph_settings[i] - es8328->playback_fs) < abs(deemph_settings[best] - es8328->playback_fs)) best = 0; for (i = 1; i < ARRAY_SIZE(deemph_settings); i++) { if (abs(deemph_settings[i].rate - es8328->playback_fs) < abs(deemph_settings[best].rate - es8328->playback_fs)) best = i; } val = best << 1; val = deemph_settings[best].val; } else { val = 0; val = ES8328_DACCONTROL6_DEEMPH_OFF; } dev_dbg(codec->dev, "Set deemphasis %d\n", val); return snd_soc_update_bits(codec, ES8328_DACCONTROL6, 0x6, val); return snd_soc_update_bits(codec, ES8328_DACCONTROL6, ES8328_DACCONTROL6_DEEMPH_MASK, val); } static int es8328_get_deemph(struct snd_kcontrol *kcontrol, Loading
sound/soc/codecs/es8328.h +1 −0 Original line number Diff line number Diff line Loading @@ -153,6 +153,7 @@ int es8328_probe(struct device *dev, struct regmap *regmap); #define ES8328_DACCONTROL6_CLICKFREE (1 << 3) #define ES8328_DACCONTROL6_DAC_INVR (1 << 4) #define ES8328_DACCONTROL6_DAC_INVL (1 << 5) #define ES8328_DACCONTROL6_DEEMPH_MASK (3 << 6) #define ES8328_DACCONTROL6_DEEMPH_OFF (0 << 6) #define ES8328_DACCONTROL6_DEEMPH_32k (1 << 6) #define ES8328_DACCONTROL6_DEEMPH_44_1k (2 << 6) Loading
sound/soc/codecs/sgtl5000.c +1 −0 Original line number Diff line number Diff line Loading @@ -189,6 +189,7 @@ static int power_vag_event(struct snd_soc_dapm_widget *w, case SND_SOC_DAPM_POST_PMU: snd_soc_update_bits(codec, SGTL5000_CHIP_ANA_POWER, SGTL5000_VAG_POWERUP, SGTL5000_VAG_POWERUP); msleep(400); break; case SND_SOC_DAPM_PRE_PMD: Loading
sound/soc/codecs/wm8974.c +1 −0 Original line number Diff line number Diff line Loading @@ -574,6 +574,7 @@ static const struct regmap_config wm8974_regmap = { .max_register = WM8974_MONOMIX, .reg_defaults = wm8974_reg_defaults, .num_reg_defaults = ARRAY_SIZE(wm8974_reg_defaults), .cache_type = REGCACHE_FLAT, }; static int wm8974_probe(struct snd_soc_codec *codec) Loading
sound/soc/davinci/davinci-mcasp.c +2 −2 Original line number Diff line number Diff line Loading @@ -223,8 +223,8 @@ static void mcasp_start_tx(struct davinci_mcasp *mcasp) /* wait for XDATA to be cleared */ cnt = 0; while (!(mcasp_get_reg(mcasp, DAVINCI_MCASP_TXSTAT_REG) & ~XRDATA) && (cnt < 100000)) while ((mcasp_get_reg(mcasp, DAVINCI_MCASP_TXSTAT_REG) & XRDATA) && (cnt < 100000)) cnt++; /* Release TX state machine */ Loading