Loading sound/soc/amd/acp-pcm-dma.c +14 −8 Original line number Original line Diff line number Diff line Loading @@ -1036,16 +1036,22 @@ static snd_pcm_uframes_t acp_dma_pointer(struct snd_pcm_substream *substream) if (substream->stream == SNDRV_PCM_STREAM_CAPTURE) { if (substream->stream == SNDRV_PCM_STREAM_CAPTURE) { period_bytes = frames_to_bytes(runtime, runtime->period_size); period_bytes = frames_to_bytes(runtime, runtime->period_size); bytescount = acp_get_byte_count(rtd); if (bytescount >= rtd->bytescount) bytescount -= rtd->bytescount; if (bytescount < period_bytes) { pos = 0; } else { dscr = acp_reg_read(rtd->acp_mmio, rtd->dma_curr_dscr); dscr = acp_reg_read(rtd->acp_mmio, rtd->dma_curr_dscr); if (dscr == rtd->dma_dscr_idx_1) if (dscr == rtd->dma_dscr_idx_1) pos = period_bytes; pos = period_bytes; else else pos = 0; pos = 0; bytescount = acp_get_byte_count(rtd); } if (bytescount > rtd->bytescount) if (bytescount > 0) { bytescount -= rtd->bytescount; delay = do_div(bytescount, period_bytes); delay = do_div(bytescount, period_bytes); runtime->delay = bytes_to_frames(runtime, delay); runtime->delay = bytes_to_frames(runtime, delay); } } else { } else { buffersize = frames_to_bytes(runtime, runtime->buffer_size); buffersize = frames_to_bytes(runtime, runtime->buffer_size); bytescount = acp_get_byte_count(rtd); bytescount = acp_get_byte_count(rtd); Loading sound/soc/codecs/rt5514-spi.c +8 −6 Original line number Original line Diff line number Diff line Loading @@ -91,6 +91,14 @@ static void rt5514_spi_copy_work(struct work_struct *work) runtime = rt5514_dsp->substream->runtime; runtime = rt5514_dsp->substream->runtime; period_bytes = snd_pcm_lib_period_bytes(rt5514_dsp->substream); period_bytes = snd_pcm_lib_period_bytes(rt5514_dsp->substream); if (!period_bytes) { schedule_delayed_work(&rt5514_dsp->copy_work, 5); goto done; } if (rt5514_dsp->buf_size % period_bytes) rt5514_dsp->buf_size = (rt5514_dsp->buf_size / period_bytes) * period_bytes; if (rt5514_dsp->get_size >= rt5514_dsp->buf_size) { if (rt5514_dsp->get_size >= rt5514_dsp->buf_size) { rt5514_spi_burst_read(RT5514_BUFFER_VOICE_WP, (u8 *)&buf, rt5514_spi_burst_read(RT5514_BUFFER_VOICE_WP, (u8 *)&buf, Loading Loading @@ -149,13 +157,11 @@ static void rt5514_spi_copy_work(struct work_struct *work) static void rt5514_schedule_copy(struct rt5514_dsp *rt5514_dsp) static void rt5514_schedule_copy(struct rt5514_dsp *rt5514_dsp) { { size_t period_bytes; u8 buf[8]; u8 buf[8]; if (!rt5514_dsp->substream) if (!rt5514_dsp->substream) return; return; period_bytes = snd_pcm_lib_period_bytes(rt5514_dsp->substream); rt5514_dsp->get_size = 0; rt5514_dsp->get_size = 0; /** /** Loading Loading @@ -183,10 +189,6 @@ static void rt5514_schedule_copy(struct rt5514_dsp *rt5514_dsp) rt5514_dsp->buf_size = rt5514_dsp->buf_limit - rt5514_dsp->buf_base; rt5514_dsp->buf_size = rt5514_dsp->buf_limit - rt5514_dsp->buf_base; if (rt5514_dsp->buf_size % period_bytes) rt5514_dsp->buf_size = (rt5514_dsp->buf_size / period_bytes) * period_bytes; if (rt5514_dsp->buf_base && rt5514_dsp->buf_limit && if (rt5514_dsp->buf_base && rt5514_dsp->buf_limit && rt5514_dsp->buf_rp && rt5514_dsp->buf_size) rt5514_dsp->buf_rp && rt5514_dsp->buf_size) schedule_delayed_work(&rt5514_dsp->copy_work, 0); schedule_delayed_work(&rt5514_dsp->copy_work, 0); Loading sound/soc/codecs/rt5682.c +0 −5 Original line number Original line Diff line number Diff line Loading @@ -749,7 +749,6 @@ static bool rt5682_readable_register(struct device *dev, unsigned int reg) } } } } static const DECLARE_TLV_DB_SCALE(hp_vol_tlv, -2250, 150, 0); static const DECLARE_TLV_DB_SCALE(dac_vol_tlv, -6525, 75, 0); static const DECLARE_TLV_DB_SCALE(dac_vol_tlv, -6525, 75, 0); static const DECLARE_TLV_DB_SCALE(adc_vol_tlv, -1725, 75, 0); static const DECLARE_TLV_DB_SCALE(adc_vol_tlv, -1725, 75, 0); static const DECLARE_TLV_DB_SCALE(adc_bst_tlv, 0, 1200, 0); static const DECLARE_TLV_DB_SCALE(adc_bst_tlv, 0, 1200, 0); Loading Loading @@ -1108,10 +1107,6 @@ static void rt5682_jack_detect_handler(struct work_struct *work) } } static const struct snd_kcontrol_new rt5682_snd_controls[] = { static const struct snd_kcontrol_new rt5682_snd_controls[] = { /* Headphone Output Volume */ SOC_DOUBLE_R_TLV("Headphone Playback Volume", RT5682_HPL_GAIN, RT5682_HPR_GAIN, RT5682_G_HP_SFT, 15, 1, hp_vol_tlv), /* DAC Digital Volume */ /* DAC Digital Volume */ SOC_DOUBLE_TLV("DAC1 Playback Volume", RT5682_DAC1_DIG_VOL, SOC_DOUBLE_TLV("DAC1 Playback Volume", RT5682_DAC1_DIG_VOL, RT5682_L_VOL_SFT + 1, RT5682_R_VOL_SFT + 1, 86, 0, dac_vol_tlv), RT5682_L_VOL_SFT + 1, RT5682_R_VOL_SFT + 1, 86, 0, dac_vol_tlv), Loading sound/soc/codecs/sta32x.c +3 −0 Original line number Original line Diff line number Diff line Loading @@ -879,6 +879,9 @@ static int sta32x_probe(struct snd_soc_component *component) struct sta32x_priv *sta32x = snd_soc_component_get_drvdata(component); struct sta32x_priv *sta32x = snd_soc_component_get_drvdata(component); struct sta32x_platform_data *pdata = sta32x->pdata; struct sta32x_platform_data *pdata = sta32x->pdata; int i, ret = 0, thermal = 0; int i, ret = 0, thermal = 0; sta32x->component = component; ret = regulator_bulk_enable(ARRAY_SIZE(sta32x->supplies), ret = regulator_bulk_enable(ARRAY_SIZE(sta32x->supplies), sta32x->supplies); sta32x->supplies); if (ret != 0) { if (ret != 0) { Loading Loading
sound/soc/amd/acp-pcm-dma.c +14 −8 Original line number Original line Diff line number Diff line Loading @@ -1036,16 +1036,22 @@ static snd_pcm_uframes_t acp_dma_pointer(struct snd_pcm_substream *substream) if (substream->stream == SNDRV_PCM_STREAM_CAPTURE) { if (substream->stream == SNDRV_PCM_STREAM_CAPTURE) { period_bytes = frames_to_bytes(runtime, runtime->period_size); period_bytes = frames_to_bytes(runtime, runtime->period_size); bytescount = acp_get_byte_count(rtd); if (bytescount >= rtd->bytescount) bytescount -= rtd->bytescount; if (bytescount < period_bytes) { pos = 0; } else { dscr = acp_reg_read(rtd->acp_mmio, rtd->dma_curr_dscr); dscr = acp_reg_read(rtd->acp_mmio, rtd->dma_curr_dscr); if (dscr == rtd->dma_dscr_idx_1) if (dscr == rtd->dma_dscr_idx_1) pos = period_bytes; pos = period_bytes; else else pos = 0; pos = 0; bytescount = acp_get_byte_count(rtd); } if (bytescount > rtd->bytescount) if (bytescount > 0) { bytescount -= rtd->bytescount; delay = do_div(bytescount, period_bytes); delay = do_div(bytescount, period_bytes); runtime->delay = bytes_to_frames(runtime, delay); runtime->delay = bytes_to_frames(runtime, delay); } } else { } else { buffersize = frames_to_bytes(runtime, runtime->buffer_size); buffersize = frames_to_bytes(runtime, runtime->buffer_size); bytescount = acp_get_byte_count(rtd); bytescount = acp_get_byte_count(rtd); Loading
sound/soc/codecs/rt5514-spi.c +8 −6 Original line number Original line Diff line number Diff line Loading @@ -91,6 +91,14 @@ static void rt5514_spi_copy_work(struct work_struct *work) runtime = rt5514_dsp->substream->runtime; runtime = rt5514_dsp->substream->runtime; period_bytes = snd_pcm_lib_period_bytes(rt5514_dsp->substream); period_bytes = snd_pcm_lib_period_bytes(rt5514_dsp->substream); if (!period_bytes) { schedule_delayed_work(&rt5514_dsp->copy_work, 5); goto done; } if (rt5514_dsp->buf_size % period_bytes) rt5514_dsp->buf_size = (rt5514_dsp->buf_size / period_bytes) * period_bytes; if (rt5514_dsp->get_size >= rt5514_dsp->buf_size) { if (rt5514_dsp->get_size >= rt5514_dsp->buf_size) { rt5514_spi_burst_read(RT5514_BUFFER_VOICE_WP, (u8 *)&buf, rt5514_spi_burst_read(RT5514_BUFFER_VOICE_WP, (u8 *)&buf, Loading Loading @@ -149,13 +157,11 @@ static void rt5514_spi_copy_work(struct work_struct *work) static void rt5514_schedule_copy(struct rt5514_dsp *rt5514_dsp) static void rt5514_schedule_copy(struct rt5514_dsp *rt5514_dsp) { { size_t period_bytes; u8 buf[8]; u8 buf[8]; if (!rt5514_dsp->substream) if (!rt5514_dsp->substream) return; return; period_bytes = snd_pcm_lib_period_bytes(rt5514_dsp->substream); rt5514_dsp->get_size = 0; rt5514_dsp->get_size = 0; /** /** Loading Loading @@ -183,10 +189,6 @@ static void rt5514_schedule_copy(struct rt5514_dsp *rt5514_dsp) rt5514_dsp->buf_size = rt5514_dsp->buf_limit - rt5514_dsp->buf_base; rt5514_dsp->buf_size = rt5514_dsp->buf_limit - rt5514_dsp->buf_base; if (rt5514_dsp->buf_size % period_bytes) rt5514_dsp->buf_size = (rt5514_dsp->buf_size / period_bytes) * period_bytes; if (rt5514_dsp->buf_base && rt5514_dsp->buf_limit && if (rt5514_dsp->buf_base && rt5514_dsp->buf_limit && rt5514_dsp->buf_rp && rt5514_dsp->buf_size) rt5514_dsp->buf_rp && rt5514_dsp->buf_size) schedule_delayed_work(&rt5514_dsp->copy_work, 0); schedule_delayed_work(&rt5514_dsp->copy_work, 0); Loading
sound/soc/codecs/rt5682.c +0 −5 Original line number Original line Diff line number Diff line Loading @@ -749,7 +749,6 @@ static bool rt5682_readable_register(struct device *dev, unsigned int reg) } } } } static const DECLARE_TLV_DB_SCALE(hp_vol_tlv, -2250, 150, 0); static const DECLARE_TLV_DB_SCALE(dac_vol_tlv, -6525, 75, 0); static const DECLARE_TLV_DB_SCALE(dac_vol_tlv, -6525, 75, 0); static const DECLARE_TLV_DB_SCALE(adc_vol_tlv, -1725, 75, 0); static const DECLARE_TLV_DB_SCALE(adc_vol_tlv, -1725, 75, 0); static const DECLARE_TLV_DB_SCALE(adc_bst_tlv, 0, 1200, 0); static const DECLARE_TLV_DB_SCALE(adc_bst_tlv, 0, 1200, 0); Loading Loading @@ -1108,10 +1107,6 @@ static void rt5682_jack_detect_handler(struct work_struct *work) } } static const struct snd_kcontrol_new rt5682_snd_controls[] = { static const struct snd_kcontrol_new rt5682_snd_controls[] = { /* Headphone Output Volume */ SOC_DOUBLE_R_TLV("Headphone Playback Volume", RT5682_HPL_GAIN, RT5682_HPR_GAIN, RT5682_G_HP_SFT, 15, 1, hp_vol_tlv), /* DAC Digital Volume */ /* DAC Digital Volume */ SOC_DOUBLE_TLV("DAC1 Playback Volume", RT5682_DAC1_DIG_VOL, SOC_DOUBLE_TLV("DAC1 Playback Volume", RT5682_DAC1_DIG_VOL, RT5682_L_VOL_SFT + 1, RT5682_R_VOL_SFT + 1, 86, 0, dac_vol_tlv), RT5682_L_VOL_SFT + 1, RT5682_R_VOL_SFT + 1, 86, 0, dac_vol_tlv), Loading
sound/soc/codecs/sta32x.c +3 −0 Original line number Original line Diff line number Diff line Loading @@ -879,6 +879,9 @@ static int sta32x_probe(struct snd_soc_component *component) struct sta32x_priv *sta32x = snd_soc_component_get_drvdata(component); struct sta32x_priv *sta32x = snd_soc_component_get_drvdata(component); struct sta32x_platform_data *pdata = sta32x->pdata; struct sta32x_platform_data *pdata = sta32x->pdata; int i, ret = 0, thermal = 0; int i, ret = 0, thermal = 0; sta32x->component = component; ret = regulator_bulk_enable(ARRAY_SIZE(sta32x->supplies), ret = regulator_bulk_enable(ARRAY_SIZE(sta32x->supplies), sta32x->supplies); sta32x->supplies); if (ret != 0) { if (ret != 0) { Loading