burgundy.c (2d8ad8719591fa803b0d589ed057fa46f49b7155) | burgundy.c (15afafc2565bc785eb7a440b8b4a53f77910cf04) |
---|---|
1/* 2 * PMac Burgundy lowlevel functions 3 * 4 * Copyright (c) by Takashi Iwai <tiwai@suse.de> 5 * code based on dmasound.c. 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by --- 453 unchanged lines hidden (view full) --- 462 .get = snd_pmac_burgundy_get_switch_b,\ 463 .put = snd_pmac_burgundy_put_switch_b,\ 464 .private_value = ((lmask) | ((rmask) << 8)\ 465 | (ADDR2BASE(addr) << 16) | ((stereo) << 24)) } 466 467/* 468 * Burgundy mixers 469 */ | 1/* 2 * PMac Burgundy lowlevel functions 3 * 4 * Copyright (c) by Takashi Iwai <tiwai@suse.de> 5 * code based on dmasound.c. 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by --- 453 unchanged lines hidden (view full) --- 462 .get = snd_pmac_burgundy_get_switch_b,\ 463 .put = snd_pmac_burgundy_put_switch_b,\ 464 .private_value = ((lmask) | ((rmask) << 8)\ 465 | (ADDR2BASE(addr) << 16) | ((stereo) << 24)) } 466 467/* 468 * Burgundy mixers 469 */ |
470static struct snd_kcontrol_new snd_pmac_burgundy_mixers[] __devinitdata = { | 470static struct snd_kcontrol_new snd_pmac_burgundy_mixers[] = { |
471 BURGUNDY_VOLUME_W("Master Playback Volume", 0, 472 MASK_ADDR_BURGUNDY_MASTER_VOLUME, 8), 473 BURGUNDY_VOLUME_W("CD Capture Volume", 0, 474 MASK_ADDR_BURGUNDY_VOLCD, 16), 475 BURGUNDY_VOLUME_2B("Input Capture Volume", 0, 476 MASK_ADDR_BURGUNDY_VOLMIX01, 2), 477 BURGUNDY_VOLUME_2B("Mixer Playback Volume", 0, 478 MASK_ADDR_BURGUNDY_VOLMIX23, 0), --- 11 unchanged lines hidden (view full) --- 490 * MASK_ADDR_BURGUNDY_HOSTIFAD, 0x02, 0, 0), 491 * BURGUNDY_SWITCH_B("Mixer Capture Switch", 0, 492 * MASK_ADDR_BURGUNDY_HOSTIFAD, 0x01, 0, 0), 493 * BURGUNDY_SWITCH_B("PCM out Capture Switch", 0, 494 * MASK_ADDR_BURGUNDY_HOSTIFEH, 0x02, 0, 0), 495 */ BURGUNDY_SWITCH_B("PCM Capture Switch", 0, 496 MASK_ADDR_BURGUNDY_HOSTIFEH, 0x01, 0, 0) 497}; | 471 BURGUNDY_VOLUME_W("Master Playback Volume", 0, 472 MASK_ADDR_BURGUNDY_MASTER_VOLUME, 8), 473 BURGUNDY_VOLUME_W("CD Capture Volume", 0, 474 MASK_ADDR_BURGUNDY_VOLCD, 16), 475 BURGUNDY_VOLUME_2B("Input Capture Volume", 0, 476 MASK_ADDR_BURGUNDY_VOLMIX01, 2), 477 BURGUNDY_VOLUME_2B("Mixer Playback Volume", 0, 478 MASK_ADDR_BURGUNDY_VOLMIX23, 0), --- 11 unchanged lines hidden (view full) --- 490 * MASK_ADDR_BURGUNDY_HOSTIFAD, 0x02, 0, 0), 491 * BURGUNDY_SWITCH_B("Mixer Capture Switch", 0, 492 * MASK_ADDR_BURGUNDY_HOSTIFAD, 0x01, 0, 0), 493 * BURGUNDY_SWITCH_B("PCM out Capture Switch", 0, 494 * MASK_ADDR_BURGUNDY_HOSTIFEH, 0x02, 0, 0), 495 */ BURGUNDY_SWITCH_B("PCM Capture Switch", 0, 496 MASK_ADDR_BURGUNDY_HOSTIFEH, 0x01, 0, 0) 497}; |
498static struct snd_kcontrol_new snd_pmac_burgundy_mixers_imac[] __devinitdata = { | 498static struct snd_kcontrol_new snd_pmac_burgundy_mixers_imac[] = { |
499 BURGUNDY_VOLUME_W("Line in Capture Volume", 0, 500 MASK_ADDR_BURGUNDY_VOLLINE, 16), 501 BURGUNDY_VOLUME_W("Mic Capture Volume", 0, 502 MASK_ADDR_BURGUNDY_VOLMIC, 16), 503 BURGUNDY_VOLUME_B("Line in Gain Capture Volume", 0, 504 MASK_ADDR_BURGUNDY_GAINLINE, 1, 0), 505 BURGUNDY_VOLUME_B("Mic Gain Capture Volume", 0, 506 MASK_ADDR_BURGUNDY_GAINMIC, 1, 0), --- 9 unchanged lines hidden (view full) --- 516 MASK_ADDR_BURGUNDY_CAPTURESELECTS, 2, 18, 1), 517 BURGUNDY_SWITCH_W("Line in Playback Switch", 0, 518 MASK_ADDR_BURGUNDY_OUTPUTSELECTS, 1, 17, 1), 519 BURGUNDY_SWITCH_W("Mic Playback Switch", 0, 520 MASK_ADDR_BURGUNDY_OUTPUTSELECTS, 2, 18, 1), 521 BURGUNDY_SWITCH_B("Mic Boost Capture Switch", 0, 522 MASK_ADDR_BURGUNDY_INPBOOST, 0x40, 0x80, 1) 523}; | 499 BURGUNDY_VOLUME_W("Line in Capture Volume", 0, 500 MASK_ADDR_BURGUNDY_VOLLINE, 16), 501 BURGUNDY_VOLUME_W("Mic Capture Volume", 0, 502 MASK_ADDR_BURGUNDY_VOLMIC, 16), 503 BURGUNDY_VOLUME_B("Line in Gain Capture Volume", 0, 504 MASK_ADDR_BURGUNDY_GAINLINE, 1, 0), 505 BURGUNDY_VOLUME_B("Mic Gain Capture Volume", 0, 506 MASK_ADDR_BURGUNDY_GAINMIC, 1, 0), --- 9 unchanged lines hidden (view full) --- 516 MASK_ADDR_BURGUNDY_CAPTURESELECTS, 2, 18, 1), 517 BURGUNDY_SWITCH_W("Line in Playback Switch", 0, 518 MASK_ADDR_BURGUNDY_OUTPUTSELECTS, 1, 17, 1), 519 BURGUNDY_SWITCH_W("Mic Playback Switch", 0, 520 MASK_ADDR_BURGUNDY_OUTPUTSELECTS, 2, 18, 1), 521 BURGUNDY_SWITCH_B("Mic Boost Capture Switch", 0, 522 MASK_ADDR_BURGUNDY_INPBOOST, 0x40, 0x80, 1) 523}; |
524static struct snd_kcontrol_new snd_pmac_burgundy_mixers_pmac[] __devinitdata = { | 524static struct snd_kcontrol_new snd_pmac_burgundy_mixers_pmac[] = { |
525 BURGUNDY_VOLUME_W("Line in Capture Volume", 0, 526 MASK_ADDR_BURGUNDY_VOLMIC, 16), 527 BURGUNDY_VOLUME_B("Line in Gain Capture Volume", 0, 528 MASK_ADDR_BURGUNDY_GAINMIC, 1, 0), 529 BURGUNDY_VOLUME_B("Speaker Playback Volume", 0, 530 MASK_ADDR_BURGUNDY_ATTENMONO, 0, 1), 531 BURGUNDY_VOLUME_B("Line out Playback Volume", 0, 532 MASK_ADDR_BURGUNDY_ATTENSPEAKER, 1, 1), 533 BURGUNDY_SWITCH_W("Line in Capture Switch", 0, 534 MASK_ADDR_BURGUNDY_CAPTURESELECTS, 2, 18, 1), 535 BURGUNDY_SWITCH_W("Line in Playback Switch", 0, 536 MASK_ADDR_BURGUNDY_OUTPUTSELECTS, 2, 18, 1), 537/* BURGUNDY_SWITCH_B("Line in Boost Capture Switch", 0, 538 * MASK_ADDR_BURGUNDY_INPBOOST, 0x40, 0x80, 1) */ 539}; | 525 BURGUNDY_VOLUME_W("Line in Capture Volume", 0, 526 MASK_ADDR_BURGUNDY_VOLMIC, 16), 527 BURGUNDY_VOLUME_B("Line in Gain Capture Volume", 0, 528 MASK_ADDR_BURGUNDY_GAINMIC, 1, 0), 529 BURGUNDY_VOLUME_B("Speaker Playback Volume", 0, 530 MASK_ADDR_BURGUNDY_ATTENMONO, 0, 1), 531 BURGUNDY_VOLUME_B("Line out Playback Volume", 0, 532 MASK_ADDR_BURGUNDY_ATTENSPEAKER, 1, 1), 533 BURGUNDY_SWITCH_W("Line in Capture Switch", 0, 534 MASK_ADDR_BURGUNDY_CAPTURESELECTS, 2, 18, 1), 535 BURGUNDY_SWITCH_W("Line in Playback Switch", 0, 536 MASK_ADDR_BURGUNDY_OUTPUTSELECTS, 2, 18, 1), 537/* BURGUNDY_SWITCH_B("Line in Boost Capture Switch", 0, 538 * MASK_ADDR_BURGUNDY_INPBOOST, 0x40, 0x80, 1) */ 539}; |
540static struct snd_kcontrol_new snd_pmac_burgundy_master_sw_imac __devinitdata = | 540static struct snd_kcontrol_new snd_pmac_burgundy_master_sw_imac = |
541BURGUNDY_SWITCH_B("Master Playback Switch", 0, 542 MASK_ADDR_BURGUNDY_MORE_OUTPUTENABLES, 543 BURGUNDY_OUTPUT_LEFT | BURGUNDY_LINEOUT_LEFT | BURGUNDY_HP_LEFT, 544 BURGUNDY_OUTPUT_RIGHT | BURGUNDY_LINEOUT_RIGHT | BURGUNDY_HP_RIGHT, 1); | 541BURGUNDY_SWITCH_B("Master Playback Switch", 0, 542 MASK_ADDR_BURGUNDY_MORE_OUTPUTENABLES, 543 BURGUNDY_OUTPUT_LEFT | BURGUNDY_LINEOUT_LEFT | BURGUNDY_HP_LEFT, 544 BURGUNDY_OUTPUT_RIGHT | BURGUNDY_LINEOUT_RIGHT | BURGUNDY_HP_RIGHT, 1); |
545static struct snd_kcontrol_new snd_pmac_burgundy_master_sw_pmac __devinitdata = | 545static struct snd_kcontrol_new snd_pmac_burgundy_master_sw_pmac = |
546BURGUNDY_SWITCH_B("Master Playback Switch", 0, 547 MASK_ADDR_BURGUNDY_MORE_OUTPUTENABLES, 548 BURGUNDY_OUTPUT_INTERN 549 | BURGUNDY_OUTPUT_LEFT, BURGUNDY_OUTPUT_RIGHT, 1); | 546BURGUNDY_SWITCH_B("Master Playback Switch", 0, 547 MASK_ADDR_BURGUNDY_MORE_OUTPUTENABLES, 548 BURGUNDY_OUTPUT_INTERN 549 | BURGUNDY_OUTPUT_LEFT, BURGUNDY_OUTPUT_RIGHT, 1); |
550static struct snd_kcontrol_new snd_pmac_burgundy_speaker_sw_imac __devinitdata = | 550static struct snd_kcontrol_new snd_pmac_burgundy_speaker_sw_imac = |
551BURGUNDY_SWITCH_B("Speaker Playback Switch", 0, 552 MASK_ADDR_BURGUNDY_MORE_OUTPUTENABLES, 553 BURGUNDY_OUTPUT_LEFT, BURGUNDY_OUTPUT_RIGHT, 1); | 551BURGUNDY_SWITCH_B("Speaker Playback Switch", 0, 552 MASK_ADDR_BURGUNDY_MORE_OUTPUTENABLES, 553 BURGUNDY_OUTPUT_LEFT, BURGUNDY_OUTPUT_RIGHT, 1); |
554static struct snd_kcontrol_new snd_pmac_burgundy_speaker_sw_pmac __devinitdata = | 554static struct snd_kcontrol_new snd_pmac_burgundy_speaker_sw_pmac = |
555BURGUNDY_SWITCH_B("Speaker Playback Switch", 0, 556 MASK_ADDR_BURGUNDY_MORE_OUTPUTENABLES, 557 BURGUNDY_OUTPUT_INTERN, 0, 0); | 555BURGUNDY_SWITCH_B("Speaker Playback Switch", 0, 556 MASK_ADDR_BURGUNDY_MORE_OUTPUTENABLES, 557 BURGUNDY_OUTPUT_INTERN, 0, 0); |
558static struct snd_kcontrol_new snd_pmac_burgundy_line_sw_imac __devinitdata = | 558static struct snd_kcontrol_new snd_pmac_burgundy_line_sw_imac = |
559BURGUNDY_SWITCH_B("Line out Playback Switch", 0, 560 MASK_ADDR_BURGUNDY_MORE_OUTPUTENABLES, 561 BURGUNDY_LINEOUT_LEFT, BURGUNDY_LINEOUT_RIGHT, 1); | 559BURGUNDY_SWITCH_B("Line out Playback Switch", 0, 560 MASK_ADDR_BURGUNDY_MORE_OUTPUTENABLES, 561 BURGUNDY_LINEOUT_LEFT, BURGUNDY_LINEOUT_RIGHT, 1); |
562static struct snd_kcontrol_new snd_pmac_burgundy_line_sw_pmac __devinitdata = | 562static struct snd_kcontrol_new snd_pmac_burgundy_line_sw_pmac = |
563BURGUNDY_SWITCH_B("Line out Playback Switch", 0, 564 MASK_ADDR_BURGUNDY_MORE_OUTPUTENABLES, 565 BURGUNDY_OUTPUT_LEFT, BURGUNDY_OUTPUT_RIGHT, 1); | 563BURGUNDY_SWITCH_B("Line out Playback Switch", 0, 564 MASK_ADDR_BURGUNDY_MORE_OUTPUTENABLES, 565 BURGUNDY_OUTPUT_LEFT, BURGUNDY_OUTPUT_RIGHT, 1); |
566static struct snd_kcontrol_new snd_pmac_burgundy_hp_sw_imac __devinitdata = | 566static struct snd_kcontrol_new snd_pmac_burgundy_hp_sw_imac = |
567BURGUNDY_SWITCH_B("Headphone Playback Switch", 0, 568 MASK_ADDR_BURGUNDY_MORE_OUTPUTENABLES, 569 BURGUNDY_HP_LEFT, BURGUNDY_HP_RIGHT, 1); 570 571 572#ifdef PMAC_SUPPORT_AUTOMUTE 573/* 574 * auto-mute stuffs --- 37 unchanged lines hidden (view full) --- 612 } 613} 614#endif /* PMAC_SUPPORT_AUTOMUTE */ 615 616 617/* 618 * initialize burgundy 619 */ | 567BURGUNDY_SWITCH_B("Headphone Playback Switch", 0, 568 MASK_ADDR_BURGUNDY_MORE_OUTPUTENABLES, 569 BURGUNDY_HP_LEFT, BURGUNDY_HP_RIGHT, 1); 570 571 572#ifdef PMAC_SUPPORT_AUTOMUTE 573/* 574 * auto-mute stuffs --- 37 unchanged lines hidden (view full) --- 612 } 613} 614#endif /* PMAC_SUPPORT_AUTOMUTE */ 615 616 617/* 618 * initialize burgundy 619 */ |
620int __devinit snd_pmac_burgundy_init(struct snd_pmac *chip) | 620int snd_pmac_burgundy_init(struct snd_pmac *chip) |
621{ 622 int imac = of_machine_is_compatible("iMac"); 623 int i, err; 624 625 /* Checks to see the chip is alive and kicking */ 626 if ((in_le32(&chip->awacs->codec_ctrl) & MASK_ERRCODE) == 0xf0000) { 627 printk(KERN_WARNING "pmac burgundy: disabled by MacOS :-(\n"); 628 return 1; --- 104 unchanged lines hidden --- | 621{ 622 int imac = of_machine_is_compatible("iMac"); 623 int i, err; 624 625 /* Checks to see the chip is alive and kicking */ 626 if ((in_le32(&chip->awacs->codec_ctrl) & MASK_ERRCODE) == 0xf0000) { 627 printk(KERN_WARNING "pmac burgundy: disabled by MacOS :-(\n"); 628 return 1; --- 104 unchanged lines hidden --- |