[alsa-devel] Recent code changes for HD-audio on HG repo
Takashi Iwai
tiwai at suse.de
Thu Aug 16 12:17:36 CEST 2007
At Thu, 16 Aug 2007 00:33:15 +0200,
Nicola Fagnani wrote:
>
> As you said, the patch didn't solve the problem.
> To test audio I used this simple command:
>
> aplay < /bin/bash
>
> but if there is no audio output for a while, executing it produces no noise.
> When I said the sound goes mute, I meant there is no sound, not that some
> audio channel is muted.
Ah, so you mean that the sound goes away once after 10 second inactive
state that results in the automatic power-off?
I thought you meaning that the sound vanishes suddenly _during_
playing back.
> If I set the power_save_controller=0 module option the sound works always,
> so these are the details of my hardware:
Are you sure that you passed power_save_controller=0, not
power_save=0? See below.
> cat /proc/asound/card0/codec#0
>
> Codec: Realtek ALC885
> Address: 0
> Vendor Id: 0x10ec0885
> Subsystem Id: 0x106b1000
OK, it's an Intel Mac, right? Then maybe the culprit is the missing
GPIO initialization. It's done only at creation time.
Did you get the PM suspend/resume working with this machine?
I guess you'll have the same problem, too.
Anyway, try the patch below. Hopefully it fixes the power-save
problem too.
Takashi
diff -r 64a0f0aac927 pci/hda/patch_realtek.c
--- a/pci/hda/patch_realtek.c Wed Aug 15 22:20:45 2007 +0200
+++ b/pci/hda/patch_realtek.c Thu Aug 16 12:15:05 2007 +0200
@@ -5275,6 +5275,20 @@ static void alc882_gpio_mute(struct hda_
AC_VERB_SET_GPIO_DATA, gpiostate);
}
+/* set up GPIO at initialization */
+static void alc885_macpro_init_hook(struct hda_codec *codec)
+{
+ alc882_gpio_mute(codec, 0, 0);
+ alc882_gpio_mute(codec, 1, 0);
+}
+
+/* set up GPIO and update auto-muting at initialization */
+static void alc885_imac24_init_hook(struct hda_codec *codec)
+{
+ alc885_macpro_init_hook(codec);
+ alc885_imac24_automute(codec);
+}
+
/*
* generic initialization of ADC, input mixers and output mixers
*/
@@ -5479,6 +5493,7 @@ static struct alc_config_preset alc882_p
.num_channel_mode = ARRAY_SIZE(alc882_ch_modes),
.channel_mode = alc882_ch_modes,
.input_mux = &alc882_capture_source,
+ .init_hook = alc885_macpro_init_hook,
},
[ALC885_IMAC24] = {
.mixers = { alc885_imac24_mixer },
@@ -5491,7 +5506,7 @@ static struct alc_config_preset alc882_p
.channel_mode = alc882_ch_modes,
.input_mux = &alc882_capture_source,
.unsol_event = alc885_imac24_unsol_event,
- .init_hook = alc885_imac24_automute,
+ .init_hook = alc885_imac24_init_hook,
},
[ALC882_TARGA] = {
.mixers = { alc882_targa_mixer, alc882_chmode_mixer,
@@ -5693,11 +5708,6 @@ static int patch_alc882(struct hda_codec
if (board_config != ALC882_AUTO)
setup_preset(spec, &alc882_presets[board_config]);
-
- if (board_config == ALC885_MACPRO || board_config == ALC885_IMAC24) {
- alc882_gpio_mute(codec, 0, 0);
- alc882_gpio_mute(codec, 1, 0);
- }
spec->stream_name_analog = "ALC882 Analog";
spec->stream_analog_playback = &alc882_pcm_analog_playback;
More information about the Alsa-devel
mailing list