[alsa-devel] [PATCH] ASoC: samsung: Fix IISMOD setting in i2s_set_sysclk()
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);
i2s->rfs = rfs; break;
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
participants (2)
-
Padma Venkat
-
Sylwester Nawrocki