aboutsummaryrefslogtreecommitdiffstats
path: root/include/sound/wss.h
diff options
context:
space:
mode:
authorKrzysztof Helt <krzysztof.h1@wp.pl>2008-07-31 15:03:41 -0400
committerJaroslav Kysela <perex@perex.cz>2008-08-06 09:39:49 -0400
commit7779f75f072784d3fccf721b8ec43107f93619a0 (patch)
treeada616dd3efdea7192aef3cd4ddb743f980bc39b /include/sound/wss.h
parent61ef19d7e771ce021edb0dff0da134b6d688d4aa (diff)
ALSA: wss_lib: rename cs4321_foo to wss_foo
Rename functions and structures from the former cs4321_lib to names more corresponding with the new name: wss_lib. Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl> Reviewed-by: Rene Herman <rene.herman@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Diffstat (limited to 'include/sound/wss.h')
-rw-r--r--include/sound/wss.h172
1 files changed, 96 insertions, 76 deletions
diff --git a/include/sound/wss.h b/include/sound/wss.h
index f0785f9f4ae..3b53973f96a 100644
--- a/include/sound/wss.h
+++ b/include/sound/wss.h
@@ -1,5 +1,5 @@
1#ifndef __SOUND_CS4231_H 1#ifndef __SOUND_WSS_H
2#define __SOUND_CS4231_H 2#define __SOUND_WSS_H
3 3
4/* 4/*
5 * Copyright (c) by Jaroslav Kysela <perex@perex.cz> 5 * Copyright (c) by Jaroslav Kysela <perex@perex.cz>
@@ -30,42 +30,42 @@
30 30
31/* defines for codec.mode */ 31/* defines for codec.mode */
32 32
33#define CS4231_MODE_NONE 0x0000 33#define WSS_MODE_NONE 0x0000
34#define CS4231_MODE_PLAY 0x0001 34#define WSS_MODE_PLAY 0x0001
35#define CS4231_MODE_RECORD 0x0002 35#define WSS_MODE_RECORD 0x0002
36#define CS4231_MODE_TIMER 0x0004 36#define WSS_MODE_TIMER 0x0004
37#define CS4231_MODE_OPEN (CS4231_MODE_PLAY|CS4231_MODE_RECORD|CS4231_MODE_TIMER) 37#define WSS_MODE_OPEN (WSS_MODE_PLAY|WSS_MODE_RECORD|WSS_MODE_TIMER)
38 38
39/* defines for codec.hardware */ 39/* defines for codec.hardware */
40 40
41#define CS4231_HW_DETECT 0x0000 /* let CS4231 driver detect chip */ 41#define WSS_HW_DETECT 0x0000 /* let CS4231 driver detect chip */
42#define CS4231_HW_DETECT3 0x0001 /* allow mode 3 */ 42#define WSS_HW_DETECT3 0x0001 /* allow mode 3 */
43#define CS4231_HW_TYPE_MASK 0xff00 /* type mask */ 43#define WSS_HW_TYPE_MASK 0xff00 /* type mask */
44#define CS4231_HW_CS4231_MASK 0x0100 /* CS4231 serie */ 44#define WSS_HW_CS4231_MASK 0x0100 /* CS4231 serie */
45#define CS4231_HW_CS4231 0x0100 /* CS4231 chip */ 45#define WSS_HW_CS4231 0x0100 /* CS4231 chip */
46#define CS4231_HW_CS4231A 0x0101 /* CS4231A chip */ 46#define WSS_HW_CS4231A 0x0101 /* CS4231A chip */
47#define CS4231_HW_AD1845 0x0102 /* AD1845 chip */ 47#define WSS_HW_AD1845 0x0102 /* AD1845 chip */
48#define CS4231_HW_CS4232_MASK 0x0200 /* CS4232 serie (has control ports) */ 48#define WSS_HW_CS4232_MASK 0x0200 /* CS4232 serie (has control ports) */
49#define CS4231_HW_CS4232 0x0200 /* CS4232 */ 49#define WSS_HW_CS4232 0x0200 /* CS4232 */
50#define CS4231_HW_CS4232A 0x0201 /* CS4232A */ 50#define WSS_HW_CS4232A 0x0201 /* CS4232A */
51#define CS4231_HW_CS4236 0x0202 /* CS4236 */ 51#define WSS_HW_CS4236 0x0202 /* CS4236 */
52#define CS4231_HW_CS4236B_MASK 0x0400 /* CS4236B serie (has extended control regs) */ 52#define WSS_HW_CS4236B_MASK 0x0400 /* CS4236B serie (has extended control regs) */
53#define CS4231_HW_CS4235 0x0400 /* CS4235 - Crystal Clear (tm) stereo enhancement */ 53#define WSS_HW_CS4235 0x0400 /* CS4235 - Crystal Clear (tm) stereo enhancement */
54#define CS4231_HW_CS4236B 0x0401 /* CS4236B */ 54#define WSS_HW_CS4236B 0x0401 /* CS4236B */
55#define CS4231_HW_CS4237B 0x0402 /* CS4237B - SRS 3D */ 55#define WSS_HW_CS4237B 0x0402 /* CS4237B - SRS 3D */
56#define CS4231_HW_CS4238B 0x0403 /* CS4238B - QSOUND 3D */ 56#define WSS_HW_CS4238B 0x0403 /* CS4238B - QSOUND 3D */
57#define CS4231_HW_CS4239 0x0404 /* CS4239 - Crystal Clear (tm) stereo enhancement */ 57#define WSS_HW_CS4239 0x0404 /* CS4239 - Crystal Clear (tm) stereo enhancement */
58/* compatible, but clones */ 58/* compatible, but clones */
59#define CS4231_HW_INTERWAVE 0x1000 /* InterWave chip */ 59#define WSS_HW_INTERWAVE 0x1000 /* InterWave chip */
60#define CS4231_HW_OPL3SA2 0x1101 /* OPL3-SA2 chip, similar to cs4231 */ 60#define WSS_HW_OPL3SA2 0x1101 /* OPL3-SA2 chip, similar to cs4231 */
61#define CS4231_HW_OPTI93X 0x1102 /* Opti 930/931/933 */ 61#define WSS_HW_OPTI93X 0x1102 /* Opti 930/931/933 */
62 62
63/* defines for codec.hwshare */ 63/* defines for codec.hwshare */
64#define CS4231_HWSHARE_IRQ (1<<0) 64#define WSS_HWSHARE_IRQ (1<<0)
65#define CS4231_HWSHARE_DMA1 (1<<1) 65#define WSS_HWSHARE_DMA1 (1<<1)
66#define CS4231_HWSHARE_DMA2 (1<<2) 66#define WSS_HWSHARE_DMA2 (1<<2)
67 67
68struct snd_cs4231 { 68struct snd_wss {
69 unsigned long port; /* base i/o port */ 69 unsigned long port; /* base i/o port */
70 struct resource *res_port; 70 struct resource *res_port;
71 unsigned long cport; /* control base i/o port (CS4236) */ 71 unsigned long cport; /* control base i/o port (CS4236) */
@@ -74,8 +74,8 @@ struct snd_cs4231 {
74 int dma1; /* playback DMA */ 74 int dma1; /* playback DMA */
75 int dma2; /* record DMA */ 75 int dma2; /* record DMA */
76 unsigned short version; /* version of CODEC chip */ 76 unsigned short version; /* version of CODEC chip */
77 unsigned short mode; /* see to CS4231_MODE_XXXX */ 77 unsigned short mode; /* see to WSS_MODE_XXXX */
78 unsigned short hardware; /* see to CS4231_HW_XXXX */ 78 unsigned short hardware; /* see to WSS_HW_XXXX */
79 unsigned short hwshare; /* shared resources */ 79 unsigned short hwshare; /* shared resources */
80 unsigned short single_dma:1, /* forced single DMA mode (GUS 16-bit daughter board) or dma1 == dma2 */ 80 unsigned short single_dma:1, /* forced single DMA mode (GUS 16-bit daughter board) or dma1 == dma2 */
81 ebus_flag:1; /* SPARC: EBUS present */ 81 ebus_flag:1; /* SPARC: EBUS present */
@@ -100,43 +100,50 @@ struct snd_cs4231 {
100 struct mutex open_mutex; 100 struct mutex open_mutex;
101 101
102 int (*rate_constraint) (struct snd_pcm_runtime *runtime); 102 int (*rate_constraint) (struct snd_pcm_runtime *runtime);
103 void (*set_playback_format) (struct snd_cs4231 *chip, struct snd_pcm_hw_params *hw_params, unsigned char pdfr); 103 void (*set_playback_format) (struct snd_wss *chip,
104 void (*set_capture_format) (struct snd_cs4231 *chip, struct snd_pcm_hw_params *hw_params, unsigned char cdfr); 104 struct snd_pcm_hw_params *hw_params,
105 void (*trigger) (struct snd_cs4231 *chip, unsigned int what, int start); 105 unsigned char pdfr);
106 void (*set_capture_format) (struct snd_wss *chip,
107 struct snd_pcm_hw_params *hw_params,
108 unsigned char cdfr);
109 void (*trigger) (struct snd_wss *chip, unsigned int what, int start);
106#ifdef CONFIG_PM 110#ifdef CONFIG_PM
107 void (*suspend) (struct snd_cs4231 *chip); 111 void (*suspend) (struct snd_wss *chip);
108 void (*resume) (struct snd_cs4231 *chip); 112 void (*resume) (struct snd_wss *chip);
109#endif 113#endif
110 void *dma_private_data; 114 void *dma_private_data;
111 int (*claim_dma) (struct snd_cs4231 *chip, void *dma_private_data, int dma); 115 int (*claim_dma) (struct snd_wss *chip,
112 int (*release_dma) (struct snd_cs4231 *chip, void *dma_private_data, int dma); 116 void *dma_private_data, int dma);
117 int (*release_dma) (struct snd_wss *chip,
118 void *dma_private_data, int dma);
113}; 119};
114 120
115/* exported functions */ 121/* exported functions */
116 122
117void snd_cs4231_out(struct snd_cs4231 *chip, unsigned char reg, unsigned char val); 123void snd_wss_out(struct snd_wss *chip, unsigned char reg, unsigned char val);
118unsigned char snd_cs4231_in(struct snd_cs4231 *chip, unsigned char reg); 124unsigned char snd_wss_in(struct snd_wss *chip, unsigned char reg);
119void snd_cs4236_ext_out(struct snd_cs4231 *chip, unsigned char reg, unsigned char val); 125void snd_cs4236_ext_out(struct snd_wss *chip,
120unsigned char snd_cs4236_ext_in(struct snd_cs4231 *chip, unsigned char reg); 126 unsigned char reg, unsigned char val);
121void snd_cs4231_mce_up(struct snd_cs4231 *chip); 127unsigned char snd_cs4236_ext_in(struct snd_wss *chip, unsigned char reg);
122void snd_cs4231_mce_down(struct snd_cs4231 *chip); 128void snd_wss_mce_up(struct snd_wss *chip);
129void snd_wss_mce_down(struct snd_wss *chip);
123 130
124void snd_cs4231_overrange(struct snd_cs4231 *chip); 131void snd_wss_overrange(struct snd_wss *chip);
125 132
126irqreturn_t snd_cs4231_interrupt(int irq, void *dev_id); 133irqreturn_t snd_wss_interrupt(int irq, void *dev_id);
127 134
128const char *snd_cs4231_chip_id(struct snd_cs4231 *chip); 135const char *snd_wss_chip_id(struct snd_wss *chip);
129 136
130int snd_cs4231_create(struct snd_card *card, 137int snd_wss_create(struct snd_card *card,
131 unsigned long port, 138 unsigned long port,
132 unsigned long cport, 139 unsigned long cport,
133 int irq, int dma1, int dma2, 140 int irq, int dma1, int dma2,
134 unsigned short hardware, 141 unsigned short hardware,
135 unsigned short hwshare, 142 unsigned short hwshare,
136 struct snd_cs4231 ** rchip); 143 struct snd_wss **rchip);
137int snd_cs4231_pcm(struct snd_cs4231 * chip, int device, struct snd_pcm **rpcm); 144int snd_wss_pcm(struct snd_wss *chip, int device, struct snd_pcm **rpcm);
138int snd_cs4231_timer(struct snd_cs4231 * chip, int device, struct snd_timer **rtimer); 145int snd_wss_timer(struct snd_wss *chip, int device, struct snd_timer **rtimer);
139int snd_cs4231_mixer(struct snd_cs4231 * chip); 146int snd_wss_mixer(struct snd_wss *chip);
140 147
141int snd_cs4236_create(struct snd_card *card, 148int snd_cs4236_create(struct snd_card *card,
142 unsigned long port, 149 unsigned long port,
@@ -144,32 +151,45 @@ int snd_cs4236_create(struct snd_card *card,
144 int irq, int dma1, int dma2, 151 int irq, int dma1, int dma2,
145 unsigned short hardware, 152 unsigned short hardware,
146 unsigned short hwshare, 153 unsigned short hwshare,
147 struct snd_cs4231 ** rchip); 154 struct snd_wss **rchip);
148int snd_cs4236_pcm(struct snd_cs4231 * chip, int device, struct snd_pcm **rpcm); 155int snd_cs4236_pcm(struct snd_wss *chip, int device, struct snd_pcm **rpcm);
149int snd_cs4236_mixer(struct snd_cs4231 * chip); 156int snd_cs4236_mixer(struct snd_wss *chip);
150 157
151/* 158/*
152 * mixer library 159 * mixer library
153 */ 160 */
154 161
155#define CS4231_SINGLE(xname, xindex, reg, shift, mask, invert) \ 162#define WSS_SINGLE(xname, xindex, reg, shift, mask, invert) \
156{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xindex, \ 163{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
157 .info = snd_cs4231_info_single, \ 164 .name = xname, \
158 .get = snd_cs4231_get_single, .put = snd_cs4231_put_single, \ 165 .index = xindex, \
166 .info = snd_wss_info_single, \
167 .get = snd_wss_get_single, \
168 .put = snd_wss_put_single, \
159 .private_value = reg | (shift << 8) | (mask << 16) | (invert << 24) } 169 .private_value = reg | (shift << 8) | (mask << 16) | (invert << 24) }
160 170
161int snd_cs4231_info_single(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo); 171int snd_wss_info_single(struct snd_kcontrol *kcontrol,
162int snd_cs4231_get_single(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol); 172 struct snd_ctl_elem_info *uinfo);
163int snd_cs4231_put_single(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol); 173int snd_wss_get_single(struct snd_kcontrol *kcontrol,
164 174 struct snd_ctl_elem_value *ucontrol);
165#define CS4231_DOUBLE(xname, xindex, left_reg, right_reg, shift_left, shift_right, mask, invert) \ 175int snd_wss_put_single(struct snd_kcontrol *kcontrol,
166{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xindex, \ 176 struct snd_ctl_elem_value *ucontrol);
167 .info = snd_cs4231_info_double, \ 177
168 .get = snd_cs4231_get_double, .put = snd_cs4231_put_double, \ 178#define WSS_DOUBLE(xname, xindex, left_reg, right_reg, shift_left, shift_right, mask, invert) \
169 .private_value = left_reg | (right_reg << 8) | (shift_left << 16) | (shift_right << 19) | (mask << 24) | (invert << 22) } 179{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
170 180 .name = xname, \
171int snd_cs4231_info_double(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo); 181 .index = xindex, \
172int snd_cs4231_get_double(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol); 182 .info = snd_wss_info_double, \
173int snd_cs4231_put_double(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol); 183 .get = snd_wss_get_double, \
174 184 .put = snd_wss_put_double, \
175#endif /* __SOUND_CS4231_H */ 185 .private_value = left_reg | (right_reg << 8) | (shift_left << 16) | \
186 (shift_right << 19) | (mask << 24) | (invert << 22) }
187
188int snd_wss_info_double(struct snd_kcontrol *kcontrol,
189 struct snd_ctl_elem_info *uinfo);
190int snd_wss_get_double(struct snd_kcontrol *kcontrol,
191 struct snd_ctl_elem_value *ucontrol);
192int snd_wss_put_double(struct snd_kcontrol *kcontrol,
193 struct snd_ctl_elem_value *ucontrol);
194
195#endif /* __SOUND_WSS_H */