Summary: | DAHLIN-00181: Motherboards with Intel ICH7 Family and ICH5 Family dont know when pstn is ring... | ||
Reporter: | Francisco Antonello (skyzer) | Labels: | |
Date Opened: | 2010-03-13 00:09:39.000-0600 | Date Closed: | 2019-05-31 09:39:57 |
Priority: | Minor | Regression? | No |
Status: | Closed/Complete | Components: | wcfxo |
Versions: | Frequency of Occurrence | ||
Related Issues: | |||
Environment: | Attachments: | ( 0) lspci_verbose_amd.txt ( 1) lspci_verbose_intel.txt | |
Description: | Excuse me if this topic has been addressed. But I have had constant problems since the driver was merged into zaptel to dahdi involving X100P cards and motherboards with intel chipsets. What happens is that in any way chan_dahdi don't receives any signals that the line is ringing. In the same way that it is not possible to make a call to the pstn line. This is happening only with motherboards with Intel chipset of the families described. Mothermoards withs Sis, Nvidia, Via chipsets dont show this particular probleman... if a put the same hard disk, and the same board in another machine, with sis, nvidia, via chipset's, this works perfect.... its happen ONLY with intel boards... (PS: i use slackware 13.0) Do i make some debugging in wcfxo driver and not found anywhere in the driver becomes aware that the line is ringing. Could someone help me? I do not believe I'm doing something wrong, because the same device works perfectly with the asterisk 1.4.x Zaptel driver. | ||
Comments: | By: Tzafrir Cohen (tzafrir) 2010-03-14 06:23:55 I'm not sure I understand the symptoms. How can you tell that a PSTN ring is not detected? Does this work on some systems? Could you provide the output of lspci of some relevant systems (those in which it works and those in which it doesn't)? Does a standard analog phone detect the ring? By: Francisco Antonello (skyzer) 2010-03-18 00:37:50 Ok, I'll explain. First, i have the same board, working in another systems. the vast majority of motherboards have a Sis, Via or nvidia. The probleman aways happen in some Intel machines. I attached one file (lspci_verbose_nvidia.txt) from on old machine (AMD Athlon XP 2200+). on this machine, everything works fine. look, when i call to my pstn number, asterisk give-me this message (this is in the system who works fine): [Mar 18 00:47:20] -- Starting simple switch on 'DAHDI/1-1' [Mar 18 00:47:21] -- Executing [s@from-pstn:1] Wait("DAHDI/1-1", "1") in new stack So, i put some debug messages on chan_dahdi.c, on the ss_thread function. On the good machine, the debug message is showed.. On the the machine who use intel chipset, the message is not showed.. i not know if I'm right, but if ring tone is detected, the processing will pass through this function. Right? So, after this, i decide to test wcfxo.c driver and has put some messagens on wcxfs.c from dahdi driver. I put one debug message on this part of code.. ------------------------------------------------- static int wcfxo_hooksig(struct dahdi_chan *chan, enum dahdi_txsig txsig) { struct wcfxo *wc = chan->pvt; int reg=0; printk(KERN_INFO "FXO: HOOK event detected on wcfxo_hooksig\n"); --------------------------------------------------------------------------- note that the debug message is just the beginning of the function. so, in the some system, they should be showed right? So, when (on the system who works) recive a ring tone, this message has showed on the syslog and chan_dahdi.c of asterisk knows about a new call is coming and show the debug message... Sorry, I have over 15 years as a C programmer and I'm degree in computer engineering. However, never worked with drivers for Linux kernel. The question is, what is the first function who is called when a public pstn call incoming on dahdi driver? in case of wcfxo.c When i do the same test on the system who does not work, this message is not showed.. Nothing happen!!! I put some debug messages on the registration funcion, and the board is correctly registred on the system.. this is the output of /proc/interruptions from the system with intel board. ------------------------------------------------------- root@asterisk:~# cat /proc/interrupts CPU0 0: 314 IO-APIC-edge timer 1: 8 IO-APIC-edge i8042 4: 2 IO-APIC-edge 8: 1 IO-APIC-edge rtc0 9: 0 IO-APIC-fasteoi acpi 14: 16070 IO-APIC-edge ide0 15: 0 IO-APIC-edge ide1 16: 146 IO-APIC-fasteoi HDA Intel 19: 0 IO-APIC-fasteoi ata_piix 23: 29 IO-APIC-fasteoi wcfxo 26: 51307 PCI-MSI-edge eth0 NMI: 0 Non-maskable interrupts LOC: 471435 Local timer interrupts RES: 0 Rescheduling interrupts CAL: 0 Function call interrupts TLB: 0 TLB shootdowns TRM: 0 Thermal event interrupts SPU: 0 Spurious interrupts ------------------------------------------------------------------ I attached a file called lspci_verbose_intel.txt with lspci from intel system. A timely question that maybe I can help investigate this problem. In that role really wcfxo driver learns that there is an event occurring with the line? ok, the second question, Yes, when i call to my pstn, the standard analog phone rings... but asterisk dont take knowledge about this... one more thing that occurred to me after looking carefully dmesg system intel This message is displayed during the boot process and believe it has to do with the reason not to function dahdi: Telephony Interface Registered on major 196 dahdi: Version: 2.2.0.2 wcfxo 0000:03:02.0: PCI INT A -> GSI 23 (level, low) -> IRQ 23 FXO PCI Master abort wcfxo: DAA mode is 'FCC' Found a Wildcard FXO: Wildcard X100P dahdi_echocan_mg2: Registered echo canceler 'MG2' dahdi_transcode: Loaded. look.. we say: FXO PCI Master abort what is the condiction who makes ints variable asume 0x10 value? this is the part of code if (ints & 0x10) { printk(KERN_INFO "FXO PCI Master abort\n"); /* Stop DMA andlet the watchdog start it again */ wcfxo_stop_dma(wc); return IRQ_RETVAL(1); } even with this message, the card appears as configured root@asterisk:~# dahdi_cfg -vvv DAHDI Tools Version - 2.2.0 DAHDI Version: 2.2.0.2 Echo Canceller(s): MG2 Configuration ====================== Channel map: Channel 01: FXS Kewlstart (Default) (Echo Canceler: mg2) (Slaves: 01) 1 channels to configure. Setting echocan for channel 1 to mg2 root@asterisk:~# dahdi_hardware pci:0000:03:02.0 wcfxo+ 1057:5608 Wildcard X100P Ok. is all information I have now ... By: Shaun Ruffell (sruffell) 2010-03-18 00:44:09 Depending on the kernel version you're using, if the IDE controller is operating in "combined mode" (i.e., the hard drive shows up on hda instead of sda) the disk controller can lock interrupts for so long an X100P will not be able to service it's interrupt in time. Is your hard drive on hda? By: Francisco Antonello (skyzer) 2010-03-18 21:09:36 Okay, this is not the case. I tested both ways, What is happening is that during the initialization of FXO th routine DAHDI_IRQ_HANDLER (wcfxo_interrupt) is performed during the interruptions. From this point, ints = inb (wc-> ioaddr + WC_INTSTAT); receives values 5 and 10 but then, at some stage, the reading is 255 and this code has considered true if (ints & 0x10) { printk(KERN_INFO "FXO PCI Master abort\n"); /* Stop DMA andlet the watchdog start it again */ wcfxo_stop_dma(wc); return IRQ_RETVAL(1); } right? so, after this... nothing more works.. watchdog dont restart dma.. and the fxo dont works... then, in what context, INTB receives the 255 response? what is wrong.. Another thing not mentioned. Even dahdi_cfg-v shows no problem when I try to open a channel to the pstn, it is not open. Simply, the line goes quiet .. By: Anderson Alipio (alipio) 2010-12-27 09:48:25.000-0600 I'm having the same problem in a Intel motherboard with X100P FXO card. Does this issue have a solution already? Thanks. |