Alexander Motin wrote: > Tobias Kirschstein wrote: >>>> from dmesg: >>>> ----------- >>>> hdac0: <Intel 82801G High Definition Audio Controller> mem >>>> 0xee240000-0xee243fff irq 17 at device 27.0 on pci0 hdac0: HDA >>>> Driver Revision: 20081013_0113 hdac0: [ITHREAD] >>>> hdac0: HDA Codec #0: Analog Devices AD1981HD >>>> hdac0: HDA Codec #1: Conexant (Unknown) >>>> pcm0: <HDA Analog Devices AD1981HD PCM #0> at cad 0 nid 1 on hdac0 >>> To understand current driver behavior I need to see verbose kernel >>> boot messages. Read them yourself and send them to me. >> rebooted now and here are the verbose boot messages for you :) > > Try please attached patch. It disables several unsupported signal paths > inside the codec to help widget parser to manage it. There is actually > two options in a patch: > 1) To disable playback mixer so you will not hear what you are > recording. But this situation is predictable. > 2) To use that mixer for playback. You may get system beeper working, > but it is hard to predict what will happen to recording. > > Test please and send me verbose logs from both cases if you can. I am sorry, I have made mistake there. Could you test new one. -- Alexander Motin diff -ruNp hda.HEAD/hdac.c hda/hdac.c --- hda.HEAD/hdac.c 2008-10-23 21:30:06.000000000 +0300 +++ hda/hdac.c 2008-10-24 15:55:36.000000000 +0300 _at__at_ -4510,6 +4510,36 _at__at_ hdac_vendor_patch_parse(struct hdac_devi ~HDA_QUIRK_EAPDINV; } break; + case HDA_CODEC_AD1981HD: + /* Disable recording from mono mix. */ + w = hdac_widget_get(devinfo, 21); + if (w != NULL) + w->connsenable[3] = 0; + /* Disable rear front mic mixer. */ + w = hdac_widget_get(devinfo, 31); + if (w != NULL) + w->enable = 0; +#if 1 + /* Disable playback mixer, use bypass. */ + w = hdac_widget_get(devinfo, 14); + if (w != NULL) + w->enable = 0; +#else + /* Disable bypass, use playback mixer. */ + w = hdac_widget_get(devinfo, 5); + if (w != NULL) + w->connsenable[0] = 0; + w = hdac_widget_get(devinfo, 6); + if (w != NULL) + w->connsenable[0] = 0; + w = hdac_widget_get(devinfo, 9); + if (w != NULL) + w->connsenable[0] = 0; + w = hdac_widget_get(devinfo, 24); + if (w != NULL) + w->connsenable[0] = 0; +#endif + break; } }Received on Fri Oct 24 2008 - 12:18:43 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:36 UTC