From 950de5aeb55536c0bbfe5e646dc8e929a290c4b9 Mon Sep 17 00:00:00 2001 From: Chris Fries Date: Thu, 14 Oct 2010 16:30:05 -0500 Subject: [PATCH] [ARM] tegra: stingray: set bus with on i2s playback to 32 bits -- Change Stingray STDAC's I2S to be 32 bits, packed, to avoid left/right audio swaps. Signed-off-by: Iliyan Malchev --- arch/arm/mach-tegra/board-stingray.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/arch/arm/mach-tegra/board-stingray.c b/arch/arm/mach-tegra/board-stingray.c index 1d58e54f4623..064efbe4929f 100644 --- a/arch/arm/mach-tegra/board-stingray.c +++ b/arch/arm/mach-tegra/board-stingray.c @@ -275,8 +275,10 @@ static struct tegra_audio_platform_data tegra_audio_pdata = { .dap_clk = "clk_dev1", .audio_sync_clk = "audio_2x", .mode = I2S_BIT_FORMAT_I2S, - .fifo_fmt = I2S_FIFO_16_LSB, + .fifo_fmt = I2S_FIFO_PACKED, .bit_size = I2S_BIT_SIZE_16, + .i2s_bus_width = 32, /* Using Packed 16 bit data, the dma is 32 bit. */ + .dsp_bus_width = 16, /* When using DSP mode (unused), this should be 16 bit. */ }; /* Connected to CPCAP CODEC - Switchable to Bluetooth Audio. */ @@ -287,8 +289,16 @@ static struct tegra_audio_platform_data tegra_audio2_pdata = { .dap_clk = "clk_dev1", .audio_sync_clk = "audio_2x", .mode = I2S_BIT_FORMAT_I2S, + /* TODO: Figure out how to capture data without left/right swaps, + * or capture mono. + * nVidia reports packed 16 bit I2S capture isn't working right. + * Check for Bluetooth SCO impact before changing. + * Also change I2S bus width to match. + */ .fifo_fmt = I2S_FIFO_16_LSB, .bit_size = I2S_BIT_SIZE_16, + .i2s_bus_width = 16, /* Using 16 bit LSB format data, the dma is 16 bit. */ + .dsp_bus_width = 16, /* When using DSP mode, this should be 16 bit. */ }; static char *usb_functions_mtp[] = { "mtp" }; -- 2.34.1