At Fri, 18 Aug 2006 11:17:51 +0400, Andrew L. Neporada wrote: > > Takashi Iwai wrote: > > At Thu, 17 Aug 2006 15:48:07 +0400, > > Andrew L. Neporada wrote: > > > > > > Takashi Iwai wrote: > > > > > > > Also post codec#* and "alsactl -f xxx store" contents, please. > > > > > > > > > > > > > > Sorry, forgot this stuff. See attached files. > > > > Thanks. > > > > How about the new patch below? > > > > Still can not record sound. > Btw, it seems that mic is detected only if > phone jack is inserted at modprobe moment. > There is also "azx_get_response timeout, switching to single_cmd > mode..." message in kernel debug output (see attached files). The azx_get_response could be improved by the patch below (although you may see still a warning message once). It will switch to polling mode if the irq mode fails by some reason. The fact that the mic gets detected only when "phone" jack is inserted looks interesting. Could you compare codec#0 before and after plugging the jack? Any change? And, could you try inputs from "Line"? Also, please check snd_hda_queue_unsol_event() is called, e.g. by adding a debug printk. This is used on some devices such as a jack detection mechanism. But we didn't turn it on, so I wonder whether it's really involved. I suppose you get just a silence data instead of empty or shortened file via arecord, right? If so, it's likely a mixer volume, the input volume of audio-input widget 0x1a. The problem is that only the first amp-in volume can be changed by the mixer element... thanks, Takashi diff -r 5b67bba2d36f pci/hda/hda_intel.c --- a/pci/hda/hda_intel.c Tue Aug 08 21:13:42 2006 +0200 +++ b/pci/hda/hda_intel.c Wed Aug 09 12:07:44 2006 +0200 @@ -332,6 +332,7 @@ struct azx { int position_fix; unsigned int initialized: 1; unsigned int single_cmd: 1; + unsigned int polling_mode: 1; }; /* driver types */ @@ -518,8 +519,23 @@ static unsigned int azx_rirb_get_respons struct azx *chip = codec->bus->private_data; int timeout = 50; - while (chip->rirb.cmds) { + for (;;) { + if (chip->polling_mode) { + spin_lock_irq(&chip->reg_lock); + azx_update_rirb(chip); + spin_unlock_irq(&chip->reg_lock); + } + if (! chip->rirb.cmds) + break; if (! --timeout) { + if (! chip->polling_mode) { + snd_printk(KERN_WARNING "hda_intel: " + "azx_get_response timeout, " + "switching to polling mode...\n"); + chip->polling_mode = 1; + timeout = 50; + continue; + } snd_printk(KERN_ERR "hda_intel: azx_get_response timeout, " "switching to single_cmd mode...\n"); ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.sourceforge.net/lists/listinfo/alsa-devel