Hi, 2012/8/3 Takashi Iwai <tiwai@xxxxxxx>: > At Fri, 3 Aug 2012 18:36:40 +0800, > Huacai Chen wrote: >> >> We write these quirks on 2.6.36 some time ago, and then we port them >> to 3.x (3.2, 3.3, 3.4 and 3.5). As you say, PMON (BIOS for Loongson) >> doesn't set the pins correctly. Anyway, I'll try your suggestions. > > Thanks. I guess it should work by just adding a new entry for your > device in cxt_fixups[] containing the right default pin-configuration > table, then point it in cxt5066_fixups[] with the corresponding PCI > (or codec) SSID. > > > Takashi I've found it is a little difficult to get proper pincfg values. The original patch builds 'input/output path' manually, the new way does it automatically as long as providing proper pincfgs for 'end points'. I tried to copy related pincfgs from a workable lemote a1004 laptop(kernel with the original patch, read from /proc/asound/card0/codec#0), didn't help much. I guess the pincfgs are not correct, and on the platform, the pincfgs are not touched by BIOS, so I have to calculate proper pincfgs, how? HDA spec explains a pincfg as four bytes. For each byte, it has bits indicate amp/in/out/vref/ept. In the kernel side, it reads a pincfg and explains it as a 32bits flag, indicating connect/location/device/jack_connect_type/jack_color/misc/association/sequence. Why they differ? How to get proper pincfg values? Regards, -- Chen Jie