SB450 HDA Audio
Jump to navigation
Jump to search
$ aplay -l **** List of PLAYBACK Hardware Devices **** card 0: SB [HDA ATI SB], device 0: ALC262 Analog [ALC262 Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: SB [HDA ATI SB], device 1: ALC262 Digital [ALC262 Digital] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: SB [HDA ATI SB], device 6: Si3054 Modem [Si3054 Modem] Subdevices: 1/1 Subdevice #0: subdevice #0
$ cat /proc/asound/card0/codec#*|grep Codec Codec: Realtek ALC262 Codec: Generic 11c1 Si3054
$ lspci -v
...
00:14.2 Audio device: ATI Technologies Inc IXP SB4x0 High Definition Audio Controller (rev 01)
Subsystem: Benq Corporation Unknown device 058f
Flags: bus master, slow devsel, latency 64, IRQ 16
Memory at c0000000 (64-bit, non-prefetchable) [size=16K]
Capabilities: [50] Power Management version 2
Capabilities: [60] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable-
Kernel driver in use: HDA Intel
Kernel modules: snd-hda-intel
...
Модель и описание: ALC262 fujitsu - Fujitsu Laptop hp-bpc - HP xw4400/6400/8400/9400 laptops hp-bpc-d7000 - HP BPC D7000 benq - Benq ED8 benq-t31 - Benq T31 hippo - Hippo (ATI) with jack detection, Sony UX-90s hippo_1 - Hippo (Benq) with jack detection sony-assamd - Sony ASSAMD basic - fixed pin assignment w/o SPDIF auto - auto-config reading BIOS (default)
$ less /etc/modprobe.d/sound # ALSA portion alias char-major-116 snd alias snd-card-0 snd-hda-intel options snd-hda-intel index=0 model=basic # OSS/Free portion alias char-major-14 soundcore alias sound-slot-0 snd-card-0 # card #1 alias sound-service-0-0 snd-mixer-oss alias sound-service-0-1 snd-seq-oss alias sound-service-0-3 snd-pcm-oss alias sound-service-0-8 snd-seq-oss alias sound-service-0-12 snd-pcm-oss
К сожалению в ноутбуке по-умолчании не работает встроенный микрофон. Для включения микрофона я предлагаю следующий патч (проверено на alsa-1.0.18rc3):
--- patch_realtek.c.orig 2008-12-29 10:10:38.000000000 +0200
+++ patch_realtek.c 2009-01-29 09:44:04.000000000 +0200
@@ -104,6 +104,7 @@
ALC262_NEC,
ALC262_TOSHIBA_S06,
ALC262_TOSHIBA_RX1,
+ ALC262_BENQ_P52,
ALC262_AUTO,
ALC262_MODEL_LAST /* last tag */
};
@@ -9311,6 +9312,21 @@
{ } /* end */
};
+static struct snd_kcontrol_new alc262_benq_p52_mixer[] = {
+ HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT),
+ HDA_CODEC_MUTE("Front Playback Switch", 0x14, 0x0, HDA_OUTPUT),
+ HDA_CODEC_MUTE("Headphone Playback Switch", 0x15, 0x0, HDA_OUTPUT),
+ HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT),
+ HDA_CODEC_MUTE("Mic Playback Switch", 0x0b, 0x0, HDA_INPUT),
+ HDA_CODEC_VOLUME("Mic Boost", 0x18, 0, HDA_INPUT),
+ HDA_CODEC_VOLUME("Front Mic Playback Volume", 0x0b, 0x01, HDA_INPUT),
+ HDA_CODEC_MUTE("Front Mic Playback Switch", 0x0b, 0x01, HDA_INPUT),
+ HDA_CODEC_VOLUME("Front Mic Boost", 0x19, 0, HDA_INPUT),
+ HDA_CODEC_VOLUME("Line Playback Volume", 0x0b, 0x02, HDA_INPUT),
+ HDA_CODEC_MUTE("Line Playback Switch", 0x0b, 0x02, HDA_INPUT),
+ { } /* end */
+};
+
#define alc262_capture_mixer alc882_capture_mixer
#define alc262_capture_alt_mixer alc882_capture_alt_mixer
@@ -10433,6 +10449,7 @@
[ALC262_ULTRA] = "ultra",
[ALC262_LENOVO_3000] = "lenovo-3000",
[ALC262_NEC] = "nec",
+ [ALC262_BENQ_P52] = "benq-p52",
[ALC262_AUTO] = "auto",
};
@@ -10476,7 +10493,7 @@
SND_PCI_QUIRK(0x17aa, 0x384e, "Lenovo 3000 y410", ALC262_LENOVO_3000),
SND_PCI_QUIRK(0x17ff, 0x0560, "Benq ED8", ALC262_BENQ_ED8),
SND_PCI_QUIRK(0x17ff, 0x058d, "Benq T31-16", ALC262_BENQ_T31),
- SND_PCI_QUIRK(0x17ff, 0x058f, "Benq Hippo", ALC262_HIPPO_1),
+ SND_PCI_QUIRK(0x17ff, 0x058f, "Benq P52", ALC262_BENQ_P52),
{}
};
@@ -10623,6 +10640,19 @@
.unsol_event = alc262_hippo_unsol_event,
.init_hook = alc262_hippo_automute,
},
+ [ALC262_BENQ_P52] = {
+ .mixers = { alc262_benq_p52_mixer },
+ .init_verbs = { alc262_init_verbs, alc262_benq_t31_EAPD_verbs, alc262_hippo_unsol_verbs },
+ .num_dacs = ARRAY_SIZE(alc262_dac_nids),
+ .dac_nids = alc262_dac_nids,
+ .hp_nid = 0x02,
+ .dig_out_nid = ALC262_DIGOUT_NID,
+ .num_channel_mode = ARRAY_SIZE(alc262_modes),
+ .channel_mode = alc262_modes,
+ .input_mux = &alc262_capture_source,
+ .unsol_event = alc262_hippo_unsol_event,
+ .init_hook = alc262_hippo_automute,
+ },
[ALC262_ULTRA] = {
.mixers = { alc262_ultra_mixer, alc262_ultra_capture_mixer },
.init_verbs = { alc262_ultra_verbs },