[asterisk-dev] wcfxo and X100P card won't play nice.

Tzafrir Cohen tzafrir.cohen at xorcom.com
Wed Apr 16 02:01:37 CDT 2008


On Wed, Apr 16, 2008 at 01:19:49AM -0400, Alex Balashov wrote:
> Bob wrote:
> 
> > The driver recognizes your card just fine, or you wouldn't get that far.
> > 
> > The driver fails when it tries to identify the line side device. It's just a
> > sanity check when the 3050 chipset is being initialized. Sounds like a bad
> > card.
> 
> I tried killing off the sanity check in the driver:
> 
>          switch(chip_revb) {
>                  case 1: case 2: case 3:
>                          /* This is a si3034. Nothing to do */
>                          break;
>                  case 4: case 5: case 7:
>                          /* This is 3035. Has no support for 
> international regist
> ers */
>                          wc->flags |= FLAG_NO_I18N_REGS;
>                          break;
>                  default:
>                          //wcfxo_notice(wc->span, "Unknown DAA chip 
> revision: REV
> B=%d\n",
>                          //              chip_revb);
>                          break;
>          }
> 
>          /* Initialize DAA (after it's started) */
>          /*if (wcfxo_init_daa(wc)) {
>                  printk("Failed to initailize DAA, giving up...\n");
>                  wcfxo_stop_dma(wc);
>                  wcfxo_disable_interrupts(wc);
>                  zt_unregister(&wc->span);
>                  free_irq(pdev->irq, wc);
> 
>                  outb(0x0e, wc->ioaddr + WC_CNTL);
> 
>                  if (wc->freeregion)
>                          release_region(wc->ioaddr, 0xff);
>                  kfree(wc);
>                  return -EIO;
>          }*/
>          wcfxo_set_daa_mode(wc);
>          printk("Found a Wildcard FXO: %s\n", wc->variety);
> 
> 
> But now I get no audio from MeetMe() whatsoever.  :-)  I still get it 
> with ztdummy.

That's not just a sanity check you disabled. It's pretty much all the
initialization code.

Right. You don't do anything with the card. You just pretend to do. You
don't get any interrupts from the card and hence provide no timing (as
zttest will also show).

You talk with that chip through the PCI controlelr chip (the motorolla
one in your case). Maybe that one should be your target?

-- 
               Tzafrir Cohen
icq#16849755              jabber:tzafrir.cohen at xorcom.com
+972-50-7952406           mailto:tzafrir.cohen at xorcom.com
http://www.xorcom.com  iax:guest at local.xorcom.com/tzafrir



More information about the asterisk-dev mailing list