2198
2198
static const DECLARE_TLV_DB_SCALE(db_scale_6bit, -9450, 150, 0);
2199
2199
static const DECLARE_TLV_DB_SCALE(db_scale_5bit_12db_max, -3450, 150, 0);
2200
2200
static const DECLARE_TLV_DB_SCALE(db_scale_rec_gain, 0, 150, 0);
2201
static const DECLARE_TLV_DB_SCALE(db_scale_4bit, -4500, 300, 0);
2202
static struct snd_kcontrol_new snd_ad1848_controls[] = {
2203
WSS_DOUBLE("PCM Playback Switch", 0, CS4231_LEFT_OUTPUT, CS4231_RIGHT_OUTPUT,
2203
static struct snd_kcontrol_new snd_wss_controls[] = {
2204
WSS_DOUBLE("PCM Playback Switch", 0,
2205
CS4231_LEFT_OUTPUT, CS4231_RIGHT_OUTPUT, 7, 7, 1, 1),
2205
2206
WSS_DOUBLE_TLV("PCM Playback Volume", 0,
2206
CS4231_LEFT_OUTPUT, CS4231_RIGHT_OUTPUT, 0, 0, 63, 1,
2207
CS4231_LEFT_OUTPUT, CS4231_RIGHT_OUTPUT, 0, 0, 63, 1,
2208
2209
WSS_DOUBLE("Aux Playback Switch", 0,
2209
CS4231_AUX1_LEFT_INPUT, CS4231_AUX1_RIGHT_INPUT, 7, 7, 1, 1),
2210
CS4231_AUX1_LEFT_INPUT, CS4231_AUX1_RIGHT_INPUT, 7, 7, 1, 1),
2210
2211
WSS_DOUBLE_TLV("Aux Playback Volume", 0,
2211
CS4231_AUX1_LEFT_INPUT, CS4231_AUX1_RIGHT_INPUT, 0, 0, 31, 1,
2212
db_scale_5bit_12db_max),
2212
CS4231_AUX1_LEFT_INPUT, CS4231_AUX1_RIGHT_INPUT, 0, 0, 31, 1,
2213
db_scale_5bit_12db_max),
2213
2214
WSS_DOUBLE("Aux Playback Switch", 1,
2214
CS4231_AUX2_LEFT_INPUT, CS4231_AUX2_RIGHT_INPUT, 7, 7, 1, 1),
2215
CS4231_AUX2_LEFT_INPUT, CS4231_AUX2_RIGHT_INPUT, 7, 7, 1, 1),
2215
2216
WSS_DOUBLE_TLV("Aux Playback Volume", 1,
2216
CS4231_AUX2_LEFT_INPUT, CS4231_AUX2_RIGHT_INPUT, 0, 0, 31, 1,
2217
db_scale_5bit_12db_max),
2217
CS4231_AUX2_LEFT_INPUT, CS4231_AUX2_RIGHT_INPUT, 0, 0, 31, 1,
2218
db_scale_5bit_12db_max),
2218
2219
WSS_DOUBLE_TLV("Capture Volume", 0, CS4231_LEFT_INPUT, CS4231_RIGHT_INPUT,
2219
2220
0, 0, 15, 0, db_scale_rec_gain),
2222
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
2221
2223
.name = "Capture Source",
2222
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
2223
2224
.info = snd_wss_info_mux,
2224
2225
.get = snd_wss_get_mux,
2225
2226
.put = snd_wss_put_mux,
2227
WSS_SINGLE("Loopback Capture Switch", 0, CS4231_LOOPBACK, 0, 1, 0),
2228
WSS_SINGLE_TLV("Loopback Capture Volume", 0, CS4231_LOOPBACK, 1, 63, 0,
2232
static struct snd_kcontrol_new snd_wss_controls[] = {
2233
WSS_DOUBLE("PCM Playback Switch", 0,
2234
CS4231_LEFT_OUTPUT, CS4231_RIGHT_OUTPUT, 7, 7, 1, 1),
2235
WSS_DOUBLE("PCM Playback Volume", 0,
2236
CS4231_LEFT_OUTPUT, CS4231_RIGHT_OUTPUT, 0, 0, 63, 1),
2228
WSS_DOUBLE("Mic Boost (+20dB)", 0,
2229
CS4231_LEFT_INPUT, CS4231_RIGHT_INPUT, 5, 5, 1, 0),
2230
WSS_SINGLE("Loopback Capture Switch", 0,
2231
CS4231_LOOPBACK, 0, 1, 0),
2232
WSS_SINGLE_TLV("Loopback Capture Volume", 0, CS4231_LOOPBACK, 2, 63, 1,
2237
2234
WSS_DOUBLE("Line Playback Switch", 0,
2238
2235
CS4231_LEFT_LINE_IN, CS4231_RIGHT_LINE_IN, 7, 7, 1, 1),
2239
WSS_DOUBLE("Line Playback Volume", 0,
2240
CS4231_LEFT_LINE_IN, CS4231_RIGHT_LINE_IN, 0, 0, 31, 1),
2241
WSS_DOUBLE("Aux Playback Switch", 0,
2242
CS4231_AUX1_LEFT_INPUT, CS4231_AUX1_RIGHT_INPUT, 7, 7, 1, 1),
2243
WSS_DOUBLE("Aux Playback Volume", 0,
2244
CS4231_AUX1_LEFT_INPUT, CS4231_AUX1_RIGHT_INPUT, 0, 0, 31, 1),
2245
WSS_DOUBLE("Aux Playback Switch", 1,
2246
CS4231_AUX2_LEFT_INPUT, CS4231_AUX2_RIGHT_INPUT, 7, 7, 1, 1),
2247
WSS_DOUBLE("Aux Playback Volume", 1,
2248
CS4231_AUX2_LEFT_INPUT, CS4231_AUX2_RIGHT_INPUT, 0, 0, 31, 1),
2249
WSS_SINGLE("Mono Playback Switch", 0,
2236
WSS_DOUBLE_TLV("Line Playback Volume", 0,
2237
CS4231_LEFT_LINE_IN, CS4231_RIGHT_LINE_IN, 0, 0, 31, 1,
2238
db_scale_5bit_12db_max),
2239
WSS_SINGLE("Beep Playback Switch", 0,
2250
2240
CS4231_MONO_CTRL, 7, 1, 1),
2251
WSS_SINGLE("Mono Playback Volume", 0,
2252
CS4231_MONO_CTRL, 0, 15, 1),
2241
WSS_SINGLE_TLV("Beep Playback Volume", 0,
2242
CS4231_MONO_CTRL, 0, 15, 1,
2253
2244
WSS_SINGLE("Mono Output Playback Switch", 0,
2254
2245
CS4231_MONO_CTRL, 6, 1, 1),
2255
WSS_SINGLE("Mono Output Playback Bypass", 0,
2246
WSS_SINGLE("Beep Bypass Playback Switch", 0,
2256
2247
CS4231_MONO_CTRL, 5, 1, 0),
2257
WSS_DOUBLE("Capture Volume", 0,
2258
CS4231_LEFT_INPUT, CS4231_RIGHT_INPUT, 0, 0, 15, 0),
2260
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
2261
.name = "Capture Source",
2262
.info = snd_wss_info_mux,
2263
.get = snd_wss_get_mux,
2264
.put = snd_wss_put_mux,
2266
WSS_DOUBLE("Mic Boost", 0,
2267
CS4231_LEFT_INPUT, CS4231_RIGHT_INPUT, 5, 5, 1, 0),
2268
WSS_SINGLE("Loopback Capture Switch", 0,
2269
CS4231_LOOPBACK, 0, 1, 0),
2270
WSS_SINGLE("Loopback Capture Volume", 0,
2271
CS4231_LOOPBACK, 2, 63, 1)
2274
static struct snd_kcontrol_new snd_opti93x_controls[] = {
2275
WSS_DOUBLE("Master Playback Switch", 0,
2276
OPTi93X_OUT_LEFT, OPTi93X_OUT_RIGHT, 7, 7, 1, 1),
2277
WSS_DOUBLE("Master Playback Volume", 0,
2278
OPTi93X_OUT_LEFT, OPTi93X_OUT_RIGHT, 1, 1, 31, 1),
2279
WSS_DOUBLE("PCM Playback Switch", 0,
2280
CS4231_LEFT_OUTPUT, CS4231_RIGHT_OUTPUT, 7, 7, 1, 1),
2281
WSS_DOUBLE("PCM Playback Volume", 0,
2282
CS4231_LEFT_OUTPUT, CS4231_RIGHT_OUTPUT, 0, 0, 31, 1),
2283
WSS_DOUBLE("FM Playback Switch", 0,
2284
CS4231_AUX2_LEFT_INPUT, CS4231_AUX2_RIGHT_INPUT, 7, 7, 1, 1),
2285
WSS_DOUBLE("FM Playback Volume", 0,
2286
CS4231_AUX2_LEFT_INPUT, CS4231_AUX2_RIGHT_INPUT, 1, 1, 15, 1),
2287
WSS_DOUBLE("Line Playback Switch", 0,
2288
CS4231_LEFT_LINE_IN, CS4231_RIGHT_LINE_IN, 7, 7, 1, 1),
2289
WSS_DOUBLE("Line Playback Volume", 0,
2290
CS4231_LEFT_LINE_IN, CS4231_RIGHT_LINE_IN, 0, 0, 15, 1),
2291
WSS_DOUBLE("Mic Playback Switch", 0,
2292
OPTi93X_MIC_LEFT_INPUT, OPTi93X_MIC_RIGHT_INPUT, 7, 7, 1, 1),
2293
WSS_DOUBLE("Mic Playback Volume", 0,
2294
OPTi93X_MIC_LEFT_INPUT, OPTi93X_MIC_RIGHT_INPUT, 1, 1, 15, 1),
2295
WSS_DOUBLE("Mic Boost", 0,
2296
CS4231_LEFT_INPUT, CS4231_RIGHT_INPUT, 5, 5, 1, 0),
2297
WSS_DOUBLE("CD Playback Switch", 0,
2298
CS4231_AUX1_LEFT_INPUT, CS4231_AUX1_RIGHT_INPUT, 7, 7, 1, 1),
2299
WSS_DOUBLE("CD Playback Volume", 0,
2300
CS4231_AUX1_LEFT_INPUT, CS4231_AUX1_RIGHT_INPUT, 1, 1, 15, 1),
2301
WSS_DOUBLE("Aux Playback Switch", 0,
2302
OPTi931_AUX_LEFT_INPUT, OPTi931_AUX_RIGHT_INPUT, 7, 7, 1, 1),
2303
WSS_DOUBLE("Aux Playback Volume", 0,
2304
OPTi931_AUX_LEFT_INPUT, OPTi931_AUX_RIGHT_INPUT, 1, 1, 15, 1),
2305
WSS_DOUBLE("Capture Volume", 0,
2306
CS4231_LEFT_INPUT, CS4231_RIGHT_INPUT, 0, 0, 15, 0),
2308
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
2309
.name = "Capture Source",
2310
.info = snd_wss_info_mux,
2311
.get = snd_wss_get_mux,
2312
.put = snd_wss_put_mux,
2316
2250
int snd_wss_mixer(struct snd_wss *chip)