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
