[alsa-devel] [PATCH] ASoC: S3C: Fix PCM RX FIFO settings

Jassi Brar jassisinghbrar at gmail.com
Wed Sep 8 11:48:14 CEST 2010


On Wed, Sep 8, 2010 at 5:51 PM, Seungwhan Youn <sw.youn at samsung.com> wrote:
> When PCM capture, sound recorded abnormally because of RX FIFO
> threshold settings are missing. So, This patch modify PCM RX FIFO
> setting codes same as TX.
>
> Signed-off-by: Seungwhan Youn <sw.youn at samsung.com>
> ---
>  sound/soc/s3c24xx/s3c-pcm.c |    3 +++
>  sound/soc/s3c24xx/s3c-pcm.h |    3 ++-
>  2 files changed, 5 insertions(+), 1 deletions(-)
>
> diff --git a/sound/soc/s3c24xx/s3c-pcm.c b/sound/soc/s3c24xx/s3c-pcm.c
> index 43dcc6b..deaa3f2 100644
> --- a/sound/soc/s3c24xx/s3c-pcm.c
> +++ b/sound/soc/s3c24xx/s3c-pcm.c
> @@ -107,11 +107,14 @@ static void s3c_pcm_snd_rxctrl(struct s3c_pcm_info *pcm, int on)
>
>        ctl = readl(regs + S3C_PCM_CTL);
>        clkctl = readl(regs + S3C_PCM_CLKCTL);
> +       ctl &= ~(S3C_PCM_CTL_RXDIPSTICK_MASK
> +                        << S3C_PCM_CTL_RXDIPSTICK_SHIFT);
>
>        if (on) {
>                ctl |= S3C_PCM_CTL_RXDMA_EN;
>                ctl |= S3C_PCM_CTL_RXFIFO_EN;
>                ctl |= S3C_PCM_CTL_ENABLE;
> +               ctl |= (0x20<<S3C_PCM_CTL_RXDIPSTICK_SHIFT);

Yes, the change is needed.
But I think we should use small value as fifo_dipstick (maybe 0x4 ?), because
Fifo is considered:-
    Almost_empty      when      fifo_depth < fifo_dipstick
   Almost_full             when      fifo_depth > (32 – fifo_dipstick)

And, please modify for TX as well.


More information about the Alsa-devel mailing list