Naresh,

This patch seem to derived from patch level 1875 of the Monta Vista
tree.  If you can attach the original patch header, it would be much
appreciated.

Regards,

Steve

On Fri, 2008-10-31 at 01:59, [EMAIL PROTECTED] wrote:
> From: Naresh Medisetty <[EMAIL PROTECTED]>
> 
> Fixes the audio stall problem when doing playback and capture at the same 
> time.
> 
> 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);


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

Reply via email to