[EMAIL PROTECTED] writes:

> From: Naresh Medisetty <[EMAIL PROTECTED]>
>
> Fixes the audio stall problem when doing playback and capture at the same 
> time.
>

Naresh,

This DaVinci ASoC driver is in mainline.  Please submit these two ASoc
patches to the alsa-devel list (and CC here.)  If it gets accepted
there, I will also merge it into DaVinci git until I merge again with
mainline.

Kevin

> Signed-off-by: Naresh Medisetty <[EMAIL PROTECTED]>
> ---
>  sound/soc/davinci/davinci-i2s.c |   35 ++++++++++++++++++++++++-----------
>  1 files changed, 24 insertions(+), 11 deletions(-)
>
> diff --git a/sound/soc/davinci/davinci-i2s.c b/sound/soc/davinci/davinci-i2s.c
> index d8279ad..8b29463 100644
> --- a/sound/soc/davinci/davinci-i2s.c
> +++ b/sound/soc/davinci/davinci-i2s.c
> @@ -262,17 +262,30 @@ static int davinci_i2s_hw_params(struct 
> snd_pcm_substream *substream,
>       u32 w;
>  
>       /* general line settings */
> -     davinci_mcbsp_write_reg(dev, DAVINCI_MCBSP_SPCR_REG,
> -                             DAVINCI_MCBSP_SPCR_RINTM(3) |
> -                             DAVINCI_MCBSP_SPCR_XINTM(3) |
> -                             DAVINCI_MCBSP_SPCR_FREE);
> -     davinci_mcbsp_write_reg(dev, DAVINCI_MCBSP_RCR_REG,
> -                             DAVINCI_MCBSP_RCR_RFRLEN1(1) |
> -                             DAVINCI_MCBSP_RCR_RDATDLY(1));
> -     davinci_mcbsp_write_reg(dev, DAVINCI_MCBSP_XCR_REG,
> -                             DAVINCI_MCBSP_XCR_XFRLEN1(1) |
> -                             DAVINCI_MCBSP_XCR_XDATDLY(1) |
> -                             DAVINCI_MCBSP_XCR_XFIG);
> +     if (substream->stream == SNDRV_PCM_STREAM_CAPTURE) {
> +
> +             w = davinci_mcbsp_read_reg(dev, DAVINCI_MCBSP_SPCR_REG);
> +             w |= (DAVINCI_MCBSP_SPCR_RINTM(3) | DAVINCI_MCBSP_SPCR_FREE);
> +             davinci_mcbsp_write_reg(dev, DAVINCI_MCBSP_SPCR_REG, w);
> +
> +             w = davinci_mcbsp_read_reg(dev, DAVINCI_MCBSP_RCR_REG);
> +             w |= (DAVINCI_MCBSP_RCR_RFRLEN1(1) |
> +                                     DAVINCI_MCBSP_RCR_RDATDLY(1));
> +             davinci_mcbsp_write_reg(dev, DAVINCI_MCBSP_RCR_REG, w);
> +
> +     } else {
> +
> +             w = davinci_mcbsp_read_reg(dev, DAVINCI_MCBSP_SPCR_REG);
> +             w |= DAVINCI_MCBSP_SPCR_XINTM(3) | DAVINCI_MCBSP_SPCR_FREE;
> +             davinci_mcbsp_write_reg(dev, DAVINCI_MCBSP_SPCR_REG, w);
> +
> +             w = davinci_mcbsp_read_reg(dev, DAVINCI_MCBSP_XCR_REG);
> +             w |= (DAVINCI_MCBSP_XCR_XFRLEN1(1) |
> +                                     DAVINCI_MCBSP_XCR_XDATDLY(1) |
> +                                     DAVINCI_MCBSP_XCR_XFIG);
> +             davinci_mcbsp_write_reg(dev, DAVINCI_MCBSP_XCR_REG, w);
> +
> +     }
>  
>       i = hw_param_interval(params, SNDRV_PCM_HW_PARAM_SAMPLE_BITS);
>       w = davinci_mcbsp_read_reg(dev, DAVINCI_MCBSP_SRGR_REG);
> -- 
> 1.5.4.1
>
> _______________________________________________
> Davinci-linux-open-source mailing list
> [email protected]
> http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to