Hello..
I have a gigabyte X48-DQ6 motherboard, specification url:
http://www.gigabyte.com.tw/Products/Motherboard/Products_Spec.aspx?Class...
they clearly state it uses a realtek alc 889a.google around, it seems lots of people which has this chip gets it
detected as alc885, including me.now, audio works (atleast analog out, havent tested the rest), allthough
i couldnt get the supposed feature of separate channel to front panel to
work(doesent matter much to me though)interrested in fixing this just for the sake of fixing, i ventured into
patch_realtek.c, and found the structure that defined patches for hda
audio.i inspected my /proc/asound/card0/codec#2 file (only one except the id
file), and found the following information:
Codec: Realtek ALC885
Address: 2
Vendor Id: 0x10ec0885
Subsystem Id: 0x1458a002
Revision Id: 0x100103i then modified patch_realtek.c to detect mine as ALC889A, and assign
the correct patch to it (well, the one used for 889).After rebuilding, it now uses patch 883 instead of 882 as it did before.
i dont appear to have recieved any separate front panel channel,
however, it still seems more correct now, and is probably wise to keep
for when 883 is improved to support the hardware fully.the only thing i notice has changed, is the message i get from the
kernel, before i changed, it said:
hda_codec: Unknown model for ALC882, trying auto-probe from BIOS...
now it says:
hda_codec: Unknown model for ALC883, trying auto-probe from BIOS...
but i guess if it has to spew out such a line, it now spews out the
correct one.analog audio works, so thats fine..
the patch(i apologize if my mailer messes up whitespace, but its so
simple that it doesent matter):
--- /usr/src/linux/sound/pci/hda/patch_realtek.c 2008-04-06
02:31:52.840247789 +0200
+++ /chroot/kernelgentoo/usr/src/linux-2.6.24/sound/pci/hda/patch_realtek.c 2008-04-12 17:09:58.308101686 +0200
@@ -13759,6 +13759,7 @@
...
At Sat, 12 Apr 2008 18:17:23 +0200,
The change looks OK (although I'd move the line just before ALC885
entry). I have no datasheet of ALC889A, but rumor says that it's
almost compatible with ALC888. So patch_alc883 seems to be a better
choice than now.I'll fix it on ALSA tree now.
Thanks!
--
At Wed, 16 Apr 2008 13:01:44 +0200,
On the second thought, replacing to patch_alc883 may break many
devices with preset models because patch_alc882() and patch_alc883()
have different model tables. So, I applied the patch below in
addition.BTW, could you show your codec#* files? This will be really helpful
to identify problems.Also, I'm still a bit suspicious whether ALC889A has really that
vendor id. Do you have a chance to check the chip on your board?thanks,
Takashi
---
diff -r e2c5d8b125b7 -r e42f262f5117 sound/pci/hda/patch_realtek.c
--- a/sound/pci/hda/patch_realtek.c Wed Apr 16 13:13:29 2008 +0200
+++ b/sound/pci/hda/patch_realtek.c Wed Apr 16 16:29:09 2008 +0200
@@ -2579,6 +2579,7 @@ static void alc_free(struct hda_codec *c
kfree(spec->kctl_alloc);
}
kfree(spec);
+ codec->spec = NULL; /* to be sure */
}/*
@@ -6336,6 +6337,8 @@ static void alc882_auto_init(struct hda_
alc_sku_automute(codec);
}+static int patch_alc883(struct hda_codec *codec); /* called in patch_alc882() */
+
static int patch_alc882(struct hda_codec *codec)
{
struct alc_spec *spec;
@@ -6365,6 +6368,11 @@ static int patch_alc882(struct hda_codec
board_config = ALC885_MBP3;
break;
default:
+ /* ALC889A is handled better as ALC888-compatible */
+ if (codec->revision_id == 0x100103) {
+ alc_free(codec);
+ return patch_alc883(codec);
+ }
printk(KERN_INFO "hda_codec: Unknown model for ALC882, "
"trying auto-probe from BIOS...\n");
board_config = ALC882_AUTO;
@@ -14043,7 +14051,7 @@ struct hda_codec_preset snd_hda_preset_r
{ .id = 0x10ec0882, .name = "ALC882", .patch = patch_alc882 },
{ .id = 0x10ec0883, .name = "ALC883", .patch = patch_alc883 },
{ .id = 0x10ec0885, .rev = 0x100103, .name = "ALC889A",
- .patch = patch_alc883 },
+ .patch = patch_alc882 }, /* should be patch_alc883() in future */
{ .id = 0x10ec0885, .name = "ALC885", .patch = patch_alc882 },
{ .id = 0x10ec0888, .name = "AL...
I wasnt sure how it was evaluated, i dont really know alsa alot, so i
Yes, sorry for delay, for some reason my mail client decided not to
update the view.. weird..You should know that this is WITH my modification..
About problems.. well.. now that you do mention it, when i play
something without a .asoundrc, i get:
ALSA lib dlmisc.c:118:(snd_dlsym_verify) unable to verify version for
symbol _snd_pcm_empty_open
ALSA lib pcm.c:2108:(snd_pcm_open_conf) symbol _snd_pcm_empty_open is
not defined inside [builtin]
No default libao driver available.if i make a .asoundrc containing:
pcm.!default {
type dmix
ipc_key 1024
slave.pcm "hw:0,0"
slave.rate 44100
}
it works. (this is both with and without the modification to make it get
recognized as 889A). Alsa userspace 1.0.16.root@quadstation # aplay -L
default:CARD=Intel
HDA Intel, ALC883 Analog
Default Audio Device
front:CARD=Intel,DEV=0
HDA Intel, ALC883 Analog
Front speakers
surround40:CARD=Intel,DEV=0
HDA Intel, ALC883 Analog
4.0 Surround output to Front and Rear speakers
surround41:CARD=Intel,DEV=0
HDA Intel, ALC883 Analog
4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Intel,DEV=0
HDA Intel, ALC883 Analog
5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Intel,DEV=0
HDA Intel, ALC883 Analog
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Intel,DEV=0
HDA Intel, ALC883 Analog
7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=Intel,DEV=0
HDA Intel, ALC883 Digital
IEC958 (S/PDIF) Digital Audio Output
null
Discard all samples (playback) or generate zero samples (capture)
root@quadstation # aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: ALC883 Analog [ALC883 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 1: ALC883 Digita...
At Fri, 18 Apr 2008 03:52:06 +0200,
It's a bug of alsa-lib that was already fixed in the recent version.
You can open 4, 6 or 8 channels with the device. But, the default PCM
is set up only for two channels due to soft-mixing. You can use
special PCM names such as "surround51" to open for 5.1 output
instead. Again, no kernel issue.thanks,
Takashi
--
if i open hw:0,0, and play only 2 channels, it comes out of all 8
channels.. but thats fine.. what i meant that does NOT work, is that
according to gigabyte, i actually should have 10 channels, 7.1 for the
back panel connectors, and two entirely separate for the front panel,
but the front panel just plays same as back panel stereo (green)
connector.Btw, i now inspected the motherboard, and it is indeed ALC889A, atleast
--
At Tue, 22 Apr 2008 22:53:49 +0200,
Then some output route is missing either in the BIOS setting or in the
OK, thanks, that's good to know.
Takashi
--
Do you think it could be that i am able to open 10 channels on hw:0,0?
is there some way i can see? this is what gigabyte's site says:
7.1+2 Channel High Definition Output
The ALC889A provides support for 7.1 sound playback, plus 2 channels of
independent stereo output (multiple streaming) through the front panel
stereo outputs.--
At Wed, 23 Apr 2008 23:35:42 +0200,
The independent extra PCM stream isn't implemented yet. You can have
a 7.1-output to be duped to another jack, but not two individual
streams.This is another item on my TODO list.
Takashi
--
Yeah okay, then it makes perfect sense what is happening. Thanks for the
--
| Greg Kroah-Hartman | [PATCH 011/196] sysfs: Fix a copy-n-paste typo in comment |
| Al Boldi | Re: [ck] Re: [ANNOUNCE] RSDL completely fair starvation free interactive cpu sched... |
| Andrew Morton | 2.6.25-rc8-mm2 |
| Ingo Molnar | Re: [patch] sched_clock(): cleanups |
| David Miller | [GIT]: Networking |
| John P Poet | Realtek 8111C transmit timed out |
| Gerrit Renker | [PATCH 15/37] dccp: Set per-connection CCIDs via socket options |
| Kenny Chang | Multicast packet loss |
git: | |
