Re: [alsa-devel] [PARTIAL PATCH] snd-hda-intel on Medion WIM2160

2007-09-20 Thread Takashi Iwai
At Wed, 19 Sep 2007 20:26:27 +0200,
Bernhard Rosenkraenzer wrote:
> 
> On Thursday 13 September 2007, Takashi Iwai wrote:
> > > The patch below fixes it, but unfortunately, Medion MD2 uses the same PCI
> > > (and subvendor/subdevice) ID -- so the patch quite likely breaks Medion
> > > MD2 support.
> >
> > In that case, try to reset board_config after
> > snd_hda_check_board_config() but before setup_preset().  See
> > patch_alc885() for example (appeariny in the latest ALSA tree, also in
> > mm tree).
> 
> Will do...
> 
> > Otherwise it looks OK to me.  But, what is the primary difference in
> > the setup between MD2 and WIM2160?
> 
> I don't know -- I made it work by trial and error (I don't have access to any 
> hardware specs or the likes). By some more trial and error, I could minimize 
> the patch some more - it's down to editing the init_verbs and mixers.
> In the mixers, this one seems to be the key:
> HDA_BIND_MUTE("Master Playback Switch", 0x0c, 2, HDA_INPUT)

Hmm, these should be constantly unmuted at initialization via
alc883_medion_md2_verbs[] in MD2 model, too.

Could you double-check whether MD2 model doesn't work?  If really not
works, check codec#* output whether the inputs of NID 0x0c get unmuted
or not.


Takashi
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [alsa-devel] [PARTIAL PATCH] snd-hda-intel on Medion WIM2160

2007-09-20 Thread Takashi Iwai
At Wed, 19 Sep 2007 20:26:27 +0200,
Bernhard Rosenkraenzer wrote:
 
 On Thursday 13 September 2007, Takashi Iwai wrote:
   The patch below fixes it, but unfortunately, Medion MD2 uses the same PCI
   (and subvendor/subdevice) ID -- so the patch quite likely breaks Medion
   MD2 support.
 
  In that case, try to reset board_config after
  snd_hda_check_board_config() but before setup_preset().  See
  patch_alc885() for example (appeariny in the latest ALSA tree, also in
  mm tree).
 
 Will do...
 
  Otherwise it looks OK to me.  But, what is the primary difference in
  the setup between MD2 and WIM2160?
 
 I don't know -- I made it work by trial and error (I don't have access to any 
 hardware specs or the likes). By some more trial and error, I could minimize 
 the patch some more - it's down to editing the init_verbs and mixers.
 In the mixers, this one seems to be the key:
 HDA_BIND_MUTE(Master Playback Switch, 0x0c, 2, HDA_INPUT)

Hmm, these should be constantly unmuted at initialization via
alc883_medion_md2_verbs[] in MD2 model, too.

Could you double-check whether MD2 model doesn't work?  If really not
works, check codec#* output whether the inputs of NID 0x0c get unmuted
or not.


Takashi
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [alsa-devel] [PARTIAL PATCH] snd-hda-intel on Medion WIM2160

2007-09-19 Thread Bernhard Rosenkraenzer
On Thursday 13 September 2007, Takashi Iwai wrote:
> > The patch below fixes it, but unfortunately, Medion MD2 uses the same PCI
> > (and subvendor/subdevice) ID -- so the patch quite likely breaks Medion
> > MD2 support.
>
> In that case, try to reset board_config after
> snd_hda_check_board_config() but before setup_preset().  See
> patch_alc885() for example (appeariny in the latest ALSA tree, also in
> mm tree).

Will do...

> Otherwise it looks OK to me.  But, what is the primary difference in
> the setup between MD2 and WIM2160?

I don't know -- I made it work by trial and error (I don't have access to any 
hardware specs or the likes). By some more trial and error, I could minimize 
the patch some more - it's down to editing the init_verbs and mixers.
In the mixers, this one seems to be the key:
HDA_BIND_MUTE("Master Playback Switch", 0x0c, 2, HDA_INPUT)

Maybe we can get it to work with both MD2 and WIM2160 by using the MD2 mixers 
with this one added.

