summaryrefslogtreecommitdiff
path: root/packages/linux/linux-rp-2.6.17
diff options
context:
space:
mode:
Diffstat (limited to 'packages/linux/linux-rp-2.6.17')
-rw-r--r--packages/linux/linux-rp-2.6.17/.mtn2git_empty0
-rw-r--r--packages/linux/linux-rp-2.6.17/00-hostap.patch45
-rw-r--r--packages/linux/linux-rp-2.6.17/10-pcnet.patch27
-rw-r--r--packages/linux/linux-rp-2.6.17/add-oz-release-string.patch24
-rw-r--r--packages/linux/linux-rp-2.6.17/asoc-v0.12.4_2.6.17.patch31713
-rw-r--r--packages/linux/linux-rp-2.6.17/connectplus-remove-ide-HACK.patch12
-rw-r--r--packages/linux/linux-rp-2.6.17/defconfig-akita1572
-rw-r--r--packages/linux/linux-rp-2.6.17/defconfig-c7x01608
-rw-r--r--packages/linux/linux-rp-2.6.17/defconfig-collie1641
-rw-r--r--packages/linux/linux-rp-2.6.17/defconfig-hx20001028
-rw-r--r--packages/linux/linux-rp-2.6.17/defconfig-poodle1655
-rw-r--r--packages/linux/linux-rp-2.6.17/defconfig-qemuarm1190
-rw-r--r--packages/linux/linux-rp-2.6.17/defconfig-qemux861562
-rw-r--r--packages/linux/linux-rp-2.6.17/defconfig-spitz1603
-rw-r--r--packages/linux/linux-rp-2.6.17/defconfig-tosa1609
-rw-r--r--packages/linux/linux-rp-2.6.17/hrw-pcmcia-ids-r5.patch63
-rw-r--r--packages/linux/linux-rp-2.6.17/orinoco-remove-all-which-are-in-hostap-HACK.patch88
-rw-r--r--packages/linux/linux-rp-2.6.17/pxa-serial-hack.patch73
-rw-r--r--packages/linux/linux-rp-2.6.17/serial-add-support-for-non-standard-xtals-to-16c950-driver.patch155
-rw-r--r--packages/linux/linux-rp-2.6.17/squashfs3.0-2.6.15.patch4174
-rw-r--r--packages/linux/linux-rp-2.6.17/tosa-lcdnoise-r0.patch157
-rw-r--r--packages/linux/linux-rp-2.6.17/vesafb-tng-1.0-rc2-git-20060629.patch3089
-rw-r--r--packages/linux/linux-rp-2.6.17/wm9712-reset-loop-r2.patch44
-rw-r--r--packages/linux/linux-rp-2.6.17/wm9712-suspend-cold-res-r2.patch16
-rw-r--r--packages/linux/linux-rp-2.6.17/wm97xx-lcdnoise-r0.patch208
25 files changed, 0 insertions, 53356 deletions
diff --git a/packages/linux/linux-rp-2.6.17/.mtn2git_empty b/packages/linux/linux-rp-2.6.17/.mtn2git_empty
deleted file mode 100644
index e69de29bb2..0000000000
--- a/packages/linux/linux-rp-2.6.17/.mtn2git_empty
+++ /dev/null
diff --git a/packages/linux/linux-rp-2.6.17/00-hostap.patch b/packages/linux/linux-rp-2.6.17/00-hostap.patch
deleted file mode 100644
index 20432b404a..0000000000
--- a/packages/linux/linux-rp-2.6.17/00-hostap.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-Platform: Sharp Zaurus C760 running 2.6.16 and pcmciautils 013.
-
-root@c7x0:~# pccardctl ident
-Socket 0:
- product info: "Pretec", "CompactWLAN Card 802.11b", "2.5"
- manfid: 0x0156, 0x0002
- function: 6 (network)
-
-==========================================================================
-From: Jochen Friedrich
-
-Yet another card known to work OK with hostap_cs:
-
-# pccardctl ident
-Socket 0:
- no product info available
-Socket 1:
- product info: "U.S. Robotics", "IEEE 802.11b PC-CARD", "Version 01.02", ""
- manfid: 0x0156, 0x0002
- function: 6 (network)
-
-==========================================================================
-
-Signed-off-by: Marcin Juszkiewicz <openembedded@hrw.one.pl>
-
- drivers/net/wireless/hostap/hostap_cs.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-Index: linux/drivers/net/wireless/hostap/hostap_cs.c
-===================================================================
---- linux.orig/drivers/net/wireless/hostap/hostap_cs.c 2006-05-17 10:23:00.000000000 +0200
-+++ linux/drivers/net/wireless/hostap/hostap_cs.c 2006-05-17 10:25:45.000000000 +0200
-@@ -923,6 +923,12 @@
- PCMCIA_DEVICE_PROD_ID12(
- "ZoomAir 11Mbps High", "Rate wireless Networking",
- 0x273fe3db, 0x32a1eaee),
-+ PCMCIA_DEVICE_PROD_ID123(
-+ "Pretec", "CompactWLAN Card 802.11b", "2.5",
-+ 0x1cadd3e5, 0xe697636c, 0x7a5bfcf1),
-+ PCMCIA_DEVICE_PROD_ID123(
-+ "U.S. Robotics", "IEEE 802.11b PC-CARD", "Version 01.02",
-+ 0xc7b8df9d, 0x1700d087, 0x4b74baa0),
- PCMCIA_DEVICE_NULL
- };
- MODULE_DEVICE_TABLE(pcmcia, hostap_cs_ids);
diff --git a/packages/linux/linux-rp-2.6.17/10-pcnet.patch b/packages/linux/linux-rp-2.6.17/10-pcnet.patch
deleted file mode 100644
index 2e1966e837..0000000000
--- a/packages/linux/linux-rp-2.6.17/10-pcnet.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-
-From: Marcin Juszkiewicz <openembedded@hrw.one.pl>
-
-Add TRENDnet TE-CF100 ethernet adapter to pcnet_cs list.
-
-product info: "Fast Ethernet", "CF Size PC Card", "1.0", ""
- manfid: 0x0149, 0xc1ab
-
-Signed-off-by: Marcin Juszkiewicz <openembedded@hrw.one.pl>
-
- drivers/net/pcmcia/pcnet_cs.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-Index: netdev-2.6/drivers/net/pcmcia/pcnet_cs.c
-===================================================================
---- netdev-2.6.orig/drivers/net/pcmcia/pcnet_cs.c 2006-05-18 11:06:43.294022480 +0200
-+++ netdev-2.6/drivers/net/pcmcia/pcnet_cs.c 2006-05-18 11:10:31.548322552 +0200
-@@ -1768,6 +1768,8 @@
- PCMCIA_DEVICE_CIS_PROD_ID12("NDC", "Ethernet", 0x01c43ae1, 0x00b2e941, "NE2K.cis"),
- PCMCIA_DEVICE_CIS_PROD_ID12("PMX ", "PE-200", 0x34f3f1c8, 0x10b59f8c, "PE-200.cis"),
- PCMCIA_DEVICE_CIS_PROD_ID12("TAMARACK", "Ethernet", 0xcf434fba, 0x00b2e941, "tamarack.cis"),
-+ PCMCIA_DEVICE_PROD_ID123("Fast Ethernet", "CF Size PC Card", "1.0",
-+ 0xb4be14e3, 0x43ac239b, 0x0877b627),
- PCMCIA_DEVICE_NULL
- };
- MODULE_DEVICE_TABLE(pcmcia, pcnet_ids);
-
diff --git a/packages/linux/linux-rp-2.6.17/add-oz-release-string.patch b/packages/linux/linux-rp-2.6.17/add-oz-release-string.patch
deleted file mode 100644
index 22a6fd3943..0000000000
--- a/packages/linux/linux-rp-2.6.17/add-oz-release-string.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-
-#
-# Patch managed by http://www.holgerschurig.de/patcher.html
-#
-
---- linux-2.6.11-rc1/init/version.c~add-oz-release-string
-+++ linux-2.6.11-rc1/init/version.c
-@@ -29,5 +29,5 @@
- EXPORT_SYMBOL(system_utsname);
-
- const char linux_banner[] =
-- "Linux version " UTS_RELEASE " (" LINUX_COMPILE_BY "@"
-+ "Linux version " UTS_RELEASE OPENZAURUS_RELEASE " (" LINUX_COMPILE_BY "@"
- LINUX_COMPILE_HOST ") (" LINUX_COMPILER ") " UTS_VERSION "\n";
---- linux-2.6.11-rc1/Makefile~add-oz-release-string
-+++ linux-2.6.11-rc1/Makefile
-@@ -827,6 +827,7 @@
- exit 1; \
- fi; \
- (echo \#define UTS_RELEASE \"$(KERNELRELEASE)\"; \
-+ echo \#define OPENZAURUS_RELEASE \"$(OPENZAURUS_RELEASE)\"; \
- echo \#define LINUX_VERSION_CODE `expr $(VERSION) \\* 65536 + $(PATCHLEVEL) \\* 256 + $(SUBLEVEL)`; \
- echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))'; \
- )
diff --git a/packages/linux/linux-rp-2.6.17/asoc-v0.12.4_2.6.17.patch b/packages/linux/linux-rp-2.6.17/asoc-v0.12.4_2.6.17.patch
deleted file mode 100644
index 4f9672299b..0000000000
--- a/packages/linux/linux-rp-2.6.17/asoc-v0.12.4_2.6.17.patch
+++ /dev/null
@@ -1,31713 +0,0 @@
-Index: linux-2.6-pxa-new/Documentation/sound/alsa/soc/DAI.txt
-===================================================================
---- /dev/null
-+++ linux-2.6-pxa-new/Documentation/sound/alsa/soc/DAI.txt
-@@ -0,0 +1,546 @@
-+ASoC currently supports the three main Digital Audio Interfaces (DAI) found on
-+SoC controllers and portable audio CODECS today, namely AC97, I2S and PCM.
-+
-+
-+AC97
-+====
-+
-+ AC97 is a five wire interface commonly found on many PC sound cards. It is
-+now also popular in many portable devices. This DAI has a reset line and time
-+multiplexes its data on its SDATA_OUT (playback) and SDATA_IN (capture) lines.
-+The bit clock (BCLK) is always driven by the CODEC (usually 12.288MHz) and the
-+frame (FRAME) (usually 48kHz) is always driven by the controller. Each AC97
-+frame is 21uS long and is divided into 13 time slots.
-+
-+The AC97 specification can be found at :-
-+http://www.intel.com/design/chipsets/audio/ac97_r23.pdf
-+
-+
-+I2S
-+===
-+
-+ I2S is a common 4 wire DAI used in HiFi, STB and portable devices. The Tx and
-+Rx lines are used for audio transmision, whilst the bit clock (BCLK) and
-+left/right clock (LRC) synchronise the link. I2S is flexible in that either the
-+controller or CODEC can drive (master) the BCLK and LRC clock lines. Bit clock
-+usually varies depending on the sample rate and the master system clock
-+(SYSCLK). LRCLK is the same as the sample rate. A few devices support separate
-+ADC and DAC LRCLK's, this allows for similtanious capture and playback at
-+different sample rates.
-+
-+I2S has several different operating modes:-
-+
-+ o I2S - MSB is transmitted on the falling edge of the first BCLK after LRC
-+ transition.
-+
-+ o Left Justified - MSB is transmitted on transition of LRC.
-+
-+ o Right Justified - MSB is transmitted sample size BCLK's before LRC
-+ transition.
-+
-+PCM
-+===
-+
-+PCM is another 4 wire interface, very similar to I2S, that can support a more
-+flexible protocol. It has bit clock (BCLK) and sync (SYNC) lines that are used
-+to synchronise the link whilst the Tx and Rx lines are used to transmit and
-+receive the audio data. Bit clock usually varies depending on sample rate
-+whilst sync runs at the sample rate. PCM also supports Time Division
-+Multiplexing (TDM) in that several devices can use the bus similtaniuosly (This
-+is sometimes referred to as network mode).
-+
-+Common PCM operating modes:-
-+
-+ o Mode A - MSB is transmitted on falling edge of first BCLK after FRAME/SYNC.
-+
-+ o Mode B - MSB is transmitted on rising edge of FRAME/SYNC.
-+
-+
-+ASoC DAI Configuration
-+======================
-+
-+Every CODEC DAI and SoC DAI must have their capabilities defined in order to
-+be configured together at runtime when the audio and clocking parameters are
-+known. This is achieved by creating an array of struct snd_soc_hw_mode in the
-+the CODEC and SoC interface drivers. Each element in the array describes a DAI
-+mode and each mode is usually based upon the DAI system clock to sample rate
-+ratio (FS).
-+
-+i.e. 48k sample rate @ 256 FS = sytem clock of 12.288 MHz
-+ 48000 * 256 = 12288000
-+
-+The CPU and Codec DAI modes are then ANDed together at runtime to determine the
-+rutime DAI configuration for both the Codec and CPU.
-+
-+When creating a new codec or SoC DAI it's probably best to start of with a few
-+sample rates first and then test your interface.
-+
-+struct snd_soc_dai_mode is defined (in soc.h) as:-
-+
-+/* SoC DAI mode */
-+struct snd_soc_dai_mode {
-+ u16 fmt; /* SND_SOC_DAIFMT_* */
-+ u16 tdm; /* SND_SOC_HWTDM_* */
-+ u64 pcmfmt; /* SNDRV_PCM_FMTBIT_* */
-+ u16 pcmrate; /* SND_SOC_HWRATE_* */
-+ u16 pcmdir:2; /* SND_SOC_HWDIR_* */
-+ u16 flags:8; /* hw flags */
-+ u16 fs; /* mclk to rate divider */
-+ u64 bfs; /* mclk to bclk dividers */
-+ unsigned long priv; /* private mode data */
-+};
-+
-+fmt:
-+----
-+This field defines the DAI mode hardware format (e.g. I2S settings) and
-+supports the following settings:-
-+
-+ 1) hardware DAI formats
-+
-+#define SND_SOC_DAIFMT_I2S (1 << 0) /* I2S mode */
-+#define SND_SOC_DAIFMT_RIGHT_J (1 << 1) /* Right justified mode */
-+#define SND_SOC_DAIFMT_LEFT_J (1 << 2) /* Left Justified mode */
-+#define SND_SOC_DAIFMT_DSP_A (1 << 3) /* L data msb after FRM */
-+#define SND_SOC_DAIFMT_DSP_B (1 << 4) /* L data msb during FRM */
-+#define SND_SOC_DAIFMT_AC97 (1 << 5) /* AC97 */
-+
-+ 2) hw DAI signal inversions
-+
-+#define SND_SOC_DAIFMT_NB_NF (1 << 8) /* normal bit clock + frame */
-+#define SND_SOC_DAIFMT_NB_IF (1 << 9) /* normal bclk + inv frm */
-+#define SND_SOC_DAIFMT_IB_NF (1 << 10) /* invert bclk + nor frm */
-+#define SND_SOC_DAIFMT_IB_IF (1 << 11) /* invert bclk + frm */
-+
-+ 3) hw clock masters
-+ This is wrt the codec, the inverse is true for the interface
-+ i.e. if the codec is clk and frm master then the interface is
-+ clk and frame slave.
-+
-+#define SND_SOC_DAIFMT_CBM_CFM (1 << 12) /* codec clk & frm master */
-+#define SND_SOC_DAIFMT_CBS_CFM (1 << 13) /* codec clk slave & frm master */
-+#define SND_SOC_DAIFMT_CBM_CFS (1 << 14) /* codec clk master & frame slave */
-+#define SND_SOC_DAIFMT_CBS_CFS (1 << 15) /* codec clk & frm slave */
-+
-+At least one option from each section must be selected. Multiple selections are
-+also supported e.g.
-+
-+ .fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_LEFT_J | SND_SOC_DAIFMT_RIGHT_J | \
-+ SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_NB_IF | SND_SOC_DAIFMT_IB_NF | \
-+ SND_SOC_DAIFMT_IB_IF
-+
-+
-+tdm:
-+------
-+This field defines the Time Division Multiplexing left and right word
-+positions for the DAI mode if applicable. Set to SND_SOC_DAITDM_LRDW(0,0) for
-+no TDM.
-+
-+
-+pcmfmt:
-+---------
-+The hardware PCM format. This describes the PCM formats supported by the DAI
-+mode e.g.
-+
-+ .pcmfmt = SNDRV_PCM_FORMAT_S16_LE | SNDRV_PCM_FORMAT_S20_3LE | \
-+ SNDRV_PCM_FORMAT_S24_3LE
-+
-+pcmrate:
-+----------
-+The PCM sample rates supported by the DAI mode. e.g.
-+
-+ .pcmrate = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 | SNDRV_PCM_RATE_16000 | \
-+ SNDRV_PCM_RATE_22050 | SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 | \
-+ SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_88200 | SNDRV_PCM_RATE_96000
-+
-+
-+pcmdir:
-+---------
-+The stream directions supported by this mode. e.g. playback and capture
-+
-+
-+flags:
-+--------
-+The DAI hardware flags supported by the mode.
-+
-+/* use bfs mclk divider mode (BCLK = MCLK / x) */
-+#define SND_SOC_DAI_BFS_DIV 0x1
-+/* use bfs rate mulitplier (BCLK = RATE * x)*/
-+#define SND_SOC_DAI_BFS_RATE 0x2
-+/* use bfs rcw multiplier (BCLK = RATE * CHN * WORD SIZE) */
-+#define SND_SOC_DAI_BFS_RCW 0x4
-+/* capture and playback can use different clocks */
-+#define SND_SOC_DAI_ASYNC 0x8
-+
-+NOTE: Bitclock division and mulitiplication modes can be safely matched by the
-+core logic.
-+
-+
-+fs:
-+-----
-+The FS supported by this DAI mode FS is the ratio between the system clock and
-+the sample rate. See above
-+
-+bfs:
-+------
-+BFS is the ratio of BCLK to MCLK or the ratio of BCLK to sample rate (this
-+depends on the codec or CPU DAI).
-+
-+The BFS supported by the DAI mode. This can either be the ratio between the
-+bitclock (BCLK) and the sample rate OR the ratio between the system clock and
-+the sample rate. Depends on the flags above.
-+
-+priv:
-+-----
-+private codec mode data.
-+
-+
-+
-+Examples
-+========
-+
-+Note that Codec DAI and CPU DAI examples are interchangeable in these examples
-+as long as the bus master is reversed. i.e.
-+
-+ SND_SOC_DAIFMT_CBM_CFM would become SND_SOC_DAIFMT_CBS_CFS
-+ and vice versa.
-+
-+This applies to all SND_SOC_DAIFMT_CB*_CF*.
-+
-+Example 1
-+---------
-+
-+Simple codec that only runs at 8k & 48k @ 256FS in master mode, can generate a
-+BCLK of either MCLK/2 or MCLK/4.
-+
-+ /* codec master */
-+ {
-+ .fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBM_CFM,
-+ .pcmfmt = SNDRV_PCM_FORMAT_S16_LE,
-+ .pcmrate = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_48000,
-+ .pcmdir = SND_SOC_DAIDIR_PLAYBACK | SND_SOC_DAIDIR_CAPTURE,
-+ .flags = SND_SOC_DAI_BFS_DIV,
-+ .fs = 256,
-+ .bfs = SND_SOC_FSBD(2) | SND_SOC_FSBD(4),
-+ }
-+
-+
-+Example 2
-+---------
-+Simple codec that only runs at 8k & 48k @ 256FS in master mode, can generate a
-+BCLK of either Rate * 32 or Rate * 64.
-+
-+ /* codec master */
-+ {
-+ .fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBM_CFM,
-+ .pcmfmt = SNDRV_PCM_FORMAT_S16_LE,
-+ .pcmrate = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_48000,
-+ .pcmdir = SND_SOC_DAIDIR_PLAYBACK | SND_SOC_DAIDIR_CAPTURE,
-+ .flags = SND_SOC_DAI_BFS_RATE,
-+ .fs = 256,
-+ .bfs = 32,
-+ },
-+ {
-+ .fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBM_CFM,
-+ .pcmfmt = SNDRV_PCM_FORMAT_S16_LE,
-+ .pcmrate = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_48000,
-+ .pcmdir = SND_SOC_DAIDIR_PLAYBACK | SND_SOC_DAIDIR_CAPTURE,
-+ .flags = SND_SOC_DAI_BFS_RATE,
-+ .fs = 256,
-+ .bfs = 64,
-+ },
-+
-+
-+Example 3
-+---------
-+Codec that runs at 8k & 48k @ 256FS in master mode, can generate a BCLK that
-+is a multiple of Rate * channels * word size. (RCW) i.e.
-+
-+ BCLK = 8000 * 2 * 16 (8k, stereo, 16bit)
-+ = 256kHz
-+
-+This codecs supports a RCW multiple of 1,2
-+
-+ {
-+ .fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBM_CFM,
-+ .pcmfmt = SNDRV_PCM_FORMAT_S16_LE,
-+ .pcmrate = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_48000,
-+ .pcmdir = SND_SOC_DAIDIR_PLAYBACK | SND_SOC_DAIDIR_CAPTURE,
-+ .flags = SND_SOC_DAI_BFS_RCW,
-+ .fs = 256,
-+ .bfs = SND_SOC_FSBW(1) | SND_SOC_FSBW(2),
-+ }
-+
-+
-+Example 4
-+---------
-+Codec that only runs at 8k & 48k @ 256FS in master mode, can generate a
-+BCLK of either Rate * 32 or Rate * 64. Codec can also run in slave mode as long
-+as BCLK is rate * 32 or rate * 64.
-+
-+ /* codec master */
-+ {
-+ .fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBM_CFM,
-+ .pcmfmt = SNDRV_PCM_FORMAT_S16_LE,
-+ .pcmrate = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_48000,
-+ .pcmdir = SND_SOC_DAIDIR_PLAYBACK | SND_SOC_DAIDIR_CAPTURE,
-+ .flags = SND_SOC_DAI_BFS_RATE,
-+ .fs = 256,
-+ .bfs = 32,
-+ },
-+ {
-+ .fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBM_CFM,
-+ .pcmfmt = SNDRV_PCM_FORMAT_S16_LE,
-+ .pcmrate = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_48000,
-+ .pcmdir = SND_SOC_DAIDIR_PLAYBACK | SND_SOC_DAIDIR_CAPTURE,
-+ .flags = SND_SOC_DAI_BFS_RATE,
-+ .fs = 256,
-+ .bfs = 64,
-+ },
-+
-+ /* codec slave */
-+ {
-+ .fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBS_CFS,
-+ .pcmfmt = SNDRV_PCM_FORMAT_S16_LE,
-+ .pcmdir = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_48000,
-+ .pcmdir = SND_SOC_DAIDIR_PLAYBACK | SND_SOC_DAIDIR_CAPTURE,
-+ .flags = SND_SOC_DAI_BFS_RATE,
-+ .fs = SND_SOC_FS_ALL,
-+ .bfs = 32,
-+ },
-+ {
-+ .fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBS_CFS,
-+ .pcmfmt = SNDRV_PCM_FORMAT_S16_LE,
-+ .pcmdir = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_48000,
-+ .pcmdir = SND_SOC_DAIDIR_PLAYBACK | SND_SOC_DAIDIR_CAPTURE,
-+ .flags = SND_SOC_DAI_BFS_RATE,
-+ .fs = SND_SOC_FS_ALL,
-+ .bfs = 64,
-+ },
-+
-+
-+Example 5
-+---------
-+Codec that only runs at 8k, 16k, 32k, 48k, 96k @ 128FS, 192FS & 256FS in master
-+mode and can generate a BCLK of MCLK / (1,2,4,8,16). Codec can also run in slave
-+mode as and does not care about FS or BCLK (as long as there is enough bandwidth).
-+
-+ #define CODEC_FSB \
-+ (SND_SOC_FSBD(1) | SND_SOC_FSBD(2) | SND_SOC_FSBD(4) | \
-+ SND_SOC_FSBD(8) | SND_SOC_FSBD(16))
-+
-+ #define CODEC_RATES \
-+ (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_32000 |\
-+ SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000)
-+
-+ /* codec master @ 128, 192 & 256 FS */
-+ {
-+ .fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBM_CFM,
-+ .pcmfmt = SNDRV_PCM_FORMAT_S16_LE,
-+ .pcmrate = CODEC_RATES,
-+ .pcmdir = SND_SOC_DAIDIR_PLAYBACK | SND_SOC_DAIDIR_CAPTURE,
-+ .flags = SND_SOC_DAI_BFS_DIV,
-+ .fs = 128,
-+ .bfs = CODEC_FSB,
-+ },
-+
-+ {
-+ .fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBM_CFM,
-+ .pcmfmt = SNDRV_PCM_FORMAT_S16_LE,
-+ .pcmrate = CODEC_RATES,
-+ .pcmdir = SND_SOC_DAIDIR_PLAYBACK | SND_SOC_DAIDIR_CAPTURE,
-+ .flags = SND_SOC_DAI_BFS_DIV,
-+ .fs = 192,
-+ .bfs = CODEC_FSB
-+ },
-+
-+ {
-+ .fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBM_CFM,
-+ .pcmfmt = SNDRV_PCM_FORMAT_S16_LE,
-+ .pcmrate = CODEC_RATES,
-+ .pcmdir = SND_SOC_DAIDIR_PLAYBACK | SND_SOC_DAIDIR_CAPTURE,
-+ .flags = SND_SOC_DAI_BFS_DIV,
-+ .fs = 256,
-+ .bfs = CODEC_FSB,
-+ },
-+
-+ /* codec slave */
-+ {
-+ .fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBS_CFS,
-+ .pcmfmt = SNDRV_PCM_FORMAT_S16_LE,
-+ .pcmrate = CODEC_RATES,
-+ .pcmdir = SND_SOC_DAIDIR_PLAYBACK | SND_SOC_DAIDIR_CAPTURE,
-+ .fs = SND_SOC_FS_ALL,
-+ .bfs = SND_SOC_FSB_ALL,
-+ },
-+
-+
-+Example 6
-+---------
-+Codec that only runs at 8k, 44.1k, 48k @ different FS in master mode (for use
-+with a fixed MCLK) and can generate a BCLK of MCLK / (1,2,4,8,16).
-+Codec can also run in slave mode as and does not care about FS or BCLK (as long
-+as there is enough bandwidth). Codec can support 16, 24 and 32 bit PCM sample
-+sizes.
-+
-+ #define CODEC_FSB \
-+ (SND_SOC_FSBD(1) | SND_SOC_FSBD(2) | SND_SOC_FSBD(4) | \
-+ SND_SOC_FSBD(8) | SND_SOC_FSBD(16))
-+
-+ #define CODEC_PCM_FORMATS \
-+ (SNDRV_PCM_FORMAT_S16_LE | SNDRV_PCM_FORMAT_S20_3LE | \
-+ SNDRV_PCM_FORMAT_S24_3LE | SNDRV_PCM_FORMAT_S24_LE | SNDRV_PCM_FORMAT_S32_LE)
-+
-+ /* codec master */
-+ {
-+ .fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBM_CFM,
-+ .pcmfmt = SNDRV_PCM_FORMAT_S16_LE,
-+ .pcmrate = SNDRV_PCM_RATE_8000,
-+ .pcmdir = SND_SOC_DAIDIR_PLAYBACK | SND_SOC_DAIDIR_CAPTURE,
-+ .flags = SND_SOC_DAI_BFS_DIV,
-+ .fs = 1536,
-+ .bfs = CODEC_FSB,
-+ },
-+
-+ {
-+ .fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBM_CFM,
-+ .pcmfmt = SNDRV_PCM_FORMAT_S16_LE,
-+ .pcmrate = SNDRV_PCM_RATE_44100,
-+ .pcmdir = SND_SOC_DAIDIR_PLAYBACK | SND_SOC_DAIDIR_CAPTURE,
-+ .flags = SND_SOC_DAI_BFS_DIV,
-+ .fs = 272,
-+ .bfs = CODEC_FSB,
-+ },
-+
-+ {
-+ .fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBM_CFM,
-+ .pcmfmt = SNDRV_PCM_FORMAT_S16_LE,
-+ .pcmrate = SNDRV_PCM_RATE_48000,
-+ .pcmdir = SND_SOC_DAIDIR_PLAYBACK | SND_SOC_DAIDIR_CAPTURE,
-+ .flags = SND_SOC_DAI_BFS_DIV,
-+ .fs = 256,
-+ .bfs = CODEC_FSB,
-+ },
-+
-+ /* codec slave */
-+ {
-+ .fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBS_CFS,
-+ .pcmfmt = SNDRV_PCM_FORMAT_S16_LE,
-+ .pcmrate = CODEC_RATES,
-+ .pcmdir = SND_SOC_DAIDIR_PLAYBACK | SND_SOC_DAIDIR_CAPTURE,
-+ .fs = SND_SOC_FS_ALL,
-+ .bfs = SND_SOC_FSB_ALL,
-+ },
-+
-+
-+Example 7
-+---------
-+AC97 Codec that does not support VRA (i.e only runs at 48k).
-+
-+ #define AC97_DIR \
-+ (SND_SOC_DAIDIR_PLAYBACK | SND_SOC_DAIDIR_CAPTURE)
-+
-+ #define AC97_PCM_FORMATS \
-+ (SNDRV_PCM_FORMAT_S16_LE | SNDRV_PCM_FORMAT_S18_3LE | \
-+ SNDRV_PCM_FORMAT_S20_3LE)
-+
-+ /* AC97 with no VRA */
-+ {
-+ .pcmfmt = AC97_PCM_FORMATS,
-+ .pcmrate = SNDRV_PCM_RATE_48000,
-+ }
-+
-+
-+Example 8
-+---------
-+
-+CPU DAI that supports 8k - 48k @ 256FS and BCLK = MCLK / 4 in master mode.
-+Slave mode (CPU DAI is FRAME master) supports 8k - 96k at any FS as long as
-+BCLK = 64 * rate. (Intel XScale I2S controller).
-+
-+ #define PXA_I2S_DAIFMT \
-+ (SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_LEFT_J | SND_SOC_DAIFMT_NB_NF)
-+
-+ #define PXA_I2S_DIR \
-+ (SND_SOC_DAIDIR_PLAYBACK | SND_SOC_DAIDIR_CAPTURE)
-+
-+ #define PXA_I2S_RATES \
-+ (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 | SNDRV_PCM_RATE_16000 | \
-+ SNDRV_PCM_RATE_22050 | SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 | \
-+ SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_88200 | SNDRV_PCM_RATE_96000)
-+
-+ /* priv is divider */
-+ static struct snd_soc_dai_mode pxa2xx_i2s_modes[] = {
-+ /* pxa2xx I2S frame and clock master modes */
-+ {
-+ .fmt = PXA_I2S_DAIFMT | SND_SOC_DAIFMT_CBS_CFS,
-+ .pcmfmt = SNDRV_PCM_FMTBIT_S16_LE,
-+ .pcmrate = SNDRV_PCM_RATE_8000,
-+ .pcmdir = PXA_I2S_DIR,
-+ .flags = SND_SOC_DAI_BFS_DIV,
-+ .fs = 256,
-+ .bfs = SND_SOC_FSBD(4),
-+ .priv = 0x48,
-+ },
-+ {
-+ .fmt = PXA_I2S_DAIFMT | SND_SOC_DAIFMT_CBS_CFS,
-+ .pcmfmt = SNDRV_PCM_FMTBIT_S16_LE,
-+ .pcmrate = SNDRV_PCM_RATE_11025,
-+ .pcmdir = PXA_I2S_DIR,
-+ .flags = SND_SOC_DAI_BFS_DIV,
-+ .fs = 256,
-+ .bfs = SND_SOC_FSBD(4),
-+ .priv = 0x34,
-+ },
-+ {
-+ .fmt = PXA_I2S_DAIFMT | SND_SOC_DAIFMT_CBS_CFS,
-+ .pcmfmt = SNDRV_PCM_FMTBIT_S16_LE,
-+ .pcmrate = SNDRV_PCM_RATE_16000,
-+ .pcmdir = PXA_I2S_DIR,
-+ .flags = SND_SOC_DAI_BFS_DIV,
-+ .fs = 256,
-+ .bfs = SND_SOC_FSBD(4),
-+ .priv = 0x24,
-+ },
-+ {
-+ .fmt = PXA_I2S_DAIFMT | SND_SOC_DAIFMT_CBS_CFS,
-+ .pcmfmt = SNDRV_PCM_FMTBIT_S16_LE,
-+ .pcmrate = SNDRV_PCM_RATE_22050,
-+ .pcmdir = PXA_I2S_DIR,
-+ .flags = SND_SOC_DAI_BFS_DIV,
-+ .fs = 256,
-+ .bfs = SND_SOC_FSBD(4),
-+ .priv = 0x1a,
-+ },
-+ {
-+ .fmt = PXA_I2S_DAIFMT | SND_SOC_DAIFMT_CBS_CFS,
-+ .pcmfmt = SNDRV_PCM_FMTBIT_S16_LE,
-+ .pcmrate = SNDRV_PCM_RATE_44100,
-+ .pcmdir = PXA_I2S_DIR,
-+ .flags = SND_SOC_DAI_BFS_DIV,
-+ .fs = 256,
-+ .bfs = SND_SOC_FSBD(4),
-+ .priv = 0xd,
-+ },
-+ {
-+ .fmt = PXA_I2S_DAIFMT | SND_SOC_DAIFMT_CBS_CFS,
-+ .pcmfmt = SNDRV_PCM_FMTBIT_S16_LE,
-+ .pcmrate = SNDRV_PCM_RATE_48000,
-+ .pcmdir = PXA_I2S_DIR,
-+ .flags = SND_SOC_DAI_BFS_DIV,
-+ .fs = 256,
-+ .bfs = SND_SOC_FSBD(4),
-+ .priv = 0xc,
-+ },
-+
-+ /* pxa2xx I2S frame master and clock slave mode */
-+ {
-+ .fmt = PXA_I2S_DAIFMT | SND_SOC_DAIFMT_CBM_CFS,
-+ .pcmfmt = SNDRV_PCM_FMTBIT_S16_LE,
-+ .pcmrate = PXA_I2S_RATES,
-+ .pcmdir = PXA_I2S_DIR,
-+ .fs = SND_SOC_FS_ALL,
-+ .flags = SND_SOC_DAI_BFS_RATE,
-+ .bfs = 64,
-+ .priv = 0x48,
-+ },
-+};
-Index: linux-2.6-pxa-new/Documentation/sound/alsa/soc/clocking.txt
-===================================================================
---- /dev/null
-+++ linux-2.6-pxa-new/Documentation/sound/alsa/soc/clocking.txt
-@@ -0,0 +1,314 @@
-+Audio Clocking
-+==============
-+
-+This text describes the audio clocking terms in ASoC and digital audio in
-+general. Note: Audio clocking can be complex !
-+
-+
-+Master Clock
-+------------
-+
-+Every audio subsystem is driven by a master clock (sometimes refered to as MCLK
-+or SYSCLK). This audio master clock can be derived from a number of sources
-+(e.g. crystal, PLL, CPU clock) and is responsible for producing the correct
-+audio playback and capture sample rates.
-+
-+Some master clocks (e.g. PLL's and CPU based clocks) are configuarble in that
-+their speed can be altered by software (depending on the system use and to save
-+power). Other master clocks are fixed at at set frequency (i.e. crystals).
-+
-+
-+DAI Clocks
-+----------
-+The Digital Audio Interface is usually driven by a Bit Clock (often referred to
-+as BCLK). This clock is used to drive the digital audio data across the link
-+between the codec and CPU.
-+
-+The DAI also has a frame clock to signal the start of each audio frame. This
-+clock is sometimes referred to as LRC (left right clock) or FRAME. This clock
-+runs at exactly the sample rate (LRC = Rate).
-+
-+Bit Clock can be generated as follows:-
-+
-+BCLK = MCLK / x
-+
-+ or
-+
-+BCLK = LRC * x
-+
-+ or
-+
-+BCLK = LRC * Channels * Word Size
-+
-+This relationship depends on the codec or SoC CPU in particular. ASoC can quite
-+easily match BCLK generated by division (SND_SOC_DAI_BFS_DIV) with BCLK by
-+multiplication (SND_SOC_DAI_BFS_RATE) or BCLK generated by
-+Rate * Channels * Word size (RCW or SND_SOC_DAI_BFS_RCW).
-+
-+
-+ASoC Clocking
-+-------------
-+
-+The ASoC core determines the clocking for each particular configuration at
-+runtime. This is to allow for dynamic audio clocking wereby the audio clock is
-+variable and depends on the system state or device usage scenario. i.e. a voice
-+call requires slower clocks (and hence less power) than MP3 playback.
-+
-+ASoC will call the config_sysclock() function for the target machine during the
-+audio parameters configuration. The function is responsible for then clocking
-+the machine audio subsytem and returning the audio clock speed to the core.
-+This function should also call the codec and cpu DAI clock_config() functions
-+to configure their respective internal clocking if required.
-+
-+
-+ASoC Clocking Control Flow
-+--------------------------
-+
-+The ASoC core will call the machine drivers config_sysclock() when most of the
-+DAI capabilities are known. The machine driver is then responsible for calling
-+the codec and/or CPU DAI drivers with the selected capabilities and the current
-+MCLK. Note that the machine driver is also resonsible for setting the MCLK (and
-+enabling it).
-+
-+ (1) Match Codec and CPU DAI capabilities. At this point we have
-+ matched the majority of the DAI fields and now need to make sure this
-+ mode is currently clockable.
-+
-+ (2) machine->config_sysclk() is now called with the matched DAI FS, sample
-+ rate and BCLK master. This function then gets/sets the current audio
-+ clock (depening on usage) and calls the codec and CPUI DAI drivers with
-+ the FS, rate, BCLK master and MCLK.
-+
-+ (3) Codec/CPU DAI config_sysclock(). This function checks that the FS, rate,
-+ BCLK master and MCLK are acceptable for the codec or CPU DAI. It also
-+ sets the DAI internal state to work with said clocks.
-+
-+The config_sysclk() functions for CPU, codec and machine should return the MCLK
-+on success and 0 on failure.
-+
-+
-+Examples (b = BCLK, l = LRC)
-+============================
-+
-+Example 1
-+---------
-+
-+Simple codec that only runs at 48k @ 256FS in master mode.
-+
-+CPU only runs as slave DAI, however it generates a variable MCLK.
-+
-+ -------- ---------
-+ | | <----mclk--- | |
-+ | Codec |b -----------> | CPU |
-+ | |l -----------> | |
-+ | | | |
-+ -------- ---------
-+
-+The codec driver has the following config_sysclock()
-+
-+ static unsigned int config_sysclk(struct snd_soc_codec_dai *dai,
-+ struct snd_soc_clock_info *info, unsigned int clk)
-+ {
-+ /* make sure clock is 256 * rate */
-+ if(info->rate << 8 == clk) {
-+ dai->mclk = clk;
-+ return clk;
-+ }
-+
-+ return 0;
-+ }
-+
-+The CPU I2S DAI driver has the following config_sysclk()
-+
-+ static unsigned int config_sysclk(struct snd_soc_codec_dai *dai,
-+ struct snd_soc_clock_info *info, unsigned int clk)
-+ {
-+ /* can we support this clk */
-+ if(set_audio_clk(clk) < 0)
-+ return -EINVAL;
-+
-+ dai->mclk = clk;
-+ return dai->clk;
-+ }
-+
-+The machine driver config_sysclk() in this example is as follows:-
-+
-+ unsigned int machine_config_sysclk(struct snd_soc_pcm_runtime *rtd,
-+ struct snd_soc_clock_info *info)
-+ {
-+ int clk = info->rate * info->fs;
-+
-+ /* check that CPU can deliver clock */
-+ if(rtd->cpu_dai->config_sysclk(rtd->cpu_dai, info, clk) < 0)
-+ return -EINVAL;
-+
-+ /* can codec work with this clock */
-+ return rtd->codec_dai->config_sysclk(rtd->codec_dai, info, clk);
-+ }
-+
-+
-+Example 2
-+---------
-+
-+Codec that can master at 8k and 48k at various FS (and hence supports a fixed
-+set of input MCLK's) and can also be slave at various FS .
-+
-+The CPU can master at 8k and 48k @256 FS and can be slave at any FS.
-+
-+MCLK is a 12.288MHz crystal on this machine.
-+
-+ -------- ---------
-+ | | <---xtal---> | |
-+ | Codec |b <----------> | CPU |
-+ | |l <----------> | |
-+ | | | |
-+ -------- ---------
-+
-+
-+The codec driver has the following config_sysclock()