burgundy.c (75bf465f0bc33e9b776a46d6a1b9b990f5fb7c37) burgundy.c (c031b0cc77a1bef980eb360e317a6bbd54211326)
1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * PMac Burgundy lowlevel functions
4 *
5 * Copyright (c) by Takashi Iwai <tiwai@suse.de>
6 * code based on dmasound.c.
7 */
8

--- 440 unchanged lines hidden (view full) ---

449 .get = snd_pmac_burgundy_get_switch_b,\
450 .put = snd_pmac_burgundy_put_switch_b,\
451 .private_value = ((lmask) | ((rmask) << 8)\
452 | (ADDR2BASE(addr) << 16) | ((stereo) << 24)) }
453
454/*
455 * Burgundy mixers
456 */
1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * PMac Burgundy lowlevel functions
4 *
5 * Copyright (c) by Takashi Iwai <tiwai@suse.de>
6 * code based on dmasound.c.
7 */
8

--- 440 unchanged lines hidden (view full) ---

449 .get = snd_pmac_burgundy_get_switch_b,\
450 .put = snd_pmac_burgundy_put_switch_b,\
451 .private_value = ((lmask) | ((rmask) << 8)\
452 | (ADDR2BASE(addr) << 16) | ((stereo) << 24)) }
453
454/*
455 * Burgundy mixers
456 */
457static struct snd_kcontrol_new snd_pmac_burgundy_mixers[] = {
457static const struct snd_kcontrol_new snd_pmac_burgundy_mixers[] = {
458 BURGUNDY_VOLUME_W("Master Playback Volume", 0,
459 MASK_ADDR_BURGUNDY_MASTER_VOLUME, 8),
460 BURGUNDY_VOLUME_W("CD Capture Volume", 0,
461 MASK_ADDR_BURGUNDY_VOLCD, 16),
462 BURGUNDY_VOLUME_2B("Input Capture Volume", 0,
463 MASK_ADDR_BURGUNDY_VOLMIX01, 2),
464 BURGUNDY_VOLUME_2B("Mixer Playback Volume", 0,
465 MASK_ADDR_BURGUNDY_VOLMIX23, 0),

--- 11 unchanged lines hidden (view full) ---

477 * MASK_ADDR_BURGUNDY_HOSTIFAD, 0x02, 0, 0),
478 * BURGUNDY_SWITCH_B("Mixer Capture Switch", 0,
479 * MASK_ADDR_BURGUNDY_HOSTIFAD, 0x01, 0, 0),
480 * BURGUNDY_SWITCH_B("PCM out Capture Switch", 0,
481 * MASK_ADDR_BURGUNDY_HOSTIFEH, 0x02, 0, 0),
482 */ BURGUNDY_SWITCH_B("PCM Capture Switch", 0,
483 MASK_ADDR_BURGUNDY_HOSTIFEH, 0x01, 0, 0)
484};
458 BURGUNDY_VOLUME_W("Master Playback Volume", 0,
459 MASK_ADDR_BURGUNDY_MASTER_VOLUME, 8),
460 BURGUNDY_VOLUME_W("CD Capture Volume", 0,
461 MASK_ADDR_BURGUNDY_VOLCD, 16),
462 BURGUNDY_VOLUME_2B("Input Capture Volume", 0,
463 MASK_ADDR_BURGUNDY_VOLMIX01, 2),
464 BURGUNDY_VOLUME_2B("Mixer Playback Volume", 0,
465 MASK_ADDR_BURGUNDY_VOLMIX23, 0),

--- 11 unchanged lines hidden (view full) ---