I'm not familiar enough with sound drivers in general to fiddle with the verbs 
and be reasonably sure I'm not breaking the MD2.
--- linux-2.6.22/sound/pci/hda/patch_realtek.c.wim2160snd~	2007-09-14 15:51:28.0 +0200
+++ linux-2.6.22/sound/pci/hda/patch_realtek.c	2007-09-14 15:53:21.0 +0200
@@ -169,6 +169,7 @@
 	ALC883_ACER,
 	ALC883_MEDION,
 	ALC883_MEDION_MD2,	
+	ALC883_MEDION_WIM2160,
 	ALC883_LAPTOP_EAPD,
 	ALC883_LENOVO_101E_2ch,
 	ALC883_LENOVO_NB0763,
@@ -6235,6 +6236,32 @@
 	{ } /* end */
 };
 
+static struct snd_kcontrol_new alc883_medion_wim2160_mixer[] = {
+	HDA_CODEC_VOLUME("Master Playback Volume", 0x0c, 0x0, HDA_OUTPUT),
+	HDA_BIND_MUTE("Master Playback Switch", 0x0c, 2, HDA_INPUT),
+	HDA_CODEC_MUTE("Headphone Playback Switch", 0x14, 0x0, HDA_OUTPUT),
+	HDA_CODEC_VOLUME("CD Playback Volume", 0x0b, 0x04, HDA_INPUT),
+	HDA_CODEC_MUTE("CD Playback Switch", 0x0b, 0x04, HDA_INPUT),
+	HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT),
+	HDA_CODEC_MUTE("Mic Playback Switch", 0x0b, 0x0, HDA_INPUT),
+	HDA_CODEC_VOLUME("iMic Playback Volume", 0x0b, 0x1, HDA_INPUT),
+	HDA_CODEC_MUTE("iMic Playback Switch", 0x0b, 0x1, HDA_INPUT),
+	HDA_CODEC_VOLUME("Capture Volume", 0x08, 0x0, HDA_INPUT),
+	HDA_CODEC_MUTE("Capture Switch", 0x08, 0x0, HDA_INPUT),
+	HDA_CODEC_VOLUME_IDX("Capture Volume", 1, 0x09, 0x0, HDA_INPUT),
+	HDA_CODEC_MUTE_IDX("Capture Switch", 1, 0x09, 0x0, HDA_INPUT),
+	{
+		.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+		/* .name = "Capture Source", */
+		.name = "Input Source",
+		.count = 2,
+		.info = alc883_mux_enum_info,
+		.get = alc883_mux_enum_get,
+		.put = alc883_mux_enum_put,
+	},
+	{ } /* end */
+};	
+
 static struct snd_kcontrol_new alc883_chmode_mixer[] = {
 	{
 		.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
@@ -6640,6 +6667,7 @@
 	[ALC883_ACER]		= "acer",
 	[ALC883_MEDION]		= "medion",
 	[ALC883_MEDION_MD2]	= "medion-md2",
+	[ALC883_MEDION_WIM2160]	= "medion-wim2160",
 	[ALC883_LAPTOP_EAPD]	= "laptop-eapd",
 	[ALC883_LENOVO_101E_2ch] = "lenovo-101e",
 	[ALC883_LENOVO_NB0763]	= "lenovo-nb0763",
@@ -6684,7 +6712,8 @@
 	SND_PCI_QUIRK(0x103c, 0x2a61, "HP Nettle", ALC888_6ST_HP),
 	SND_PCI_QUIRK(0x103c, 0x2a60, "HP Lucknow", ALC888_3ST_HP),
 	SND_PCI_QUIRK(0x103c, 0x2a4f, "HP Samba", ALC888_3ST_HP),
-	SND_PCI_QUIRK(0x17c0, 0x4071, "MEDION MD2", ALC883_MEDION_MD2),
+	//SND_PCI_QUIRK(0x17c0, 0x4071, "MEDION MD2", ALC883_MEDION_MD2),
+	SND_PCI_QUIRK(0x17c0, 0x4071, "Medion WIM2160", ALC883_MEDION_WIM2160),
 	{}
 };
 
@@ -6814,6 +6843,20 @@
 		.unsol_event = alc883_medion_md2_unsol_event,
 		.init_hook = alc883_medion_md2_automute,
 	},	
