summaryrefslogtreecommitdiff
path: root/target/linux/brcm2708/patches-3.10/0122-ASoC-BCM2708-Add-24-bit-support.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm2708/patches-3.10/0122-ASoC-BCM2708-Add-24-bit-support.patch')
-rw-r--r--target/linux/brcm2708/patches-3.10/0122-ASoC-BCM2708-Add-24-bit-support.patch77
1 files changed, 0 insertions, 77 deletions
diff --git a/target/linux/brcm2708/patches-3.10/0122-ASoC-BCM2708-Add-24-bit-support.patch b/target/linux/brcm2708/patches-3.10/0122-ASoC-BCM2708-Add-24-bit-support.patch
deleted file mode 100644
index 358cba8..0000000
--- a/target/linux/brcm2708/patches-3.10/0122-ASoC-BCM2708-Add-24-bit-support.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From 0d1bc8d7dd1f6abce818484285872975865217f4 Mon Sep 17 00:00:00 2001
-From: Florian Meier <florian.meier@koalo.de>
-Date: Fri, 6 Dec 2013 18:55:53 +0100
-Subject: [PATCH 122/196] ASoC: BCM2708: Add 24 bit support
-
-This adds 24 bit support to the I2S driver of the BCM2708.
-Besides enabling the 24 bit flags, it includes two bug fixes:
-
-MMAP is not supported. Claiming this leads to strange issues
-when the format of driver and file do not match.
-
-The datasheet states that the width extension bit should be set
-for widths greater than 24, but greater or equal would be correct.
-This follows from the definition of the width field.
-
-Signed-off-by: Florian Meier <florian.meier@koalo.de>
----
- sound/soc/bcm/bcm2708-i2s.c | 13 +++++++++----
- 1 file changed, 9 insertions(+), 4 deletions(-)
-
-diff --git a/sound/soc/bcm/bcm2708-i2s.c b/sound/soc/bcm/bcm2708-i2s.c
-index ebaf3d6..a179216 100644
---- a/sound/soc/bcm/bcm2708-i2s.c
-+++ b/sound/soc/bcm/bcm2708-i2s.c
-@@ -346,6 +346,10 @@ static int bcm2708_i2s_hw_params(struct snd_pcm_substream *substream,
- data_length = 16;
- bclk_ratio = 40;
- break;
-+ case SNDRV_PCM_FORMAT_S24_LE:
-+ data_length = 24;
-+ bclk_ratio = 40;
-+ break;
- case SNDRV_PCM_FORMAT_S32_LE:
- data_length = 32;
- bclk_ratio = 80;
-@@ -424,7 +428,7 @@ static int bcm2708_i2s_hw_params(struct snd_pcm_substream *substream,
- /* Setup the frame format */
- format = BCM2708_I2S_CHEN;
-
-- if (data_length > 24)
-+ if (data_length >= 24)
- format |= BCM2708_I2S_CHWEX;
-
- format |= BCM2708_I2S_CHWID((data_length-8)&0xf);
-@@ -714,6 +718,7 @@ static struct snd_soc_dai_driver bcm2708_i2s_dai = {
- .channels_max = 2,
- .rates = SNDRV_PCM_RATE_8000_192000,
- .formats = SNDRV_PCM_FMTBIT_S16_LE
-+ | SNDRV_PCM_FMTBIT_S24_LE
- | SNDRV_PCM_FMTBIT_S32_LE
- },
- .capture = {
-@@ -721,6 +726,7 @@ static struct snd_soc_dai_driver bcm2708_i2s_dai = {
- .channels_max = 2,
- .rates = SNDRV_PCM_RATE_8000_192000,
- .formats = SNDRV_PCM_FMTBIT_S16_LE
-+ | SNDRV_PCM_FMTBIT_S24_LE
- | SNDRV_PCM_FMTBIT_S32_LE
- },
- .ops = &bcm2708_i2s_dai_ops,
-@@ -810,11 +816,10 @@ static void bcm2708_i2s_setup_gpio(void)
- }
-
- static const struct snd_pcm_hardware bcm2708_pcm_hardware = {
-- .info = SNDRV_PCM_INFO_MMAP |
-- SNDRV_PCM_INFO_MMAP_VALID |
-- SNDRV_PCM_INFO_INTERLEAVED |
-+ .info = SNDRV_PCM_INFO_INTERLEAVED |
- SNDRV_PCM_INFO_JOINT_DUPLEX,
- .formats = SNDRV_PCM_FMTBIT_S16_LE |
-+ SNDRV_PCM_FMTBIT_S24_LE |
- SNDRV_PCM_FMTBIT_S32_LE,
- .period_bytes_min = 32,
- .period_bytes_max = 64 * PAGE_SIZE,
---
-1.9.1
-