477 * MASK_ADDR_BURGUNDY_HOSTIFAD, 0x02, 0, 0),
478 * BURGUNDY_SWITCH_B("Mixer Capture Switch", 0,
479 * MASK_ADDR_BURGUNDY_HOSTIFAD, 0x01, 0, 0),
480 * BURGUNDY_SWITCH_B("PCM out Capture Switch", 0,
481 * MASK_ADDR_BURGUNDY_HOSTIFEH, 0x02, 0, 0),
482 */ BURGUNDY_SWITCH_B("PCM Capture Switch", 0,
483 MASK_ADDR_BURGUNDY_HOSTIFEH, 0x01, 0, 0)
484};
485static struct snd_kcontrol_new snd_pmac_burgundy_mixers_imac[] = {
485static const struct snd_kcontrol_new snd_pmac_burgundy_mixers_imac[] = {
486 BURGUNDY_VOLUME_W("Line in Capture Volume", 0,
487 MASK_ADDR_BURGUNDY_VOLLINE, 16),
488 BURGUNDY_VOLUME_W("Mic Capture Volume", 0,
489 MASK_ADDR_BURGUNDY_VOLMIC, 16),
490 BURGUNDY_VOLUME_B("Line in Gain Capture Volume", 0,
491 MASK_ADDR_BURGUNDY_GAINLINE, 1, 0),
492 BURGUNDY_VOLUME_B("Mic Gain Capture Volume", 0,
493 MASK_ADDR_BURGUNDY_GAINMIC, 1, 0),

--- 9 unchanged lines hidden (view full) ---

503 MASK_ADDR_BURGUNDY_CAPTURESELECTS, 2, 18, 1),
504 BURGUNDY_SWITCH_W("Line in Playback Switch", 0,
505 MASK_ADDR_BURGUNDY_OUTPUTSELECTS, 1, 17, 1),
506 BURGUNDY_SWITCH_W("Mic Playback Switch", 0,
507 MASK_ADDR_BURGUNDY_OUTPUTSELECTS, 2, 18, 1),
508 BURGUNDY_SWITCH_B("Mic Boost Capture Switch", 0,
509 MASK_ADDR_BURGUNDY_INPBOOST, 0x40, 0x80, 1)
510};
486 BURGUNDY_VOLUME_W("Line in Capture Volume", 0,
487 MASK_ADDR_BURGUNDY_VOLLINE, 16),
488 BURGUNDY_VOLUME_W("Mic Capture Volume", 0,
489 MASK_ADDR_BURGUNDY_VOLMIC, 16),
490 BURGUNDY_VOLUME_B("Line in Gain Capture Volume", 0,
491 MASK_ADDR_BURGUNDY_GAINLINE, 1, 0),
492 BURGUNDY_VOLUME_B("Mic Gain Capture Volume", 0,
493 MASK_ADDR_BURGUNDY_GAINMIC, 1, 0),

--- 9 unchanged lines hidden (view full) ---