+	[ALC883_MEDION_WIM2160] = {
+		.mixers = { alc883_medion_wim2160_mixer },
+		.init_verbs = { alc883_init_verbs, alc883_lenovo_nb0763_verbs},
+		.num_dacs = ARRAY_SIZE(alc883_dac_nids),
+		.dac_nids = alc883_dac_nids,
+		.dig_out_nid = ALC883_DIGOUT_NID,
+		.num_adc_nids = ARRAY_SIZE(alc883_adc_nids),
+		.adc_nids = alc883_adc_nids,
+		.num_channel_mode = ARRAY_SIZE(alc883_3ST_2ch_modes),
+		.channel_mode = alc883_3ST_2ch_modes,
+		.input_mux = _capture_source,
+		.unsol_event = alc883_medion_md2_unsol_event,
+		.init_hook = alc883_medion_md2_automute,
+	},
 	[ALC883_LAPTOP_EAPD] = {
 		.mixers = { alc883_base_mixer,
 			alc883_chmode_mixer },


Re: [alsa-devel] [PARTIAL PATCH] snd-hda-intel on Medion WIM2160

2007-09-19 Thread Bernhard Rosenkraenzer
On Thursday 13 September 2007, Takashi Iwai wrote:
  The patch below fixes it, but unfortunately, Medion MD2 uses the same PCI
  (and subvendor/subdevice) ID -- so the patch quite likely breaks Medion
  MD2 support.

 In that case, try to reset board_config after
 snd_hda_check_board_config() but before setup_preset().  See
 patch_alc885() for example (appeariny in the latest ALSA tree, also in
 mm tree).

Will do...

 Otherwise it looks OK to me.  But, what is the primary difference in
 the setup between MD2 and WIM2160?

I don't know -- I made it work by trial and error (I don't have access to any 
hardware specs or the likes). By some more trial and error, I could minimize 
the patch some more - it's down to editing the init_verbs and mixers.
In the mixers, this one seems to be the key:
HDA_BIND_MUTE(Master Playback Switch, 0x0c, 2, HDA_INPUT)

Maybe we can get it to work with both MD2 and WIM2160 by using the MD2 mixers 
with this one added.

I'm not familiar enough with sound drivers in general to fiddle with the verbs 
and be reasonably sure I'm not breaking the MD2.
--- linux-2.6.22/sound/pci/hda/patch_realtek.c.wim2160snd~	2007-09-14 15:51:28.0 +0200
+++ linux-2.6.22/sound/pci/hda/patch_realtek.c	2007-09-14 15:53:21.0 +0200
@@ -169,6 +169,7 @@
 	ALC883_ACER,
 	ALC883_MEDION,
 	ALC883_MEDION_MD2,	
+	ALC883_MEDION_WIM2160,
 	ALC883_LAPTOP_EAPD,
 	ALC883_LENOVO_101E_2ch,
 	ALC883_LENOVO_NB0763,
@@ -6235,6 +6236,32 @@
 	{ } /* end */
 };
 
