Steve,

I looked at the patch 1875 in MV Pro 5.0 kernel and that indeed seems to be 
fixing the same issue. The disposition on the patch says "needs submitting to 
linux-arm-kernel", so I assume you plan to submit it to arm linux mailing list 
soon. Since the issue is getting fixed upstream, we can drop including this 
patch in DaVinci GIT

________________________________________
From: Steve Chen [EMAIL PROTECTED]
Sent: Friday, October 31, 2008 4:56 PM
To: Medisetty, Naresh
Cc: [email protected]
Subject: Re: [PATCH] ARM: DaVinci: Audio: Fix the audio stall problem when      
doing full-duplex

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