* [PATCH - snd-powermac 1/5] Correct HP detection and input selectors for PMac 5500 @ 2009-01-20 20:01 Risto Suominen 2009-01-20 20:01 ` [PATCH - snd-powermac 2/5] Correct volume controls for PowerBook G3 Lombard Risto Suominen 0 siblings, 1 reply; 5+ messages in thread From: Risto Suominen @ 2009-01-20 20:01 UTC (permalink / raw) To: tiwai; +Cc: alsa-devel, Risto Suominen Correct headphone detection and input selectors for PowerMac 5500 (AWACS). Signed-off-by: Risto Suominen <Risto.Suominen@gmail.com> diff --git a/sound/ppc/awacs.c b/sound/ppc/awacs.c index 7bd33e6..0258ccb 100644 --- a/sound/ppc/awacs.c +++ b/sound/ppc/awacs.c @@ -767,6 +767,7 @@ static void snd_pmac_awacs_resume(struct snd_pmac *chip) #endif /* CONFIG_PM */ #define IS_PM7500 (machine_is_compatible("AAPL,7500")) +#define IS_PM5500 (machine_is_compatible("AAPL,e411")) #define IS_BEIGE (machine_is_compatible("AAPL,Gossamer")) #define IS_IMAC1 (machine_is_compatible("PowerMac2,1")) #define IS_IMAC2 (machine_is_compatible("PowerMac2,2") \ @@ -858,6 +859,7 @@ int __init snd_pmac_awacs_init(struct snd_pmac *chip) { int pm7500 = IS_PM7500; + int pm5500 = IS_PM5500; int beige = IS_BEIGE; int g4agp = IS_G4AGP; int imac; @@ -915,7 +917,7 @@ snd_pmac_awacs_init(struct snd_pmac *chip) /* set headphone-jack detection bit */ switch (chip->model) { case PMAC_AWACS: - chip->hp_stat_mask = pm7500 ? MASK_HDPCONN + chip->hp_stat_mask = pm7500 || pm5500 ? MASK_HDPCONN : MASK_LOCONN; break; case PMAC_SCREAMER: @@ -954,7 +956,7 @@ snd_pmac_awacs_init(struct snd_pmac *chip) return err; if (beige || g4agp) ; - else if (chip->model == PMAC_SCREAMER) + else if (chip->model == PMAC_SCREAMER || pm5500) err = build_mixers(chip, ARRAY_SIZE(snd_pmac_screamer_mixers2), snd_pmac_screamer_mixers2); else if (!pm7500) -- 1.5.4.3 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH - snd-powermac 2/5] Correct volume controls for PowerBook G3 Lombard 2009-01-20 20:01 [PATCH - snd-powermac 1/5] Correct HP detection and input selectors for PMac 5500 Risto Suominen @ 2009-01-20 20:01 ` Risto Suominen 2009-01-20 20:01 ` [PATCH - snd-powermac 3/5] Correct volume controls and HP detection for PMac 8500/9500 Risto Suominen 0 siblings, 1 reply; 5+ messages in thread From: Risto Suominen @ 2009-01-20 20:01 UTC (permalink / raw) To: tiwai; +Cc: alsa-devel, Risto Suominen Correct volume controls for PowerBook G3 Lombard (Screamer). Signed-off-by: Risto Suominen <Risto.Suominen@gmail.com> diff --git a/sound/ppc/awacs.c b/sound/ppc/awacs.c index 0258ccb..d89c23e 100644 --- a/sound/ppc/awacs.c +++ b/sound/ppc/awacs.c @@ -773,6 +773,7 @@ static void snd_pmac_awacs_resume(struct snd_pmac *chip) #define IS_IMAC2 (machine_is_compatible("PowerMac2,2") \ || machine_is_compatible("PowerMac4,1")) #define IS_G4AGP (machine_is_compatible("PowerMac3,1")) +#define IS_LOMBARD (machine_is_compatible("PowerBook1,1")) static int imac1, imac2; @@ -862,6 +863,7 @@ snd_pmac_awacs_init(struct snd_pmac *chip) int pm5500 = IS_PM5500; int beige = IS_BEIGE; int g4agp = IS_G4AGP; + int lombard = IS_LOMBARD; int imac; int err, vol; @@ -972,7 +974,7 @@ snd_pmac_awacs_init(struct snd_pmac *chip) err = build_mixers(chip, ARRAY_SIZE(snd_pmac_screamer_mixers_beige), snd_pmac_screamer_mixers_beige); - else if (imac) + else if (imac || lombard) err = build_mixers(chip, ARRAY_SIZE(snd_pmac_screamer_mixers_imac), snd_pmac_screamer_mixers_imac); @@ -986,7 +988,7 @@ snd_pmac_awacs_init(struct snd_pmac *chip) snd_pmac_awacs_mixers_pmac); if (err < 0) return err; - chip->master_sw_ctl = snd_ctl_new1((pm7500 || imac || g4agp) + chip->master_sw_ctl = snd_ctl_new1((pm7500 || imac || g4agp || lombard) ? &snd_pmac_awacs_master_sw_imac : &snd_pmac_awacs_master_sw, chip); err = snd_ctl_add(chip->card, chip->master_sw_ctl); -- 1.5.4.3 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH - snd-powermac 3/5] Correct volume controls and HP detection for PMac 8500/9500 2009-01-20 20:01 ` [PATCH - snd-powermac 2/5] Correct volume controls for PowerBook G3 Lombard Risto Suominen @ 2009-01-20 20:01 ` Risto Suominen 2009-01-20 20:01 ` [PATCH - snd-powermac 4/5] Allow input from mic in iBook G3 Dual-USB Risto Suominen 0 siblings, 1 reply; 5+ messages in thread From: Risto Suominen @ 2009-01-20 20:01 UTC (permalink / raw) To: tiwai; +Cc: alsa-devel, Risto Suominen Correct volume controls and headphone detection for PowerMac 8500/9500 (AWACS). Signed-off-by: Risto Suominen <Risto.Suominen@gmail.com> diff --git a/sound/ppc/awacs.c b/sound/ppc/awacs.c index d89c23e..9abbf64 100644 --- a/sound/ppc/awacs.c +++ b/sound/ppc/awacs.c @@ -766,7 +766,9 @@ static void snd_pmac_awacs_resume(struct snd_pmac *chip) } #endif /* CONFIG_PM */ -#define IS_PM7500 (machine_is_compatible("AAPL,7500")) +#define IS_PM7500 (machine_is_compatible("AAPL,7500") \ + || machine_is_compatible("AAPL,8500") \ + || machine_is_compatible("AAPL,9500")) #define IS_PM5500 (machine_is_compatible("AAPL,e411")) #define IS_BEIGE (machine_is_compatible("AAPL,Gossamer")) #define IS_IMAC1 (machine_is_compatible("PowerMac2,1")) -- 1.5.4.3 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH - snd-powermac 4/5] Allow input from mic in iBook G3 Dual-USB 2009-01-20 20:01 ` [PATCH - snd-powermac 3/5] Correct volume controls and HP detection for PMac 8500/9500 Risto Suominen @ 2009-01-20 20:01 ` Risto Suominen 2009-01-20 20:01 ` [PATCH - snd-powermac 5/5] Add vmaster controls for Pmac 5500, iMac G3 SL, and PBook G3 Lombard Risto Suominen 0 siblings, 1 reply; 5+ messages in thread From: Risto Suominen @ 2009-01-20 20:01 UTC (permalink / raw) To: tiwai; +Cc: alsa-devel, Risto Suominen Allow input from microphone on iBook G3 Dual-USB (Tumbler). Signed-off-by: Risto Suominen <Risto.Suominen@gmail.com> diff --git a/sound/ppc/pmac.c b/sound/ppc/pmac.c index af76ee8..bd8f92b 100644 --- a/sound/ppc/pmac.c +++ b/sound/ppc/pmac.c @@ -1033,7 +1033,8 @@ static int __init snd_pmac_detect(struct snd_pmac *chip) } if (of_device_is_compatible(sound, "tumbler")) { chip->model = PMAC_TUMBLER; - chip->can_capture = machine_is_compatible("PowerMac4,2"); + chip->can_capture = machine_is_compatible("PowerMac4,2") + || machine_is_compatible("PowerBook4,1"); chip->can_duplex = 0; // chip->can_byte_swap = 0; /* FIXME: check this */ chip->num_freqs = ARRAY_SIZE(tumbler_freqs); -- 1.5.4.3 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH - snd-powermac 5/5] Add vmaster controls for Pmac 5500, iMac G3 SL, and PBook G3 Lombard 2009-01-20 20:01 ` [PATCH - snd-powermac 4/5] Allow input from mic in iBook G3 Dual-USB Risto Suominen @ 2009-01-20 20:01 ` Risto Suominen 0 siblings, 0 replies; 5+ messages in thread From: Risto Suominen @ 2009-01-20 20:01 UTC (permalink / raw) To: tiwai; +Cc: alsa-devel, Risto Suominen Add virtual master controls for PowerMac 5500 (AWACS) and iMac G3 Slot-loading and PowerBook G3 Lombard (Screamer). Signed-off-by: Risto Suominen <Risto.Suominen@gmail.com> diff --git a/sound/ppc/Kconfig b/sound/ppc/Kconfig index 777de2b..bd2338a 100644 --- a/sound/ppc/Kconfig +++ b/sound/ppc/Kconfig @@ -13,6 +13,7 @@ config SND_POWERMAC tristate "PowerMac (AWACS, DACA, Burgundy, Tumbler, Keywest)" depends on I2C && INPUT && PPC_PMAC select SND_PCM + select SND_VMASTER help Say Y here to include support for the integrated sound device. diff --git a/sound/ppc/awacs.c b/sound/ppc/awacs.c index 9abbf64..66956f4 100644 --- a/sound/ppc/awacs.c +++ b/sound/ppc/awacs.c @@ -608,9 +608,12 @@ static struct snd_kcontrol_new snd_pmac_screamer_mixers_beige[] __initdata = { AWACS_SWITCH("CD Capture Switch", 0, SHIFT_MUX_LINE, 0), }; -static struct snd_kcontrol_new snd_pmac_screamer_mixers_imac[] __initdata = { +static struct snd_kcontrol_new snd_pmac_screamer_mixers_lo[] __initdata = { AWACS_VOLUME("Line out Playback Volume", 2, 6, 1), - AWACS_VOLUME("Master Playback Volume", 5, 6, 1), +}; + +static struct snd_kcontrol_new snd_pmac_screamer_mixers_imac[] __initdata = { + AWACS_VOLUME("Play-through Playback Volume", 5, 6, 1), AWACS_SWITCH("CD Capture Switch", 0, SHIFT_MUX_CD, 0), }; @@ -627,6 +630,10 @@ static struct snd_kcontrol_new snd_pmac_awacs_mixers_pmac7500[] __initdata = { AWACS_SWITCH("Line Capture Switch", 0, SHIFT_MUX_MIC, 0), }; +static struct snd_kcontrol_new snd_pmac_awacs_mixers_pmac5500[] __initdata = { + AWACS_VOLUME("Headphone Playback Volume", 2, 6, 1), +}; + static struct snd_kcontrol_new snd_pmac_awacs_mixers_pmac[] __initdata = { AWACS_VOLUME("Master Playback Volume", 2, 6, 1), AWACS_SWITCH("CD Capture Switch", 0, SHIFT_MUX_CD, 0), @@ -645,12 +652,19 @@ static struct snd_kcontrol_new snd_pmac_screamer_mixers2[] __initdata = { AWACS_SWITCH("Mic Capture Switch", 0, SHIFT_MUX_LINE, 0), }; +static struct snd_kcontrol_new snd_pmac_awacs_mixers2_pmac5500[] __initdata = { + AWACS_SWITCH("CD Capture Switch", 0, SHIFT_MUX_CD, 0), +}; + static struct snd_kcontrol_new snd_pmac_awacs_master_sw __initdata = AWACS_SWITCH("Master Playback Switch", 1, SHIFT_HDMUTE, 1); static struct snd_kcontrol_new snd_pmac_awacs_master_sw_imac __initdata = AWACS_SWITCH("Line out Playback Switch", 1, SHIFT_HDMUTE, 1); +static struct snd_kcontrol_new snd_pmac_awacs_master_sw_pmac5500 __initdata = +AWACS_SWITCH("Headphone Playback Switch", 1, SHIFT_HDMUTE, 1); + static struct snd_kcontrol_new snd_pmac_awacs_mic_boost[] __initdata = { AWACS_SWITCH("Mic Boost Capture Switch", 0, SHIFT_GAINLINE, 0), }; @@ -868,6 +882,8 @@ snd_pmac_awacs_init(struct snd_pmac *chip) int lombard = IS_LOMBARD; int imac; int err, vol; + struct snd_kcontrol *vmaster_sw, *vmaster_vol; + struct snd_kcontrol *master_vol, *speaker_vol; imac1 = IS_IMAC1; imac2 = IS_IMAC2; @@ -966,21 +982,32 @@ snd_pmac_awacs_init(struct snd_pmac *chip) else if (!pm7500) err = build_mixers(chip, ARRAY_SIZE(snd_pmac_awacs_mixers2), snd_pmac_awacs_mixers2); + if (pm5500) + err |= build_mixers(chip, + ARRAY_SIZE(snd_pmac_awacs_mixers2_pmac5500), + snd_pmac_awacs_mixers2_pmac5500); if (err < 0) return err; if (pm7500) err = build_mixers(chip, ARRAY_SIZE(snd_pmac_awacs_mixers_pmac7500), snd_pmac_awacs_mixers_pmac7500); + else if (pm5500) + err = snd_ctl_add(chip->card, + (master_vol = snd_ctl_new1(snd_pmac_awacs_mixers_pmac5500, + chip))); else if (beige) err = build_mixers(chip, ARRAY_SIZE(snd_pmac_screamer_mixers_beige), snd_pmac_screamer_mixers_beige); - else if (imac || lombard) + else if (imac || lombard) { + err = snd_ctl_add(chip->card, + (master_vol = snd_ctl_new1(snd_pmac_screamer_mixers_lo, + chip))); err = build_mixers(chip, ARRAY_SIZE(snd_pmac_screamer_mixers_imac), snd_pmac_screamer_mixers_imac); - else if (g4agp) + } else if (g4agp) err = build_mixers(chip, ARRAY_SIZE(snd_pmac_screamer_mixers_g4agp), snd_pmac_screamer_mixers_g4agp); @@ -992,6 +1019,8 @@ snd_pmac_awacs_init(struct snd_pmac *chip) return err; chip->master_sw_ctl = snd_ctl_new1((pm7500 || imac || g4agp || lombard) ? &snd_pmac_awacs_master_sw_imac + : pm5500 + ? &snd_pmac_awacs_master_sw_pmac5500 : &snd_pmac_awacs_master_sw, chip); err = snd_ctl_add(chip->card, chip->master_sw_ctl); if (err < 0) @@ -1023,8 +1052,9 @@ snd_pmac_awacs_init(struct snd_pmac *chip) #endif /* PMAC_AMP_AVAIL */ { /* route A = headphone, route C = speaker */ - err = build_mixers(chip, ARRAY_SIZE(snd_pmac_awacs_speaker_vol), - snd_pmac_awacs_speaker_vol); + err = snd_ctl_add(chip->card, + (speaker_vol = snd_ctl_new1(snd_pmac_awacs_speaker_vol, + chip))); if (err < 0) return err; chip->speaker_sw_ctl = snd_ctl_new1(imac1 @@ -1037,6 +1067,23 @@ snd_pmac_awacs_init(struct snd_pmac *chip) return err; } + if (pm5500 || imac || lombard) { + vmaster_sw = snd_ctl_make_virtual_master( + "Master Playback Switch", (unsigned int *) NULL); + err = snd_ctl_add_slave_uncached(vmaster_sw, + chip->master_sw_ctl); + err |= snd_ctl_add_slave_uncached(vmaster_sw, + chip->speaker_sw_ctl); + err |= snd_ctl_add(chip->card, vmaster_sw); + vmaster_vol = snd_ctl_make_virtual_master( + "Master Playback Volume", (unsigned int *) NULL); + err |= snd_ctl_add_slave(vmaster_vol, master_vol); + err |= snd_ctl_add_slave(vmaster_vol, speaker_vol); + err |= snd_ctl_add(chip->card, vmaster_vol); + if (err < 0) + return err; + } + if (beige || g4agp) err = build_mixers(chip, ARRAY_SIZE(snd_pmac_screamer_mic_boost_beige), -- 1.5.4.3 ^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2009-01-20 20:01 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-01-20 20:01 [PATCH - snd-powermac 1/5] Correct HP detection and input selectors for PMac 5500 Risto Suominen 2009-01-20 20:01 ` [PATCH - snd-powermac 2/5] Correct volume controls for PowerBook G3 Lombard Risto Suominen 2009-01-20 20:01 ` [PATCH - snd-powermac 3/5] Correct volume controls and HP detection for PMac 8500/9500 Risto Suominen 2009-01-20 20:01 ` [PATCH - snd-powermac 4/5] Allow input from mic in iBook G3 Dual-USB Risto Suominen 2009-01-20 20:01 ` [PATCH - snd-powermac 5/5] Add vmaster controls for Pmac 5500, iMac G3 SL, and PBook G3 Lombard Risto Suominen
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.