+static struct snd_kcontrol_new alc883_medion_wim2160_mixer[] = {
+	HDA_CODEC_VOLUME(Master Playback Volume, 0x0c, 0x0, HDA_OUTPUT),
+	HDA_BIND_MUTE(Master Playback Switch, 0x0c, 2, HDA_INPUT),
+	HDA_CODEC_MUTE(Headphone Playback Switch, 0x14, 0x0, HDA_OUTPUT),
+	HDA_CODEC_VOLUME(CD Playback Volume, 0x0b, 0x04, HDA_INPUT),
+	HDA_CODEC_MUTE(CD Playback Switch, 0x0b, 0x04, HDA_INPUT),
+	HDA_CODEC_VOLUME(Mic Playback Volume, 0x0b, 0x0, HDA_INPUT),
+	HDA_CODEC_MUTE(Mic Playback Switch, 0x0b, 0x0, HDA_INPUT),
+	HDA_CODEC_VOLUME(iMic Playback Volume, 0x0b, 0x1, HDA_INPUT),
+	HDA_CODEC_MUTE(iMic Playback Switch, 0x0b, 0x1, HDA_INPUT),
+	HDA_CODEC_VOLUME(Capture Volume, 0x08, 0x0, HDA_INPUT),
+	HDA_CODEC_MUTE(Capture Switch, 0x08, 0x0, HDA_INPUT),
+	HDA_CODEC_VOLUME_IDX(Capture Volume, 1, 0x09, 0x0, HDA_INPUT),
+	HDA_CODEC_MUTE_IDX(Capture Switch, 1, 0x09, 0x0, HDA_INPUT),
+	{
+		.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+		/* .name = Capture Source, */
+		.name = Input Source,
+		.count = 2,
+		.info = alc883_mux_enum_info,
+		.get = alc883_mux_enum_get,
+		.put = alc883_mux_enum_put,
+	},
+	{ } /* end */
+};	
+
 static struct snd_kcontrol_new alc883_chmode_mixer[] = {
 	{
 		.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
@@ -6640,6 +6667,7 @@
 	[ALC883_ACER]		= acer,
 	[ALC883_MEDION]		= medion,
 	[ALC883_MEDION_MD2]	= medion-md2,
+	[ALC883_MEDION_WIM2160]	= medion-wim2160,
 	[ALC883_LAPTOP_EAPD]	= laptop-eapd,
 	[ALC883_LENOVO_101E_2ch] = lenovo-101e,
 	[ALC883_LENOVO_NB0763]	= lenovo-nb0763,
@@ -6684,7 +6712,8 @@
 	SND_PCI_QUIRK(0x103c, 0x2a61, HP Nettle, ALC888_6ST_HP),
 	SND_PCI_QUIRK(0x103c, 0x2a60, HP Lucknow, ALC888_3ST_HP),
 	SND_PCI_QUIRK(0x103c, 0x2a4f, HP Samba, ALC888_3ST_HP),
-	SND_PCI_QUIRK(0x17c0, 0x4071, MEDION MD2, ALC883_MEDION_MD2),
+	//SND_PCI_QUIRK(0x17c0, 0x4071, MEDION MD2, ALC883_MEDION_MD2),
+	SND_PCI_QUIRK(0x17c0, 0x4071, Medion WIM2160, ALC883_MEDION_WIM2160),
 	{}
 };
 
@@ -6814,6 +6843,20 @@
 		.unsol_event = alc883_medion_md2_unsol_event,
 		.init_hook = alc883_medion_md2_automute,
 	},	
+	[ALC883_MEDION_WIM2160] = {
+		.mixers = { alc883_medion_wim2160_mixer },
+		.init_verbs = { alc883_init_verbs, alc883_lenovo_nb0763_verbs},
+		.num_dacs = ARRAY_SIZE(alc883_dac_nids),
+		.dac_nids = alc883_dac_nids,
+		.dig_out_nid = ALC883_DIGOUT_NID,
+		.num_adc_nids = ARRAY_SIZE(alc883_adc_nids),
+		.adc_nids = alc883_adc_nids,
+		.num_channel_mode = ARRAY_SIZE(alc883_3ST_2ch_modes),
+		.channel_mode = alc883_3ST_2ch_modes,
+		.input_mux = alc883_capture_source,
+		.unsol_event = alc883_medion_md2_unsol_event,
+		.init_hook = alc883_medion_md2_automute,
+	},
 	[ALC883_LAPTOP_EAPD] = {
 		.mixers = { alc883_base_mixer,
 			alc883_chmode_mixer },


Re: [alsa-devel] [PARTIAL PATCH] snd-hda-intel on Medion WIM2160

2007-09-13 Thread Takashi Iwai
At Tue, 11 Sep 2007 14:16:24 +0200,
Bernhard Rosenkraenzer wrote:
> 
> Hi,
> On Medion WIM2160 notebooks (soundchip PCI ID 8086:27d8/17c0:4071), 
> snd-hda-intel loads and everything acts like it's working, but there's no 
> sound. The master volume is muted and there's no way to unmute it.
> 
> The patch below fixes it, but unfortunately, Medion MD2 uses the same PCI 
> (and subvendor/subdevice) ID -- so the patch quite likely breaks Medion MD2 
> support.

In that case, try to reset board_config after
snd_hda_check_board_config() but before setup_preset().  See
patch_alc885() for example (appeariny in the latest ALSA tree, also in
mm tree).

Otherwise it looks OK to me.  But, what is the primary difference in
the setup between MD2 and WIM2160?


Thanks,

Takashi
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [alsa-devel] [PARTIAL PATCH] snd-hda-intel on Medion WIM2160

2007-09-13 Thread Takashi Iwai
At Tue, 11 Sep 2007 14:16:24 +0200,
Bernhard Rosenkraenzer wrote:
 
 Hi,
 On Medion WIM2160 notebooks (soundchip PCI ID 8086:27d8/17c0:4071), 
 snd-hda-intel loads and everything acts like it's working, but there's no 
 sound. The master volume is muted and there's no way to unmute it.
 
 The patch below fixes it, but unfortunately, Medion MD2 uses the same PCI 
 (and subvendor/subdevice) ID -- so the patch quite likely breaks Medion MD2 
 support.

In that case, try to reset board_config after
snd_hda_check_board_config() but before setup_preset().  See
patch_alc885() for example (appeariny in the latest ALSA tree, also in
mm tree).

Otherwise it looks OK to me.  But, what is the primary difference in
the setup between MD2 and WIM2160?


Thanks,

Takashi
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PARTIAL PATCH] snd-hda-intel on Medion WIM2160

