Message ID | 1416420664-20952-1-git-send-email-s.nawrocki@samsung.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Sylwester, On 11/19/14, Sylwester Nawrocki <s.nawrocki@samsung.com> wrote: > In the i2s_set_sysclk() callback we are currently clearing all bits > of the IISMOD register when clk_id is SAMSUNG_I2S_CDCLK and dir > is SND_SOC_CLOCK_OUT. It's due to an incorrect mask used for the AND > operation and breaks the I2S interface operation when we attempt to > use the CDCLK output clock. > > It fixes commit a5a56871f804edac93a53b5e871c0e9818fb9033 > ("ASoC: samsung: add support for exynos7 I2S controller") and restores > sound support for Odroid X2/U3. > > Cc: Padmavathi Venna <padma.v@samsung.com> > Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com> > --- > sound/soc/samsung/i2s.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/sound/soc/samsung/i2s.c b/sound/soc/samsung/i2s.c > index 947352d..8db8c66 100644 > --- a/sound/soc/samsung/i2s.c > +++ b/sound/soc/samsung/i2s.c > @@ -494,7 +494,7 @@ static int i2s_set_sysclk(struct snd_soc_dai *dai, > if (dir == SND_SOC_CLOCK_IN) > mod |= 1 << i2s_regs->cdclkcon_off; > else > - mod &= 0 << i2s_regs->cdclkcon_off; > + mod &= ~(1 << i2s_regs->cdclkcon_off); Thanks for pointing this. In my local machine it was properly done but while rebasing on linux-next I did some mistake. There is one more place in set_sysclk which need to be corrected here mod &= 0 << i2s_regs->rclksrc_off can you include this change also in your patch or should I post a new patch for all? Thanks Padma > i2s->rfs = rfs; > break; > -- > 1.7.9.5 > > _______________________________________________ > Alsa-devel mailing list > Alsa-devel@alsa-project.org > http://mailman.alsa-project.org/mailman/listinfo/alsa-devel >
Hi, On 20/11/14 08:04, Padma Venkat wrote: >> diff --git a/sound/soc/samsung/i2s.c b/sound/soc/samsung/i2s.c >> > index 947352d..8db8c66 100644 >> > --- a/sound/soc/samsung/i2s.c >> > +++ b/sound/soc/samsung/i2s.c >> > @@ -494,7 +494,7 @@ static int i2s_set_sysclk(struct snd_soc_dai *dai, >> > if (dir == SND_SOC_CLOCK_IN) >> > mod |= 1 << i2s_regs->cdclkcon_off; >> > else >> > - mod &= 0 << i2s_regs->cdclkcon_off; >> > + mod &= ~(1 << i2s_regs->cdclkcon_off); > > Thanks for pointing this. In my local machine it was properly done but > while rebasing on linux-next I did some mistake. There is one more > place in set_sysclk which need to be corrected here > mod &= 0 << i2s_regs->rclksrc_off > can you include this change also in your patch or should I post a new > patch for all? OK, I'll also correct this and resend the patch.
Hi Sylwester, On 11/20/14, Sylwester Nawrocki <s.nawrocki@samsung.com> wrote: > Hi, > > On 20/11/14 08:04, Padma Venkat wrote: >>> diff --git a/sound/soc/samsung/i2s.c b/sound/soc/samsung/i2s.c >>> > index 947352d..8db8c66 100644 >>> > --- a/sound/soc/samsung/i2s.c >>> > +++ b/sound/soc/samsung/i2s.c >>> > @@ -494,7 +494,7 @@ static int i2s_set_sysclk(struct snd_soc_dai *dai, >>> > if (dir == SND_SOC_CLOCK_IN) >>> > mod |= 1 << i2s_regs->cdclkcon_off; >>> > else >>> > - mod &= 0 << i2s_regs->cdclkcon_off; >>> > + mod &= ~(1 << i2s_regs->cdclkcon_off); >> >> Thanks for pointing this. In my local machine it was properly done but >> while rebasing on linux-next I did some mistake. There is one more >> place in set_sysclk which need to be corrected here >> mod &= 0 << i2s_regs->rclksrc_off >> can you include this change also in your patch or should I post a new >> patch for all? > > OK, I'll also correct this and resend the patch. As I found one more break statement missing. So posted a new patch with all corrected code with your signed-off. Please do review of the same. Thanks for you support. Padma > > -- > Regards, > Sylwester >
diff --git a/sound/soc/samsung/i2s.c b/sound/soc/samsung/i2s.c index 947352d..8db8c66 100644 --- a/sound/soc/samsung/i2s.c +++ b/sound/soc/samsung/i2s.c @@ -494,7 +494,7 @@ static int i2s_set_sysclk(struct snd_soc_dai *dai, if (dir == SND_SOC_CLOCK_IN) mod |= 1 << i2s_regs->cdclkcon_off; else - mod &= 0 << i2s_regs->cdclkcon_off; + mod &= ~(1 << i2s_regs->cdclkcon_off); i2s->rfs = rfs; break;
In the i2s_set_sysclk() callback we are currently clearing all bits of the IISMOD register when clk_id is SAMSUNG_I2S_CDCLK and dir is SND_SOC_CLOCK_OUT. It's due to an incorrect mask used for the AND operation and breaks the I2S interface operation when we attempt to use the CDCLK output clock. It fixes commit a5a56871f804edac93a53b5e871c0e9818fb9033 ("ASoC: samsung: add support for exynos7 I2S controller") and restores sound support for Odroid X2/U3. Cc: Padmavathi Venna <padma.v@samsung.com> Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com> --- sound/soc/samsung/i2s.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)