diff mbox

[1/1] mx27_3ds: Add sound support

Message ID 1344258447-6162-1-git-send-email-gcembed@gmail.com
State New
Headers show

Commit Message

Gaëtan Carlier Aug. 6, 2012, 1:07 p.m. UTC
Hi,
I have ported code "Enable sound on mx31_3ds" from Philippe Rétornaz to
MX27 3DS platform on master branch of linux-next (tag next-20120806).
I also applied patch "dma: imx-dma: Fix kernel crash due to missing clock
conversion" of Fabio Estevam which is not yet merged in linux-next.
Thanks to them, everything is working good on MX27 3DS platform except that
sound is played too fast.
Which parameter must be adjusted to have sound playing at normal speed ?
In mc13783 codec driver, imx_add_imx_ssi(), clock configuration in
mach-mx27_3ds file ?

Thanks for your help.

Signed-off-by: Gaëtan Carlier <gcembed@gmail.com>
---
 arch/arm/mach-imx/Kconfig         |    1 +
 arch/arm/mach-imx/mach-mx27_3ds.c |   19 ++++++++++++++++++-
 2 files changed, 19 insertions(+), 1 deletions(-)

Comments

Fabio Estevam Aug. 6, 2012, 1:36 p.m. UTC | #1
Hi Gaëtan,

On Mon, Aug 6, 2012 at 10:07 AM, Gaëtan Carlier <gcembed@gmail.com> wrote:
> Hi,
> I have ported code "Enable sound on mx31_3ds" from Philippe Rétornaz to
> MX27 3DS platform on master branch of linux-next (tag next-20120806).
> I also applied patch "dma: imx-dma: Fix kernel crash due to missing clock
> conversion" of Fabio Estevam which is not yet merged in linux-next.
> Thanks to them, everything is working good on MX27 3DS platform except that
> sound is played too fast.
> Which parameter must be adjusted to have sound playing at normal speed ?
> In mc13783 codec driver, imx_add_imx_ssi(), clock configuration in
> mach-mx27_3ds file ?
>
> Thanks for your help.
>
> Signed-off-by: Gaëtan Carlier <gcembed@gmail.com>

I have added audio support for mx27pdk:
https://patchwork.kernel.org/patch/1152951/

,and in my tests the audio was played at the correct rate.

Can you please have a try?

What is the sampling rate of your file?

Regards,

Fabio Estevam
Gaëtan Carlier Aug. 6, 2012, 2:24 p.m. UTC | #2
Hi Fabio,
Sorry, I have missed your patch in my email archive. I didn't search the 
right keywords.
I applied your [patch 1/2] (2/2 is already merged) but I have same 
effect. I use aplay with file k3b_error1.wav (Unsigned 8 bit, Rate 8000 
Hz, Mono) and alsa/Front_Left.wav (Signed 16 bit Little Endian, Rate 
48000 Hz, Mono). Two sounds are played too fast.
It is maybe a bad configuration of Alsa (but this is working with kernel 
2.6.22 from Freescale).
Thanks.
Gaëtan.

On 08/06/2012 03:36 PM, Fabio Estevam wrote:
> Hi Gaëtan,
>
> On Mon, Aug 6, 2012 at 10:07 AM, Gaëtan Carlier <gcembed@gmail.com> wrote:
>> Hi,
>> I have ported code "Enable sound on mx31_3ds" from Philippe Rétornaz to
>> MX27 3DS platform on master branch of linux-next (tag next-20120806).
>> I also applied patch "dma: imx-dma: Fix kernel crash due to missing clock
>> conversion" of Fabio Estevam which is not yet merged in linux-next.
>> Thanks to them, everything is working good on MX27 3DS platform except that
>> sound is played too fast.
>> Which parameter must be adjusted to have sound playing at normal speed ?
>> In mc13783 codec driver, imx_add_imx_ssi(), clock configuration in
>> mach-mx27_3ds file ?
>>
>> Thanks for your help.
>>
>> Signed-off-by: Gaëtan Carlier <gcembed@gmail.com>
>
> I have added audio support for mx27pdk:
> https://patchwork.kernel.org/patch/1152951/
>
> ,and in my tests the audio was played at the correct rate.
>
> Can you please have a try?
>
> What is the sampling rate of your file?
>
> Regards,
>
> Fabio Estevam
>
Fabio Estevam Aug. 6, 2012, 2:26 p.m. UTC | #3
On Mon, Aug 6, 2012 at 11:24 AM, Gaëtan Carlier <gcembed@gmail.com> wrote:
> Hi Fabio,
> Sorry, I have missed your patch in my email archive. I didn't search the
> right keywords.
> I applied your [patch 1/2] (2/2 is already merged) but I have same effect. I
> use aplay with file k3b_error1.wav (Unsigned 8 bit, Rate 8000 Hz, Mono) and
> alsa/Front_Left.wav (Signed 16 bit Little Endian, Rate 48000 Hz, Mono). Two
> sounds are played too fast.
> It is maybe a bad configuration of Alsa (but this is working with kernel
> 2.6.22 from Freescale).