2007-09-11 Thread Bernhard Rosenkraenzer
Hi,
On Medion WIM2160 notebooks (soundchip PCI ID 8086:27d8/17c0:4071), 
snd-hda-intel loads and everything acts like it's working, but there's no 
sound. The master volume is muted and there's no way to unmute it.

The patch below fixes it, but unfortunately, Medion MD2 uses the same PCI 
(and subvendor/subdevice) ID -- so the patch quite likely breaks Medion MD2 
support.

WIM2160's soundchip has revision ID 02 - if MD2 uses something else, maybe 
that can be used to identify them and do the right thing. (I don't have an 
MD2...).

ttyl
bero

--- linux-2.6.22/sound/pci/hda/patch_realtek.c.wim2160snd~  2007-07-09 
01:32:17.0 +0200
+++ linux-2.6.22/sound/pci/hda/patch_realtek.c  2007-09-09 20:28:55.0 
+0200
@@ -159,6 +159,7 @@
ALC883_ACER,
ALC883_MEDION,
ALC883_MEDION_MD2,  
+   ALC883_MEDION_WIM2160,
ALC883_LAPTOP_EAPD,
ALC883_LENOVO_101E_2ch,
ALC883_LENOVO_NB0763,
@@ -5995,6 +5996,32 @@
{ } /* end */
 }; 
 
