ALSA: snd-powermac: mixers for PowerMac G4 AGP

Add mixer controls for PowerMac G4 AGP (Screamer).

This patch fixes the regression in the recent snd-powermac which
doesn't support some G3/G4 PowerMacs:
http://lkml.org/lkml/2008/10/1/220

Signed-off-by: Risto Suominen <Risto.Suominen@gmail.com>
Tested-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Cc: stable@kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>

authored by Risto Suominen and committed by Takashi Iwai 4dbf95ba 24918b61

+16 -3
+16 -3
sound/ppc/awacs.c
··· 621 621 AWACS_SWITCH("CD Capture Switch", 0, SHIFT_MUX_CD, 0), 622 622 }; 623 623 624 + static struct snd_kcontrol_new snd_pmac_screamer_mixers_g4agp[] __initdata = { 625 + AWACS_VOLUME("Line out Playback Volume", 2, 6, 1), 626 + AWACS_VOLUME("Master Playback Volume", 5, 6, 1), 627 + AWACS_SWITCH("CD Capture Switch", 0, SHIFT_MUX_CD, 0), 628 + AWACS_SWITCH("Line Capture Switch", 0, SHIFT_MUX_MIC, 0), 629 + }; 630 + 624 631 static struct snd_kcontrol_new snd_pmac_awacs_mixers_pmac7500[] __initdata = { 625 632 AWACS_VOLUME("Line out Playback Volume", 2, 6, 1), 626 633 AWACS_SWITCH("CD Capture Switch", 0, SHIFT_MUX_CD, 0), ··· 775 768 #define IS_IMAC (machine_is_compatible("PowerMac2,1") \ 776 769 || machine_is_compatible("PowerMac2,2") \ 777 770 || machine_is_compatible("PowerMac4,1")) 771 + #define IS_G4AGP (machine_is_compatible("PowerMac3,1")) 778 772 779 773 static int imac; 780 774 ··· 858 850 { 859 851 int pm7500 = IS_PM7500; 860 852 int beige = IS_BEIGE; 853 + int g4agp = IS_G4AGP; 861 854 int err, vol; 862 855 863 856 imac = IS_IMAC; ··· 948 939 snd_pmac_awacs_mixers); 949 940 if (err < 0) 950 941 return err; 951 - if (beige) 942 + if (beige || g4agp) 952 943 ; 953 944 else if (chip->model == PMAC_SCREAMER) 954 945 err = build_mixers(chip, ARRAY_SIZE(snd_pmac_screamer_mixers2), ··· 970 961 err = build_mixers(chip, 971 962 ARRAY_SIZE(snd_pmac_screamer_mixers_imac), 972 963 snd_pmac_screamer_mixers_imac); 964 + else if (g4agp) 965 + err = build_mixers(chip, 966 + ARRAY_SIZE(snd_pmac_screamer_mixers_g4agp), 967 + snd_pmac_screamer_mixers_g4agp); 973 968 else 974 969 err = build_mixers(chip, 975 970 ARRAY_SIZE(snd_pmac_awacs_mixers_pmac), 976 971 snd_pmac_awacs_mixers_pmac); 977 972 if (err < 0) 978 973 return err; 979 - chip->master_sw_ctl = snd_ctl_new1((pm7500 || imac) 974 + chip->master_sw_ctl = snd_ctl_new1((pm7500 || imac || g4agp) 980 975 ? &snd_pmac_awacs_master_sw_imac 981 976 : &snd_pmac_awacs_master_sw, chip); 982 977 err = snd_ctl_add(chip->card, chip->master_sw_ctl); ··· 1025 1012 return err; 1026 1013 } 1027 1014 1028 - if (beige) 1015 + if (beige || g4agp) 1029 1016 err = build_mixers(chip, 1030 1017 ARRAY_SIZE(snd_pmac_screamer_mic_boost_beige), 1031 1018 snd_pmac_screamer_mic_boost_beige);