Merge branch 'linus' into oprofile-v2
[sfrench/cifs-2.6.git] / sound / soc / blackfin / bf5xx-ac97.h
1 /*
2  * linux/sound/arm/bf5xx-ac97.h
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation.
7  */
8
9 #ifndef _BF5XX_AC97_H
10 #define _BF5XX_AC97_H
11
12 extern struct snd_ac97_bus_ops bf5xx_ac97_ops;
13 extern struct snd_ac97 *ac97;
14 /* Frame format in memory, only support stereo currently */
15 struct ac97_frame {
16         u16 ac97_tag;           /* slot 0 */
17         u16 ac97_addr;          /* slot 1 */
18         u16 ac97_data;          /* slot 2 */
19         u32 ac97_pcm;           /* slot 3 and 4: left and right pcm data */
20 } __attribute__ ((packed));
21
22 #define TAG_VALID               0x8000
23 #define TAG_CMD                 0x6000
24 #define TAG_PCM_LEFT            0x1000
25 #define TAG_PCM_RIGHT           0x0800
26 #define TAG_PCM                 (TAG_PCM_LEFT | TAG_PCM_RIGHT)
27
28 extern struct snd_soc_dai bfin_ac97_dai;
29
30 void bf5xx_pcm_to_ac97(struct ac97_frame *dst, const __u32 *src, \
31                 size_t count);
32
33 void bf5xx_ac97_to_pcm(const struct ac97_frame *src, __u32 *dst, \
34                 size_t count);
35
36 #endif