+static struct snd_kcontrol_new alc883_medion_wim2160_mixer[] = {
+   HDA_CODEC_VOLUME("Master Playback Volume", 0x0c, 0x0, HDA_OUTPUT),
+   HDA_BIND_MUTE("Master Playback Switch", 0x0c, 2, HDA_INPUT),
+   HDA_CODEC_MUTE("Headphone Playback Switch", 0x14, 0x0, HDA_OUTPUT),
+   HDA_CODEC_VOLUME("CD Playback Volume", 0x0b, 0x04, HDA_INPUT),
+   HDA_CODEC_MUTE("CD Playback Switch", 0x0b, 0x04, HDA_INPUT),
+   HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT),
+   HDA_CODEC_MUTE("Mic Playback Switch", 0x0b, 0x0, HDA_INPUT),
+   HDA_CODEC_VOLUME("iMic Playback Volume", 0x0b, 0x1, HDA_INPUT),
+   HDA_CODEC_MUTE("iMic Playback Switch", 0x0b, 0x1, HDA_INPUT),
+   HDA_CODEC_VOLUME("Capture Volume", 0x08, 0x0, HDA_INPUT),
+   HDA_CODEC_MUTE("Capture Switch", 0x08, 0x0, HDA_INPUT),
+   HDA_CODEC_VOLUME_IDX("Capture Volume", 1, 0x09, 0x0, HDA_INPUT),
+   HDA_CODEC_MUTE_IDX("Capture Switch", 1, 0x09, 0x0, HDA_INPUT),
+   {
+   .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+   /* .name = "Capture Source", */
+   .name = "Input Source",
+   .count = 2,
+   .info = alc883_mux_enum_info,
+   .get = alc883_mux_enum_get,
+   .put = alc883_mux_enum_put,
+   },
+   { } /* end */
+}; 
+
 static struct snd_kcontrol_new alc883_chmode_mixer[] = {
{
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
@@ -6364,6 +6391,7 @@
[ALC883_ACER]   = "acer",
[ALC883_MEDION] = "medion",
[ALC883_MEDION_MD2] = "medion-md2",
+   [ALC883_MEDION_WIM2160] = "medion-wim2160",
[ALC883_LAPTOP_EAPD]= "laptop-eapd",
[ALC883_LENOVO_101E_2ch] = "lenovo-101e",
[ALC883_LENOVO_NB0763]  = "lenovo-nb0763",
@@ -6401,6 +6429,7 @@
SND_PCI_QUIRK(0x17aa, 0x3bfd, "Lenovo NB0763", ALC883_LENOVO_NB0763),
SND_PCI_QUIRK(0x17aa, 0x2085, "Lenovo NB0763", ALC883_LENOVO_NB0763),
-   SND_PCI_QUIRK(0x17c0, 0x4071, "MEDION MD2", ALC883_MEDION_MD2),
+   //SND_PCI_QUIRK(0x17c0, 0x4071, "MEDION MD2", ALC883_MEDION_MD2),
+   SND_PCI_QUIRK(0x17c0, 0x4071, "Medion WIM2160", ALC883_MEDION_WIM2160),
{}
 };
 
@@ -6530,6 +6559,19 @@
.unsol_event = alc883_medion_md2_unsol_event,
.init_hook = alc883_medion_md2_automute,
},  
+   [ALC883_MEDION_WIM2160] = {
+   .mixers = { alc883_medion_wim2160_mixer },
+   .init_verbs = { alc883_init_verbs, alc883_lenovo_nb0763_verbs},
+   .num_dacs = ARRAY_SIZE(alc883_dac_nids),
+   .dac_nids = alc883_dac_nids,
+   .num_adc_nids = ARRAY_SIZE(alc883_adc_nids),
+   .adc_nids = alc883_adc_nids,
+   .num_channel_mode = ARRAY_SIZE(alc883_3ST_2ch_modes),
+   .channel_mode = alc883_3ST_2ch_modes,
+   .input_mux = _lenovo_nb0763_capture_source,
+   .unsol_event = alc883_medion_md2_unsol_event,
+   .init_hook = alc883_medion_md2_automute,
+   },
[ALC883_LAPTOP_EAPD] = {
.mixers = { alc883_base_mixer,
alc883_chmode_mixer },
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PARTIAL PATCH] snd-hda-intel on Medion WIM2160

2007-09-11 Thread Bernhard Rosenkraenzer
Hi,
On Medion WIM2160 notebooks (soundchip PCI ID 8086:27d8/17c0:4071), 
snd-hda-intel loads and everything acts like it's working, but there's no 
sound. The master volume is muted and there's no way to unmute it.

The patch below fixes it, but unfortunately, Medion MD2 uses the same PCI 
(and subvendor/subdevice) ID -- so the patch quite likely breaks Medion MD2 
support.

WIM2160's soundchip has revision ID 02 - if MD2 uses something else, maybe 
that can be used to identify them and do the right thing. (I don't have an 
MD2...).

ttyl
bero

--- linux-2.6.22/sound/pci/hda/patch_realtek.c.wim2160snd~  2007-07-09 
01:32:17.0 +0200
+++ linux-2.6.22/sound/pci/hda/patch_realtek.c  2007-09-09 20:28:55.0 
+0200
@@ -159,6 +159,7 @@
ALC883_ACER,
ALC883_MEDION,
ALC883_MEDION_MD2,  
+   ALC883_MEDION_WIM2160,
ALC883_LAPTOP_EAPD,
ALC883_LENOVO_101E_2ch,
ALC883_LENOVO_NB0763,
@@ -5995,6 +5996,32 @@
{ } /* end */
 }; 
 