Ok, we will need to debug this problem then.

Can you please send me offline these two files?

Regards,

Fabio Estevam
diff mbox

Patch

diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index afd542a..63f64f1 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -302,6 +302,7 @@  config MACH_MX27_3DS
 	select IMX_HAVE_PLATFORM_IMX2_WDT
 	select IMX_HAVE_PLATFORM_IMX_FB
 	select IMX_HAVE_PLATFORM_IMX_I2C
+	select IMX_HAVE_PLATFORM_IMX_SSI
 	select IMX_HAVE_PLATFORM_IMX_KEYPAD
 	select IMX_HAVE_PLATFORM_IMX_UART
 	select IMX_HAVE_PLATFORM_MX2_CAMERA
diff --git a/arch/arm/mach-imx/mach-mx27_3ds.c b/arch/arm/mach-imx/mach-mx27_3ds.c
index 58c24c1..a5d4080 100644
--- a/arch/arm/mach-imx/mach-mx27_3ds.c
+++ b/arch/arm/mach-imx/mach-mx27_3ds.c
@@ -158,6 +158,11 @@  static const int mx27pdk_pins[] __initconst = {
 	PB21_PF_CSI_HSYNC,
 	CSI_PWRDWN | GPIO_GPIO | GPIO_OUT,
 	CSI_RESET | GPIO_GPIO | GPIO_OUT,
+	/* SSI */
+	PC16_PF_SSI4_FS,
+	PC17_PF_SSI4_RXD,
+	PC18_PF_SSI4_TXD,
+	PC19_PF_SSI4_CLK,
 };
 
 static struct gpio mx27_3ds_camera_gpios[] = {
@@ -329,13 +334,23 @@  static struct mc13xxx_regulator_init_data mx27_3ds_regulators[] = {
 };
 
 /* MC13783 */
+static struct mc13xxx_codec_platform_data mx27_3ds_codec = {
+	.dac_ssi_port = MC13783_SSI1_PORT,
+	.adc_ssi_port = MC13783_SSI1_PORT,
+};
+
 static struct mc13xxx_platform_data mc13783_pdata = {
 	.regulators = {
 		.regulators = mx27_3ds_regulators,
 		.num_regulators = ARRAY_SIZE(mx27_3ds_regulators),
 
 	},
-	.flags  = MC13XXX_USE_TOUCHSCREEN | MC13XXX_USE_RTC,
+	.codec = &mx27_3ds_codec,
+	.flags  = MC13XXX_USE_TOUCHSCREEN | MC13XXX_USE_RTC | MC13XXX_USE_CODEC,
+};
+
+static struct imx_ssi_platform_data mx27_3ds_ssi_pdata = {
+		.flags = IMX_SSI_DMA | IMX_SSI_NET,
 };
 
 /* SPI */
@@ -512,6 +527,8 @@  static void __init mx27pdk_init(void)
 	}
 
 	imx27_add_mx2_camera(&mx27_3ds_cam_pdata);
+	imx27_add_imx_ssi(0, &mx27_3ds_ssi_pdata);
+	imx_add_platform_device("imx_mc13783", 0, NULL, 0, NULL, 0);
 }
 
 static void __init mx27pdk_timer_init(void)