503 MASK_ADDR_BURGUNDY_CAPTURESELECTS, 2, 18, 1),
504 BURGUNDY_SWITCH_W("Line in Playback Switch", 0,
505 MASK_ADDR_BURGUNDY_OUTPUTSELECTS, 1, 17, 1),
506 BURGUNDY_SWITCH_W("Mic Playback Switch", 0,
507 MASK_ADDR_BURGUNDY_OUTPUTSELECTS, 2, 18, 1),
508 BURGUNDY_SWITCH_B("Mic Boost Capture Switch", 0,
509 MASK_ADDR_BURGUNDY_INPBOOST, 0x40, 0x80, 1)
510};
511static struct snd_kcontrol_new snd_pmac_burgundy_mixers_pmac[] = {
511static const struct snd_kcontrol_new snd_pmac_burgundy_mixers_pmac[] = {
512 BURGUNDY_VOLUME_W("Line in Capture Volume", 0,
513 MASK_ADDR_BURGUNDY_VOLMIC, 16),
514 BURGUNDY_VOLUME_B("Line in Gain Capture Volume", 0,
515 MASK_ADDR_BURGUNDY_GAINMIC, 1, 0),
516 BURGUNDY_VOLUME_B("Speaker Playback Volume", 0,
517 MASK_ADDR_BURGUNDY_ATTENMONO, 0, 1),
518 BURGUNDY_VOLUME_B("Line out Playback Volume", 0,
519 MASK_ADDR_BURGUNDY_ATTENSPEAKER, 1, 1),
520 BURGUNDY_SWITCH_W("Line in Capture Switch", 0,
521 MASK_ADDR_BURGUNDY_CAPTURESELECTS, 2, 18, 1),
522 BURGUNDY_SWITCH_W("Line in Playback Switch", 0,
523 MASK_ADDR_BURGUNDY_OUTPUTSELECTS, 2, 18, 1),
524/* BURGUNDY_SWITCH_B("Line in Boost Capture Switch", 0,
525 * MASK_ADDR_BURGUNDY_INPBOOST, 0x40, 0x80, 1) */
526};
512 BURGUNDY_VOLUME_W("Line in Capture Volume", 0,
513 MASK_ADDR_BURGUNDY_VOLMIC, 16),
514 BURGUNDY_VOLUME_B("Line in Gain Capture Volume", 0,
515 MASK_ADDR_BURGUNDY_GAINMIC, 1, 0),
516 BURGUNDY_VOLUME_B("Speaker Playback Volume", 0,
517 MASK_ADDR_BURGUNDY_ATTENMONO, 0, 1),
518 BURGUNDY_VOLUME_B("Line out Playback Volume", 0,
519 MASK_ADDR_BURGUNDY_ATTENSPEAKER, 1, 1),
520 BURGUNDY_SWITCH_W("Line in Capture Switch", 0,
521 MASK_ADDR_BURGUNDY_CAPTURESELECTS, 2, 18, 1),
522 BURGUNDY_SWITCH_W("Line in Playback Switch", 0,
523 MASK_ADDR_BURGUNDY_OUTPUTSELECTS, 2, 18, 1),
524/* BURGUNDY_SWITCH_B("Line in Boost Capture Switch", 0,
525 * MASK_ADDR_BURGUNDY_INPBOOST, 0x40, 0x80, 1) */
526};
527static struct snd_kcontrol_new snd_pmac_burgundy_master_sw_imac =
527static const struct snd_kcontrol_new snd_pmac_burgundy_master_sw_imac =
528BURGUNDY_SWITCH_B("Master Playback Switch", 0,
529 MASK_ADDR_BURGUNDY_MORE_OUTPUTENABLES,
530 BURGUNDY_OUTPUT_LEFT | BURGUNDY_LINEOUT_LEFT | BURGUNDY_HP_LEFT,
531 BURGUNDY_OUTPUT_RIGHT | BURGUNDY_LINEOUT_RIGHT | BURGUNDY_HP_RIGHT, 1);
528BURGUNDY_SWITCH_B("Master Playback Switch", 0,
529 MASK_ADDR_BURGUNDY_MORE_OUTPUTENABLES,
530 BURGUNDY_OUTPUT_LEFT | BURGUNDY_LINEOUT_LEFT | BURGUNDY_HP_LEFT,
531 BURGUNDY_OUTPUT_RIGHT | BURGUNDY_LINEOUT_RIGHT | BURGUNDY_HP_RIGHT, 1);
532static struct snd_kcontrol_new snd_pmac_burgundy_master_sw_pmac =
532static const struct snd_kcontrol_new snd_pmac_burgundy_master_sw_pmac =
533BURGUNDY_SWITCH_B("Master Playback Switch", 0,
534 MASK_ADDR_BURGUNDY_MORE_OUTPUTENABLES,
535 BURGUNDY_OUTPUT_INTERN
536 | BURGUNDY_OUTPUT_LEFT, BURGUNDY_OUTPUT_RIGHT, 1);
533BURGUNDY_SWITCH_B("Master Playback Switch", 0,
534 MASK_ADDR_BURGUNDY_MORE_OUTPUTENABLES,
535 BURGUNDY_OUTPUT_INTERN
536 | BURGUNDY_OUTPUT_LEFT, BURGUNDY_OUTPUT_RIGHT, 1);
537static struct snd_kcontrol_new snd_pmac_burgundy_speaker_sw_imac =
537static const struct snd_kcontrol_new snd_pmac_burgundy_speaker_sw_imac =
538BURGUNDY_SWITCH_B("Speaker Playback Switch", 0,
539 MASK_ADDR_BURGUNDY_MORE_OUTPUTENABLES,
540 BURGUNDY_OUTPUT_LEFT, BURGUNDY_OUTPUT_RIGHT, 1);
538BURGUNDY_SWITCH_B("Speaker Playback Switch", 0,
539 MASK_ADDR_BURGUNDY_MORE_OUTPUTENABLES,
540 BURGUNDY_OUTPUT_LEFT, BURGUNDY_OUTPUT_RIGHT, 1);
541static struct snd_kcontrol_new snd_pmac_burgundy_speaker_sw_pmac =
541static const struct snd_kcontrol_new snd_pmac_burgundy_speaker_sw_pmac =
542BURGUNDY_SWITCH_B("Speaker Playback Switch", 0,
543 MASK_ADDR_BURGUNDY_MORE_OUTPUTENABLES,
544 BURGUNDY_OUTPUT_INTERN, 0, 0);
542BURGUNDY_SWITCH_B("Speaker Playback Switch", 0,
543 MASK_ADDR_BURGUNDY_MORE_OUTPUTENABLES,
544 BURGUNDY_OUTPUT_INTERN, 0, 0);
545static struct snd_kcontrol_new snd_pmac_burgundy_line_sw_imac =
545static const struct snd_kcontrol_new snd_pmac_burgundy_line_sw_imac =
546BURGUNDY_SWITCH_B("Line out Playback Switch", 0,
547 MASK_ADDR_BURGUNDY_MORE_OUTPUTENABLES,
548 BURGUNDY_LINEOUT_LEFT, BURGUNDY_LINEOUT_RIGHT, 1);
546BURGUNDY_SWITCH_B("Line out Playback Switch", 0,
547 MASK_ADDR_BURGUNDY_MORE_OUTPUTENABLES,
548 BURGUNDY_LINEOUT_LEFT, BURGUNDY_LINEOUT_RIGHT, 1);
549static struct snd_kcontrol_new snd_pmac_burgundy_line_sw_pmac =
549static const struct snd_kcontrol_new snd_pmac_burgundy_line_sw_pmac =
550BURGUNDY_SWITCH_B("Line out Playback Switch", 0,
551 MASK_ADDR_BURGUNDY_MORE_OUTPUTENABLES,
552 BURGUNDY_OUTPUT_LEFT, BURGUNDY_OUTPUT_RIGHT, 1);
550BURGUNDY_SWITCH_B("Line out Playback Switch", 0,
551 MASK_ADDR_BURGUNDY_MORE_OUTPUTENABLES,
552 BURGUNDY_OUTPUT_LEFT, BURGUNDY_OUTPUT_RIGHT, 1);
553static struct snd_kcontrol_new snd_pmac_burgundy_hp_sw_imac =
553static const struct snd_kcontrol_new snd_pmac_burgundy_hp_sw_imac =
554BURGUNDY_SWITCH_B("Headphone Playback Switch", 0,
555 MASK_ADDR_BURGUNDY_MORE_OUTPUTENABLES,
556 BURGUNDY_HP_LEFT, BURGUNDY_HP_RIGHT, 1);
557
558
559#ifdef PMAC_SUPPORT_AUTOMUTE
560/*
561 * auto-mute stuffs

--- 158 unchanged lines hidden ---
554BURGUNDY_SWITCH_B("Headphone Playback Switch", 0,
555 MASK_ADDR_BURGUNDY_MORE_OUTPUTENABLES,
556 BURGUNDY_HP_LEFT, BURGUNDY_HP_RIGHT, 1);
557
558
559#ifdef PMAC_SUPPORT_AUTOMUTE
560/*
561 * auto-mute stuffs

--- 158 unchanged lines hidden ---