+static struct snd_kcontrol_new alc883_medion_wim2160_mixer[] = {
+   HDA_CODEC_VOLUME(Master Playback Volume, 0x0c, 0x0, HDA_OUTPUT),
+   HDA_BIND_MUTE(Master Playback Switch, 0x0c, 2, HDA_INPUT),
+   HDA_CODEC_MUTE(Headphone Playback Switch, 0x14, 0x0, HDA_OUTPUT),
+   HDA_CODEC_VOLUME(CD Playback Volume, 0x0b, 0x04, HDA_INPUT),
+   HDA_CODEC_MUTE(CD Playback Switch, 0x0b, 0x04, HDA_INPUT),
+   HDA_CODEC_VOLUME(Mic Playback Volume, 0x0b, 0x0, HDA_INPUT),
+   HDA_CODEC_MUTE(Mic Playback Switch, 0x0b, 0x0, HDA_INPUT),
+   HDA_CODEC_VOLUME(iMic Playback Volume, 0x0b, 0x1, HDA_INPUT),
+   HDA_CODEC_MUTE(iMic Playback Switch, 0x0b, 0x1, HDA_INPUT),
+   HDA_CODEC_VOLUME(Capture Volume, 0x08, 0x0, HDA_INPUT),
+   HDA_CODEC_MUTE(Capture Switch, 0x08, 0x0, HDA_INPUT),
+   HDA_CODEC_VOLUME_IDX(Capture Volume, 1, 0x09, 0x0, HDA_INPUT),
+   HDA_CODEC_MUTE_IDX(Capture Switch, 1, 0x09, 0x0, HDA_INPUT),
+   {
+   .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+   /* .name = Capture Source, */
+   .name = Input Source,
+   .count = 2,
+   .info = alc883_mux_enum_info,
+   .get = alc883_mux_enum_get,
+   .put = alc883_mux_enum_put,
+   },
+   { } /* end */
+}; 
+
 static struct snd_kcontrol_new alc883_chmode_mixer[] = {
{
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
@@ -6364,6 +6391,7 @@
[ALC883_ACER]   = acer,
[ALC883_MEDION] = medion,
[ALC883_MEDION_MD2] = medion-md2,
+   [ALC883_MEDION_WIM2160] = medion-wim2160,
[ALC883_LAPTOP_EAPD]= laptop-eapd,
[ALC883_LENOVO_101E_2ch] = lenovo-101e,
[ALC883_LENOVO_NB0763]  = lenovo-nb0763,
@@ -6401,6 +6429,7 @@
SND_PCI_QUIRK(0x17aa, 0x3bfd, Lenovo NB0763, ALC883_LENOVO_NB0763),
SND_PCI_QUIRK(0x17aa, 0x2085, Lenovo NB0763, ALC883_LENOVO_NB0763),
-   SND_PCI_QUIRK(0x17c0, 0x4071, MEDION MD2, ALC883_MEDION_MD2),
+   //SND_PCI_QUIRK(0x17c0, 0x4071, MEDION MD2, ALC883_MEDION_MD2),
+   SND_PCI_QUIRK(0x17c0, 0x4071, Medion WIM2160, ALC883_MEDION_WIM2160),
{}
 };
 
@@ -6530,6 +6559,19 @@
.unsol_event = alc883_medion_md2_unsol_event,
.init_hook = alc883_medion_md2_automute,
},  
+   [ALC883_MEDION_WIM2160] = {
+   .mixers = { alc883_medion_wim2160_mixer },
+   .init_verbs = { alc883_init_verbs, alc883_lenovo_nb0763_verbs},
+   .num_dacs = ARRAY_SIZE(alc883_dac_nids),
+   .dac_nids = alc883_dac_nids,
+   .num_adc_nids = ARRAY_SIZE(alc883_adc_nids),
+   .adc_nids = alc883_adc_nids,
+   .num_channel_mode = ARRAY_SIZE(alc883_3ST_2ch_modes),
+   .channel_mode = alc883_3ST_2ch_modes,
+   .input_mux = alc883_lenovo_nb0763_capture_source,
+   .unsol_event = alc883_medion_md2_unsol_event,
+   .init_hook = alc883_medion_md2_automute,
+   },
[ALC883_LAPTOP_EAPD] = {
.mixers = { alc883_base_mixer,
alc883_chmode_mixer },
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/