From 20477d024e2f65e601cca3365e0d967e5ce9b5c1 Mon Sep 17 00:00:00 2001 From: Michael Sevakis Date: Wed, 19 Nov 2008 03:12:34 +0000 Subject: Gigabeat S: Fix PCM being cut off at the beginning. The DAC L-R swapping isn't needed now either. Fixes voice clips on the Gigabeat S. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19141 a1c6a512-1295-4272-9138-f99709370657 --- firmware/drivers/audio/wm8978.c | 3 +-- firmware/target/arm/imx31/gigabeat-s/pcm-imx31.c | 4 +++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/firmware/drivers/audio/wm8978.c b/firmware/drivers/audio/wm8978.c index 31248db545..c50500356a 100644 --- a/firmware/drivers/audio/wm8978.c +++ b/firmware/drivers/audio/wm8978.c @@ -223,8 +223,7 @@ void audiohw_postinit(void) /* 8. Enable other outputs as required */ /* 9. Set remaining registers */ - wmc_write(WMC_AUDIO_INTERFACE, WMC_WL_16 | WMC_FMT_I2S - | WMC_DACLRSWAP | WMC_ADCLRSWAP); + wmc_write(WMC_AUDIO_INTERFACE, WMC_WL_16 | WMC_FMT_I2S); wmc_write(WMC_DAC_CONTROL, WMC_DACOSR_128 | WMC_AMUTE); /* Specific to HW clocking */ diff --git a/firmware/target/arm/imx31/gigabeat-s/pcm-imx31.c b/firmware/target/arm/imx31/gigabeat-s/pcm-imx31.c index 3820f2ba56..ed3650cd60 100644 --- a/firmware/target/arm/imx31/gigabeat-s/pcm-imx31.c +++ b/firmware/target/arm/imx31/gigabeat-s/pcm-imx31.c @@ -215,11 +215,13 @@ static void play_start_pcm(void) dma_play_data.state = 1; /* Fill the FIFO or start when data is used up */ + SSI_SCR1 |= SSI_SCR_SSIEN; /* Enable SSI */ + while (1) { if (SSI_SFCSR_TFCNT0r(SSI_SFCSR1) > 6 || dma_play_data.size == 0) { - SSI_SCR1 |= (SSI_SCR_TE | SSI_SCR_SSIEN); /* Start transmitting */ + SSI_SCR1 |= SSI_SCR_TE; /* Start transmitting */ return; } -- cgit v1.2.3