On Tue, Nov 30, 2004 at 11:09:52AM +0100, Takashi Iwai wrote: > At Mon, 29 Nov 2004 20:05:25 -0600, > Zinx Verituse wrote: > > > > [1 ] > > On Thu, Nov 25, 2004 at 05:18:57PM +0100, Takashi Iwai wrote: > > > At Wed, 24 Nov 2004 18:46:49 -0600, > > > Zinx Verituse wrote: > > > > > > > > I recently purchased a motherboard with an on-board CMI9739A (or so it claims) > > > > > > > > the id is: 0x434d4983 > > > > > > > > Unfortunately, simply adding the line: > > > > > > > > { 0x434d4983, 0xffffffff, "CMI9739A", patch_cm9739, NULL }, > > > > > > > > causes the card to be muted, reguardless of the mixer, because of the init > > > > code in patch_cm9739 -- the init code apparently isn't compatible. > > > > > > > > Removing the initialization code, but leaving the ops, gives a few more > > > > functional mixer options (like "Line-In as Surround" and "Mic as Center/LFE") > > > > > > According to the datasheet, CM9739A is indeed compatible with 9739 > > > except for pins. > > > > > > Could you get the ac97 register dump of the good- and bad-running > > > states (from /proc/asound/card0/codec97#0/* files) ? > > > > > > I guess the GPIO initialization (for using HP) is wrong there. Doing > > > the following helps? > > > > > > # echo 72 0001 > /proc/asound/card0/codec97#0/ac97#0-0+regs > > > > Sorry it took so long to get back to you -- I've attached the following files: > > cmi9739a-working-ac97.txt - output from working */codec97#0/ac97#0-0 > > cmi9739a-working-ac97-regs.txt - output from working */codec97#0/ac97#0-0+regs > > cmi9739a-muted-ac97.txt - output from muted */codec97#0/ac97#0-0 > > cmi9739a-muted-ac97-regs.txt - output from muted */codec97#0/ac97#0-0+regs > > > > attempting to write to ac97#0-0+regs with the following: > > 72 0001 > > 0:72 0001 > > 72=0001 > > 72 = 0001 > > 0:72 = 0001 > > met with the error: > > -su: /proc/asound/card1/codec97#0/ac97#0-0+regs: No such device > > Did you compile ALSA drivers with the debug option? Sorry for the even longer delay this time -- I hadn't compiled debug in, but have now. Results: 72 0001 does nothing. However, setting one of the registers that actually differs - 64 - does fix it. The other registers that changed (6c, 70) seemed to have no effect. Non-working value for register 0x64: 0x5400 Working value for register 0x64: 0x1438 Also working value for register 0x64: 0x0010 Bit 4 doesn't appear to be documented in the source, or in the CM9739 documentation, and it actually defaults to 0x1438 here rather than 0x0000, so I've made a patch that just keeps the value (luckily, it seems to default to on when the card is initialized). The patch also includes the id for the 9739A. The patch is against 2.6.10-rc3, but it's fairly simple so it shouldn't be too hard to apply by hand if it fails. -- Zinx Verituse http://zinx.xmms.org/