• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/sound/ppc/

Lines Matching defs:mix

209 static int tumbler_set_master_volume(struct pmac_tumbler *mix)
214 if (! mix->i2c.client)
217 if (! mix->master_switch[0])
220 left_vol = mix->master_vol[0];
225 if (! mix->master_switch[1])
228 right_vol = mix->master_vol[1];
242 if (i2c_smbus_write_i2c_block_data(mix->i2c.client, TAS_REG_VOL, 6,
266 struct pmac_tumbler *mix = chip->mixer_data;
267 snd_assert(mix, return -ENODEV);
268 ucontrol->value.integer.value[0] = mix->master_vol[0];
269 ucontrol->value.integer.value[1] = mix->master_vol[1];
277 struct pmac_tumbler *mix = chip->mixer_data;
280 snd_assert(mix, return -ENODEV);
281 change = mix->master_vol[0] != ucontrol->value.integer.value[0] ||
282 mix->master_vol[1] != ucontrol->value.integer.value[1];
284 mix->master_vol[0] = ucontrol->value.integer.value[0];
285 mix->master_vol[1] = ucontrol->value.integer.value[1];
286 tumbler_set_master_volume(mix);
296 struct pmac_tumbler *mix = chip->mixer_data;
297 snd_assert(mix, return -ENODEV);
298 ucontrol->value.integer.value[0] = mix->master_switch[0];
299 ucontrol->value.integer.value[1] = mix->master_switch[1];
307 struct pmac_tumbler *mix = chip->mixer_data;
310 snd_assert(mix, return -ENODEV);
311 change = mix->master_switch[0] != ucontrol->value.integer.value[0] ||
312 mix->master_switch[1] != ucontrol->value.integer.value[1];
314 mix->master_switch[0] = !!ucontrol->value.integer.value[0];
315 mix->master_switch[1] = !!ucontrol->value.integer.value[1];
316 tumbler_set_master_volume(mix);
328 static int tumbler_set_drc(struct pmac_tumbler *mix)
332 if (! mix->i2c.client)
335 if (mix->drc_enable) {
337 if (mix->drc_range > TAS3001_DRC_MAX)
339 else if (mix->drc_range < 0)
342 val[1] = mix->drc_range + 0x91;
348 if (i2c_smbus_write_i2c_block_data(mix->i2c.client, TAS_REG_DRC,
362 static int snapper_set_drc(struct pmac_tumbler *mix)
366 if (! mix->i2c.client)
369 if (mix->drc_enable)
374 if (mix->drc_range > 0xef)
376 else if (mix->drc_range < 0)
379 val[2] = mix->drc_range;
384 if (i2c_smbus_write_i2c_block_data(mix->i2c.client, TAS_REG_DRC,
408 struct pmac_tumbler *mix;
409 if (! (mix = chip->mixer_data))
411 ucontrol->value.integer.value[0] = mix->drc_range;
419 struct pmac_tumbler *mix;
422 if (! (mix = chip->mixer_data))
424 change = mix->drc_range != ucontrol->value.integer.value[0];
426 mix->drc_range = ucontrol->value.integer.value[0];
428 tumbler_set_drc(mix);
430 snapper_set_drc(mix);
439 struct pmac_tumbler *mix;
440 if (! (mix = chip->mixer_data))
442 ucontrol->value.integer.value[0] = mix->drc_enable;
450 struct pmac_tumbler *mix;
453 if (! (mix = chip->mixer_data))
455 change = mix->drc_enable != ucontrol->value.integer.value[0];
457 mix->drc_enable = !!ucontrol->value.integer.value[0];
459 tumbler_set_drc(mix);
461 snapper_set_drc(mix);
479 static int tumbler_set_mono_volume(struct pmac_tumbler *mix,
486 if (! mix->i2c.client)
489 vol = mix->mono_vol[info->index];
495 if (i2c_smbus_write_i2c_block_data(mix->i2c.client, info->reg,
520 struct pmac_tumbler *mix;
521 if (! (mix = chip->mixer_data))
523 ucontrol->value.integer.value[0] = mix->mono_vol[info->index];
532 struct pmac_tumbler *mix;
535 if (! (mix = chip->mixer_data))
537 change = mix->mono_vol[info->index] != ucontrol->value.integer.value[0];
539 mix->mono_vol[info->index] = ucontrol->value.integer.value[0];
540 tumbler_set_mono_volume(mix, info);
611 static int snapper_set_mix_vol1(struct pmac_tumbler *mix, int idx, int ch, int reg)
616 vol = mix->mix_vol[idx][ch];
619 mix->mix_vol[idx][ch] = vol;
623 vol = mix->mix_vol[i][ch];
628 if (i2c_smbus_write_i2c_block_data(mix->i2c.client, reg,
636 static int snapper_set_mix_vol(struct pmac_tumbler *mix, int idx)
638 if (! mix->i2c.client)
640 if (snapper_set_mix_vol1(mix, idx, 0, TAS_REG_LMIX) < 0 ||
641 snapper_set_mix_vol1(mix, idx, 1, TAS_REG_RMIX) < 0)
661 struct pmac_tumbler *mix;
662 if (! (mix = chip->mixer_data))
664 ucontrol->value.integer.value[0] = mix->mix_vol[idx][0];
665 ucontrol->value.integer.value[1] = mix->mix_vol[idx][1];
674 struct pmac_tumbler *mix;
677 if (! (mix = chip->mixer_data))
679 change = mix->mix_vol[idx][0] != ucontrol->value.integer.value[0] ||
680 mix->mix_vol[idx][1] != ucontrol->value.integer.value[1];
682 mix->mix_vol[idx][0] = ucontrol->value.integer.value[0];
683 mix->mix_vol[idx][1] = ucontrol->value.integer.value[1];
684 snapper_set_mix_vol(mix, idx);
697 struct pmac_tumbler *mix;
699 if (! (mix = chip->mixer_data))
703 gp = &mix->hp_mute; break;
705 gp = &mix->amp_mute; break;
707 gp = &mix->line_mute; break;
721 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 static int snapper_set_capture_source(struct pmac_tumbler *mix)
752 if (! mix->i2c.client)
754 if (mix->capture_source)
755 mix->acs = mix->acs |= 2;
757 mix->acs &= ~2;
758 return i2c_smbus_write_byte_data(mix->i2c.client, TAS_REG_ACS, mix->acs);
780 struct pmac_tumbler *mix = chip->mixer_data;
782 snd_assert(mix, return -ENODEV);
783 ucontrol->value.integer.value[0] = mix->capture_source;
791 struct pmac_tumbler *mix = chip->mixer_data;
794 snd_assert(mix, return -ENODEV);
795 change = ucontrol->value.integer.value[0] != mix->capture_source;
797 mix->capture_source = !!ucontrol->value.integer.value[0];
798 snapper_set_capture_source(mix);
911 struct pmac_tumbler *mix = chip->mixer_data;
914 if (mix->hp_detect.addr)
915 detect |= read_audio_gpio(&mix->hp_detect);
921 struct pmac_tumbler *mix = chip->mixer_data;
924 if (mix->line_detect.addr)
925 detect |= read_audio_gpio(&mix->line_detect);
946 struct pmac_tumbler *mix;
952 mix = chip->mixer_data;
953 snd_assert(mix, return);
963 check_mute(chip, &mix->hp_mute, 0, mix->auto_mute_notify,
965 if (lineout && mix->line_mute.addr != 0)
966 check_mute(chip, &mix->line_mute, 0, mix->auto_mute_notify,
968 if (mix->anded_reset)
970 check_mute(chip, &mix->amp_mute, 1, mix->auto_mute_notify,
974 check_mute(chip, &mix->amp_mute, 0, mix->auto_mute_notify,
976 if (mix->anded_reset)
978 check_mute(chip, &mix->hp_mute, 1, mix->auto_mute_notify,
980 if (mix->line_mute.addr != 0)
981 check_mute(chip, &mix->line_mute, 1, mix->auto_mute_notify,
984 if (mix->auto_mute_notify)
989 mix->drc_enable = ! (headphone || lineout);
990 if (mix->auto_mute_notify)
994 tumbler_set_drc(mix);
996 snapper_set_drc(mix);
1000 tumbler_set_master_volume(mix);
1006 struct pmac_tumbler *mix;
1007 mix = chip->mixer_data;
1008 snd_assert(mix, return);
1009 mix->auto_mute_notify = do_notify;
1141 struct pmac_tumbler *mix = chip->mixer_data;
1143 if (mix->anded_reset) {
1145 write_audio_gpio(&mix->hp_mute, 0);
1146 write_audio_gpio(&mix->amp_mute, 0);
1148 write_audio_gpio(&mix->hp_mute, 1);
1149 write_audio_gpio(&mix->amp_mute, 1);
1151 write_audio_gpio(&mix->hp_mute, 0);
1152 write_audio_gpio(&mix->amp_mute, 0);
1157 write_audio_gpio(&mix->audio_reset, 0);
1159 write_audio_gpio(&mix->audio_reset, 1);
1161 write_audio_gpio(&mix->audio_reset, 0);
1170 struct pmac_tumbler *mix = chip->mixer_data;
1172 if (mix->headphone_irq >= 0)
1173 disable_irq(mix->headphone_irq);
1174 if (mix->lineout_irq >= 0)
1175 disable_irq(mix->lineout_irq);
1176 mix->save_master_switch[0] = mix->master_switch[0];
1177 mix->save_master_switch[1] = mix->master_switch[1];
1178 mix->save_master_vol[0] = mix->master_vol[0];
1179 mix->save_master_vol[1] = mix->master_vol[1];
1180 mix->master_switch[0] = mix->master_switch[1] = 0;
1181 tumbler_set_master_volume(mix);
1182 if (!mix->anded_reset) {
1183 write_audio_gpio(&mix->amp_mute, 1);
1184 write_audio_gpio(&mix->hp_mute, 1);
1187 mix->acs |= 1;
1188 i2c_smbus_write_byte_data(mix->i2c.client, TAS_REG_ACS, mix->acs);
1190 if (mix->anded_reset) {
1191 write_audio_gpio(&mix->amp_mute, 1);
1192 write_audio_gpio(&mix->hp_mute, 1);
1194 write_audio_gpio(&mix->audio_reset, 1);
1200 struct pmac_tumbler *mix = chip->mixer_data;
1202 snd_assert(mix, return);
1204 mix->acs &= ~1;
1205 mix->master_switch[0] = mix->save_master_switch[0];
1206 mix->master_switch[1] = mix->save_master_switch[1];
1207 mix->master_vol[0] = mix->save_master_vol[0];
1208 mix->master_vol[1] = mix->save_master_vol[1];
1210 if (mix->i2c.client && mix->i2c.init_client) {
1211 if (mix->i2c.init_client(&mix->i2c) < 0)
1216 tumbler_set_mono_volume(mix, &tumbler_pcm_vol_info);
1217 tumbler_set_mono_volume(mix, &tumbler_bass_vol_info);
1218 tumbler_set_mono_volume(mix, &tumbler_treble_vol_info);
1219 tumbler_set_drc(mix);
1221 snapper_set_mix_vol(mix, VOL_IDX_PCM);
1222 snapper_set_mix_vol(mix, VOL_IDX_PCM2);
1223 snapper_set_mix_vol(mix, VOL_IDX_ADC);
1224 tumbler_set_mono_volume(mix, &snapper_bass_vol_info);
1225 tumbler_set_mono_volume(mix, &snapper_treble_vol_info);
1226 snapper_set_drc(mix);
1227 snapper_set_capture_source(mix);
1229 tumbler_set_master_volume(mix);
1232 if (mix->headphone_irq >= 0) {
1235 enable_irq(mix->headphone_irq);
1237 val = do_gpio_read(&mix->hp_detect);
1238 do_gpio_write(&mix->hp_detect, val | 0x80);
1240 if (mix->lineout_irq >= 0)
1241 enable_irq(mix->lineout_irq);
1249 struct pmac_tumbler *mix = chip->mixer_data;
1250 snd_assert(mix, return -EINVAL);
1254 &mix->audio_reset, 0) < 0)
1257 &mix->audio_reset, 1);
1260 &mix->amp_mute, 0) < 0)
1263 &mix->amp_mute, 1);
1266 &mix->hp_mute, 0) < 0)
1269 &mix->hp_mute, 1);
1272 &mix->line_mute, 0) < 0)
1275 &mix->line_mute, 1);
1277 NULL, &mix->hp_detect, 0);
1280 NULL, &mix->hp_detect, 1);
1283 NULL, &mix->hp_detect, 1);
1284 mix->headphone_irq = irq;
1286 NULL, &mix->line_detect, 0);
1289 NULL, &mix->line_detect, 1);
1290 mix->lineout_irq = irq;
1299 struct pmac_tumbler *mix = chip->mixer_data;
1300 if (! mix)
1303 if (mix->headphone_irq >= 0)
1304 free_irq(mix->headphone_irq, chip);
1305 if (mix->lineout_irq >= 0)
1306 free_irq(mix->lineout_irq, chip);
1307 tumbler_gpio_free(&mix->audio_reset);
1308 tumbler_gpio_free(&mix->amp_mute);
1309 tumbler_gpio_free(&mix->hp_mute);
1310 tumbler_gpio_free(&mix->hp_detect);
1311 snd_pmac_keywest_cleanup(&mix->i2c);
1312 kfree(mix);
1320 struct pmac_tumbler *mix;
1330 mix = kzalloc(sizeof(*mix), GFP_KERNEL);
1331 if (! mix)
1333 mix->headphone_irq = -1;
1335 chip->mixer_data = mix;
1337 mix->anded_reset = 0;
1338 mix->reset_on_sleep = 1;
1343 mix->anded_reset = 1;
1345 mix->reset_on_sleep = 0;
1363 mix->i2c.addr = (*paddr) >> 1;
1365 mix->i2c.addr = TAS_I2C_ADDR;
1368 DBG("(I) TAS i2c address is: %x\n", mix->i2c.addr);
1371 mix->i2c.init_client = tumbler_init_client;
1372 mix->i2c.name = "TAS3001c";
1375 mix->i2c.init_client = snapper_init_client;
1376 mix->i2c.name = "TAS3004";
1380 if ((err = snd_pmac_keywest_init(&mix->i2c)) < 0)
1405 if (mix->line_mute.addr != 0) {
1416 mix->drc_range = (TAS3001_DRC_MAX * 6) / 10;
1418 mix->drc_range = (TAS3004_DRC_MAX * 6) / 10;
1419 mix->drc_enable = 1; /* will be changed later if AUTO_DRC is set */
1421 tumbler_set_drc(mix);
1423 snapper_set_drc(mix);
1434 if ((mix->headphone_irq >=0 || mix->lineout_irq >= 0)
1442 if (mix->headphone_irq >= 0) {
1444 if ((err = request_irq(mix->headphone_irq, headphone_intr, 0,
1448 val = do_gpio_read(&mix->hp_detect);
1449 do_gpio_write(&mix->hp_detect, val | 0x80);
1451 if (mix->lineout_irq >= 0) {
1453 if ((err = request_irq(mix->lineout_irq, headphone_intr, 0,
1457 val = do_gpio_read(&mix->line_detect);
1458 do_gpio_write(&mix->line_detect, val | 0x80);