• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/sound/ppc/

Lines Matching defs:mix

211 static int tumbler_set_master_volume(struct pmac_tumbler *mix)
216 if (! mix->i2c.client)
219 if (! mix->master_switch[0])
222 left_vol = mix->master_vol[0];
227 if (! mix->master_switch[1])
230 right_vol = mix->master_vol[1];
244 if (i2c_smbus_write_i2c_block_data(mix->i2c.client, TAS_REG_VOL, 6,
269 struct pmac_tumbler *mix = chip->mixer_data;
271 ucontrol->value.integer.value[0] = mix->master_vol[0];
272 ucontrol->value.integer.value[1] = mix->master_vol[1];
280 struct pmac_tumbler *mix = chip->mixer_data;
289 change = mix->master_vol[0] != vol[0] ||
290 mix->master_vol[1] != vol[1];
292 mix->master_vol[0] = vol[0];
293 mix->master_vol[1] = vol[1];
294 tumbler_set_master_volume(mix);
304 struct pmac_tumbler *mix = chip->mixer_data;
306 ucontrol->value.integer.value[0] = mix->master_switch[0];
307 ucontrol->value.integer.value[1] = mix->master_switch[1];
315 struct pmac_tumbler *mix = chip->mixer_data;
318 change = mix->master_switch[0] != ucontrol->value.integer.value[0] ||
319 mix->master_switch[1] != ucontrol->value.integer.value[1];
321 mix->master_switch[0] = !!ucontrol->value.integer.value[0];
322 mix->master_switch[1] = !!ucontrol->value.integer.value[1];
323 tumbler_set_master_volume(mix);
335 static int tumbler_set_drc(struct pmac_tumbler *mix)
339 if (! mix->i2c.client)
342 if (mix->drc_enable) {
344 if (mix->drc_range > TAS3001_DRC_MAX)
346 else if (mix->drc_range < 0)
349 val[1] = mix->drc_range + 0x91;
355 if (i2c_smbus_write_i2c_block_data(mix->i2c.client, TAS_REG_DRC,
370 static int snapper_set_drc(struct pmac_tumbler *mix)
374 if (! mix->i2c.client)
377 if (mix->drc_enable)
382 if (mix->drc_range > 0xef)
384 else if (mix->drc_range < 0)
387 val[2] = mix->drc_range;
392 if (i2c_smbus_write_i2c_block_data(mix->i2c.client, TAS_REG_DRC,
417 struct pmac_tumbler *mix;
418 if (! (mix = chip->mixer_data))
420 ucontrol->value.integer.value[0] = mix->drc_range;
428 struct pmac_tumbler *mix;
432 if (! (mix = chip->mixer_data))
442 change = mix->drc_range != val;
444 mix->drc_range = val;
446 tumbler_set_drc(mix);
448 snapper_set_drc(mix);
457 struct pmac_tumbler *mix;
458 if (! (mix = chip->mixer_data))
460 ucontrol->value.integer.value[0] = mix->drc_enable;
468 struct pmac_tumbler *mix;
471 if (! (mix = chip->mixer_data))
473 change = mix->drc_enable != ucontrol->value.integer.value[0];
475 mix->drc_enable = !!ucontrol->value.integer.value[0];
477 tumbler_set_drc(mix);
479 snapper_set_drc(mix);
497 static int tumbler_set_mono_volume(struct pmac_tumbler *mix,
504 if (! mix->i2c.client)
507 vol = mix->mono_vol[info->index];
513 if (i2c_smbus_write_i2c_block_data(mix->i2c.client, info->reg,
539 struct pmac_tumbler *mix;
540 if (! (mix = chip->mixer_data))
542 ucontrol->value.integer.value[0] = mix->mono_vol[info->index];
551 struct pmac_tumbler *mix;
555 if (! (mix = chip->mixer_data))
560 change = mix->mono_vol[info->index] != vol;
562 mix->mono_vol[info->index] = vol;
563 tumbler_set_mono_volume(mix, info);
634 static int snapper_set_mix_vol1(struct pmac_tumbler *mix, int idx, int ch, int reg)
639 vol = mix->mix_vol[idx][ch];
642 mix->mix_vol[idx][ch] = vol;
646 vol = mix->mix_vol[i][ch];
651 if (i2c_smbus_write_i2c_block_data(mix->i2c.client, reg,
659 static int snapper_set_mix_vol(struct pmac_tumbler *mix, int idx)
661 if (! mix->i2c.client)
663 if (snapper_set_mix_vol1(mix, idx, 0, TAS_REG_LMIX) < 0 ||
664 snapper_set_mix_vol1(mix, idx, 1, TAS_REG_RMIX) < 0)
684 struct pmac_tumbler *mix;
685 if (! (mix = chip->mixer_data))
687 ucontrol->value.integer.value[0] = mix->mix_vol[idx][0];
688 ucontrol->value.integer.value[1] = mix->mix_vol[idx][1];
697 struct pmac_tumbler *mix;
701 if (! (mix = chip->mixer_data))
708 change = mix->mix_vol[idx][0] != vol[0] ||
709 mix->mix_vol[idx][1] != vol[1];
711 mix->mix_vol[idx][0] = vol[0];
712 mix->mix_vol[idx][1] = vol[1];
713 snapper_set_mix_vol(mix, idx);
726 struct pmac_tumbler *mix;
728 if (! (mix = chip->mixer_data))
732 gp = &mix->hp_mute; break;
734 gp = &mix->amp_mute; break;
736 gp = &mix->line_mute; break;
750 struct pmac_tumbler *mix;
757 if (! (mix = chip->mixer_data))
761 gp = &mix->hp_mute; break;
763 gp = &mix->amp_mute; break;
765 gp = &mix->line_mute; break;
779 static int snapper_set_capture_source(struct pmac_tumbler *mix)
781 if (! mix->i2c.client)
783 if (mix->capture_source)
784 mix->acs = mix->acs |= 2;
786 mix->acs &= ~2;
787 return i2c_smbus_write_byte_data(mix->i2c.client, TAS_REG_ACS, mix->acs);
809 struct pmac_tumbler *mix = chip->mixer_data;
811 ucontrol->value.enumerated.item[0] = mix->capture_source;
819 struct pmac_tumbler *mix = chip->mixer_data;
822 change = ucontrol->value.enumerated.item[0] != mix->capture_source;
824 mix->capture_source = !!ucontrol->value.enumerated.item[0];
825 snapper_set_capture_source(mix);
939 struct pmac_tumbler *mix = chip->mixer_data;
942 if (mix->hp_detect.addr)
943 detect |= read_audio_gpio(&mix->hp_detect);
949 struct pmac_tumbler *mix = chip->mixer_data;
952 if (mix->line_detect.addr)
953 detect |= read_audio_gpio(&mix->line_detect);
974 struct pmac_tumbler *mix;
980 mix = chip->mixer_data;
981 if (snd_BUG_ON(!mix))
992 check_mute(chip, &mix->hp_mute, 0, mix->auto_mute_notify,
994 if (lineout && mix->line_mute.addr != 0)
995 check_mute(chip, &mix->line_mute, 0, mix->auto_mute_notify,
997 if (mix->anded_reset)
999 check_mute(chip, &mix->amp_mute, 1, mix->auto_mute_notify,
1003 check_mute(chip, &mix->amp_mute, 0, mix->auto_mute_notify,
1005 if (mix->anded_reset)
1007 check_mute(chip, &mix->hp_mute, 1, mix->auto_mute_notify,
1009 if (mix->line_mute.addr != 0)
1010 check_mute(chip, &mix->line_mute, 1, mix->auto_mute_notify,
1013 if (mix->auto_mute_notify)
1018 mix->drc_enable = ! (headphone || lineout);
1019 if (mix->auto_mute_notify)
1023 tumbler_set_drc(mix);
1025 snapper_set_drc(mix);
1029 tumbler_set_master_volume(mix);
1035 struct pmac_tumbler *mix;
1036 mix = chip->mixer_data;
1037 if (snd_BUG_ON(!mix))
1039 mix->auto_mute_notify = do_notify;
1172 struct pmac_tumbler *mix = chip->mixer_data;
1174 if (mix->anded_reset) {
1176 write_audio_gpio(&mix->hp_mute, 0);
1177 write_audio_gpio(&mix->amp_mute, 0);
1179 write_audio_gpio(&mix->hp_mute, 1);
1180 write_audio_gpio(&mix->amp_mute, 1);
1182 write_audio_gpio(&mix->hp_mute, 0);
1183 write_audio_gpio(&mix->amp_mute, 0);
1188 write_audio_gpio(&mix->audio_reset, 0);
1190 write_audio_gpio(&mix->audio_reset, 1);
1192 write_audio_gpio(&mix->audio_reset, 0);
1201 struct pmac_tumbler *mix = chip->mixer_data;
1203 if (mix->headphone_irq >= 0)
1204 disable_irq(mix->headphone_irq);
1205 if (mix->lineout_irq >= 0)
1206 disable_irq(mix->lineout_irq);
1207 mix->save_master_switch[0] = mix->master_switch[0];
1208 mix->save_master_switch[1] = mix->master_switch[1];
1209 mix->save_master_vol[0] = mix->master_vol[0];
1210 mix->save_master_vol[1] = mix->master_vol[1];
1211 mix->master_switch[0] = mix->master_switch[1] = 0;
1212 tumbler_set_master_volume(mix);
1213 if (!mix->anded_reset) {
1214 write_audio_gpio(&mix->amp_mute, 1);
1215 write_audio_gpio(&mix->hp_mute, 1);
1218 mix->acs |= 1;
1219 i2c_smbus_write_byte_data(mix->i2c.client, TAS_REG_ACS, mix->acs);
1221 if (mix->anded_reset) {
1222 write_audio_gpio(&mix->amp_mute, 1);
1223 write_audio_gpio(&mix->hp_mute, 1);
1225 write_audio_gpio(&mix->audio_reset, 1);
1231 struct pmac_tumbler *mix = chip->mixer_data;
1233 mix->acs &= ~1;
1234 mix->master_switch[0] = mix->save_master_switch[0];
1235 mix->master_switch[1] = mix->save_master_switch[1];
1236 mix->master_vol[0] = mix->save_master_vol[0];
1237 mix->master_vol[1] = mix->save_master_vol[1];
1239 if (mix->i2c.client && mix->i2c.init_client) {
1240 if (mix->i2c.init_client(&mix->i2c) < 0)
1245 tumbler_set_mono_volume(mix, &tumbler_pcm_vol_info);
1246 tumbler_set_mono_volume(mix, &tumbler_bass_vol_info);
1247 tumbler_set_mono_volume(mix, &tumbler_treble_vol_info);
1248 tumbler_set_drc(mix);
1250 snapper_set_mix_vol(mix, VOL_IDX_PCM);
1251 snapper_set_mix_vol(mix, VOL_IDX_PCM2);
1252 snapper_set_mix_vol(mix, VOL_IDX_ADC);
1253 tumbler_set_mono_volume(mix, &snapper_bass_vol_info);
1254 tumbler_set_mono_volume(mix, &snapper_treble_vol_info);
1255 snapper_set_drc(mix);
1256 snapper_set_capture_source(mix);
1258 tumbler_set_master_volume(mix);
1261 if (mix->headphone_irq >= 0) {
1264 enable_irq(mix->headphone_irq);
1266 val = do_gpio_read(&mix->hp_detect);
1267 do_gpio_write(&mix->hp_detect, val | 0x80);
1269 if (mix->lineout_irq >= 0)
1270 enable_irq(mix->lineout_irq);
1278 struct pmac_tumbler *mix = chip->mixer_data;
1282 &mix->audio_reset, 0) < 0)
1285 &mix->audio_reset, 1);
1288 &mix->amp_mute, 0) < 0)
1291 &mix->amp_mute, 1);
1294 &mix->hp_mute, 0) < 0)
1297 &mix->hp_mute, 1);
1300 &mix->line_mute, 0) < 0)
1303 &mix->line_mute, 1);
1305 NULL, &mix->hp_detect, 0);
1308 NULL, &mix->hp_detect, 1);
1311 NULL, &mix->hp_detect, 1);
1312 mix->headphone_irq = irq;
1314 NULL, &mix->line_detect, 0);
1317 NULL, &mix->line_detect, 1);
1320 NULL, &mix->line_detect, 1);
1321 mix->lineout_irq = irq;
1330 struct pmac_tumbler *mix = chip->mixer_data;
1331 if (! mix)
1334 if (mix->headphone_irq >= 0)
1335 free_irq(mix->headphone_irq, chip);
1336 if (mix->lineout_irq >= 0)
1337 free_irq(mix->lineout_irq, chip);
1338 tumbler_gpio_free(&mix->audio_reset);
1339 tumbler_gpio_free(&mix->amp_mute);
1340 tumbler_gpio_free(&mix->hp_mute);
1341 tumbler_gpio_free(&mix->hp_detect);
1342 snd_pmac_keywest_cleanup(&mix->i2c);
1343 kfree(mix);
1351 struct pmac_tumbler *mix;
1358 mix = kzalloc(sizeof(*mix), GFP_KERNEL);
1359 if (! mix)
1361 mix->headphone_irq = -1;
1363 chip->mixer_data = mix;
1365 mix->anded_reset = 0;
1366 mix->reset_on_sleep = 1;
1371 mix->anded_reset = 1;
1373 mix->reset_on_sleep = 0;
1391 mix->i2c.addr = (*paddr) >> 1;
1393 mix->i2c.addr = TAS_I2C_ADDR;
1396 DBG("(I) TAS i2c address is: %x\n", mix->i2c.addr);
1399 mix->i2c.init_client = tumbler_init_client;
1400 mix->i2c.name = "TAS3001c";
1403 mix->i2c.init_client = snapper_init_client;
1404 mix->i2c.name = "TAS3004";
1408 if ((err = snd_pmac_keywest_init(&mix->i2c)) < 0)
1433 if (mix->line_mute.addr != 0) {
1444 mix->drc_range = (TAS3001_DRC_MAX * 6) / 10;
1446 mix->drc_range = (TAS3004_DRC_MAX * 6) / 10;
1447 mix->drc_enable = 1; /* will be changed later if AUTO_DRC is set */
1449 tumbler_set_drc(mix);
1451 snapper_set_drc(mix);
1462 if ((mix->headphone_irq >=0 || mix->lineout_irq >= 0)
1470 if (mix->headphone_irq >= 0) {
1472 if ((err = request_irq(mix->headphone_irq, headphone_intr, 0,
1476 val = do_gpio_read(&mix->hp_detect);
1477 do_gpio_write(&mix->hp_detect, val | 0x80);
1479 if (mix->lineout_irq >= 0) {
1481 if ((err = request_irq(mix->lineout_irq, headphone_intr, 0,
1485 val = do_gpio_read(&mix->line_detect);
1486 do_gpio_write(&mix->line_detect, val | 0x80);