ixj.c
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:316k
- } else {
- if (j->cardtype == QTI_PHONECARD) {
- ixj_WriteDSPCommand(0xCF07, j);
- ixj_WriteDSPCommand(0x00B0, j);
- ixj_set_port(j, PORT_SPEAKER);
- } else {
- ixj_set_port(j, PORT_POTS);
- SLIC_SetState(PLD_SLIC_STATE_STANDBY, j);
- /* SLIC_SetState(PLD_SLIC_STATE_ACTIVE, j); */
- }
- }
- }
- j->intercom = -1;
- j->framesread = j->frameswritten = 0;
- j->read_wait = j->write_wait = 0;
- j->rxreadycheck = j->txreadycheck = 0;
- /* initialise the DTMF prescale to a sensible value */
- if (j->cardtype == QTI_LINEJACK) {
- set_dtmf_prescale(j, 0x10);
- } else {
- set_dtmf_prescale(j, 0x40);
- }
- set_play_volume(j, 0x100);
- set_rec_volume(j, 0x100);
- if (ixj_WriteDSPCommand(0x0000, j)) /* Write IDLE to Software Control Register */
- return -1;
- /* The read values of the SSR should be 0x00 for the IDLE command */
- if (j->ssr.low || j->ssr.high)
- return -1;
- if (ixjdebug & 0x0002)
- printk(KERN_INFO "Enable Line Monitorn");
- if (ixjdebug & 0x0002)
- printk(KERN_INFO "Set Line Monitor to Asyncronous Moden");
- if (ixj_WriteDSPCommand(0x7E01, j)) /* Asynchronous Line Monitor */
- return -1;
- if (ixjdebug & 0x002)
- printk(KERN_INFO "Enable DTMF Detectorsn");
- if (ixj_WriteDSPCommand(0x5151, j)) /* Enable DTMF detection */
- return -1;
- if (ixj_WriteDSPCommand(0x6E01, j)) /* Set Asyncronous Tone Generation */
- return -1;
- set_rec_depth(j, 2); /* Set Record Channel Limit to 2 frames */
- set_play_depth(j, 2); /* Set Playback Channel Limit to 2 frames */
- j->ex.bits.dtmf_ready = 0;
- j->dtmf_state = 0;
- j->dtmf_wp = j->dtmf_rp = 0;
- j->rec_mode = j->play_mode = -1;
- j->flags.ringing = 0;
- j->maxrings = MAXRINGS;
- j->ring_cadence = USA_RING_CADENCE;
- j->drybuffer = 0;
- j->winktime = 320;
- j->flags.dtmf_oob = 0;
- for (cnt = 0; cnt < 4; cnt++)
- j->cadence_f[cnt].enable = 0;
- /* must be a device on the specified address */
- ixj_WriteDSPCommand(0x0FE3, j); /* Put the DSP in 1/5 power mode. */
- /* Set up the default signals for events */
- for (cnt = 0; cnt < 35; cnt++)
- j->ixj_signals[cnt] = SIGIO;
- /* Set the excetion signal enable flags */
- j->ex_sig.bits.dtmf_ready = j->ex_sig.bits.hookstate = j->ex_sig.bits.flash = j->ex_sig.bits.pstn_ring =
- j->ex_sig.bits.caller_id = j->ex_sig.bits.pstn_wink = j->ex_sig.bits.f0 = j->ex_sig.bits.f1 = j->ex_sig.bits.f2 =
- j->ex_sig.bits.f3 = j->ex_sig.bits.fc0 = j->ex_sig.bits.fc1 = j->ex_sig.bits.fc2 = j->ex_sig.bits.fc3 = 1;
- #ifdef IXJ_DYN_ALLOC
- j->fskdata = NULL;
- #endif
- j->fskdcnt = 0;
- j->cidcw_wait = 0;
-
- /* Register with the Telephony for Linux subsystem */
- j->p.f_op = &ixj_fops;
- j->p.open = ixj_open;
- j->p.board = j->board;
- phone_register_device(&j->p, PHONE_UNIT_ANY);
- ixj_init_timer(j);
- ixj_add_timer(j);
- return 0;
- }
- /*
- * Exported service for pcmcia card handling
- */
-
- IXJ *ixj_pcmcia_probe(unsigned long dsp, unsigned long xilinx)
- {
- IXJ *j = ixj_alloc();
- j->board = 0;
- j->DSPbase = dsp;
- j->XILINXbase = xilinx;
- j->cardtype = QTI_PHONECARD;
- ixj_selfprobe(j);
- return j;
- }
- EXPORT_SYMBOL(ixj_pcmcia_probe); /* Fpr PCMCIA */
- static int ixj_get_status_proc(char *buf)
- {
- int len;
- int cnt;
- IXJ *j;
- len = 0;
- len += sprintf(buf + len, "%s", ixj_c_rcsid);
- len += sprintf(buf + len, "n%s", ixj_h_rcsid);
- len += sprintf(buf + len, "n%s", ixjuser_h_rcsid);
- len += sprintf(buf + len, "nDriver version %i.%i.%i", IXJ_VER_MAJOR, IXJ_VER_MINOR, IXJ_BLD_VER);
- len += sprintf(buf + len, "nsizeof IXJ struct %d bytes", sizeof(IXJ));
- len += sprintf(buf + len, "nsizeof DAA struct %d bytes", sizeof(DAA_REGS));
- len += sprintf(buf + len, "nUsing old telephony API");
- len += sprintf(buf + len, "nDebug Level %dn", ixjdebug);
- for (cnt = 0; cnt < IXJMAX; cnt++) {
- j = get_ixj(cnt);
- if(j==NULL)
- continue;
- if (j->DSPbase) {
- len += sprintf(buf + len, "nCard Num %d", cnt);
- len += sprintf(buf + len, "nDSP Base Address 0x%4.4x", j->DSPbase);
- if (j->cardtype != QTI_PHONEJACK)
- len += sprintf(buf + len, "nXILINX Base Address 0x%4.4x", j->XILINXbase);
- len += sprintf(buf + len, "nDSP Type %2.2x%2.2x", j->dsp.high, j->dsp.low);
- len += sprintf(buf + len, "nDSP Version %2.2x.%2.2x", j->ver.high, j->ver.low);
- len += sprintf(buf + len, "nSerial Number %8.8x", j->serial);
- switch (j->cardtype) {
- case (QTI_PHONEJACK):
- len += sprintf(buf + len, "nCard Type = Internet PhoneJACK");
- break;
- case (QTI_LINEJACK):
- len += sprintf(buf + len, "nCard Type = Internet LineJACK");
- if (j->flags.g729_loaded)
- len += sprintf(buf + len, " w/G.729 A/B");
- len += sprintf(buf + len, " Country = %d", j->daa_country);
- break;
- case (QTI_PHONEJACK_LITE):
- len += sprintf(buf + len, "nCard Type = Internet PhoneJACK Lite");
- if (j->flags.g729_loaded)
- len += sprintf(buf + len, " w/G.729 A/B");
- break;
- case (QTI_PHONEJACK_PCI):
- len += sprintf(buf + len, "nCard Type = Internet PhoneJACK PCI");
- if (j->flags.g729_loaded)
- len += sprintf(buf + len, " w/G.729 A/B");
- break;
- case (QTI_PHONECARD):
- len += sprintf(buf + len, "nCard Type = Internet PhoneCARD");
- if (j->flags.g729_loaded)
- len += sprintf(buf + len, " w/G.729 A/B");
- len += sprintf(buf + len, "nSmart Cable %spresent", j->pccr1.bits.drf ? "not " : "");
- if (!j->pccr1.bits.drf)
- len += sprintf(buf + len, "nSmart Cable type %d", j->flags.pcmciasct);
- len += sprintf(buf + len, "nSmart Cable state %d", j->flags.pcmciastate);
- break;
- default:
- len += sprintf(buf + len, "nCard Type = %d", j->cardtype);
- break;
- }
- len += sprintf(buf + len, "nReaders %d", j->readers);
- len += sprintf(buf + len, "nWriters %d", j->writers);
- add_caps(j);
- len += sprintf(buf + len, "nCapabilities %d", j->caps);
- if (j->dsp.low != 0x20)
- len += sprintf(buf + len, "nDSP Processor load %d", j->proc_load);
- if (j->flags.cidsent)
- len += sprintf(buf + len, "nCaller ID data sent");
- else
- len += sprintf(buf + len, "nCaller ID data not sent");
- len += sprintf(buf + len, "nPlay CODEC ");
- switch (j->play_codec) {
- case G723_63:
- len += sprintf(buf + len, "G.723.1 6.3");
- break;
- case G723_53:
- len += sprintf(buf + len, "G.723.1 5.3");
- break;
- case TS85:
- len += sprintf(buf + len, "TrueSpeech 8.5");
- break;
- case TS48:
- len += sprintf(buf + len, "TrueSpeech 4.8");
- break;
- case TS41:
- len += sprintf(buf + len, "TrueSpeech 4.1");
- break;
- case G728:
- len += sprintf(buf + len, "G.728");
- break;
- case G729:
- len += sprintf(buf + len, "G.729");
- break;
- case G729B:
- len += sprintf(buf + len, "G.729B");
- break;
- case ULAW:
- len += sprintf(buf + len, "uLaw");
- break;
- case ALAW:
- len += sprintf(buf + len, "aLaw");
- break;
- case LINEAR16:
- len += sprintf(buf + len, "16 bit Linear");
- break;
- case LINEAR8:
- len += sprintf(buf + len, "8 bit Linear");
- break;
- case WSS:
- len += sprintf(buf + len, "Windows Sound System");
- break;
- default:
- len += sprintf(buf + len, "NO CODEC CHOSEN");
- break;
- }
- len += sprintf(buf + len, "nRecord CODEC ");
- switch (j->rec_codec) {
- case G723_63:
- len += sprintf(buf + len, "G.723.1 6.3");
- break;
- case G723_53:
- len += sprintf(buf + len, "G.723.1 5.3");
- break;
- case TS85:
- len += sprintf(buf + len, "TrueSpeech 8.5");
- break;
- case TS48:
- len += sprintf(buf + len, "TrueSpeech 4.8");
- break;
- case TS41:
- len += sprintf(buf + len, "TrueSpeech 4.1");
- break;
- case G728:
- len += sprintf(buf + len, "G.728");
- break;
- case G729:
- len += sprintf(buf + len, "G.729");
- break;
- case G729B:
- len += sprintf(buf + len, "G.729B");
- break;
- case ULAW:
- len += sprintf(buf + len, "uLaw");
- break;
- case ALAW:
- len += sprintf(buf + len, "aLaw");
- break;
- case LINEAR16:
- len += sprintf(buf + len, "16 bit Linear");
- break;
- case LINEAR8:
- len += sprintf(buf + len, "8 bit Linear");
- break;
- case WSS:
- len += sprintf(buf + len, "Windows Sound System");
- break;
- default:
- len += sprintf(buf + len, "NO CODEC CHOSEN");
- break;
- }
- len += sprintf(buf + len, "nAEC ");
- switch (j->aec_level) {
- case AEC_OFF:
- len += sprintf(buf + len, "Off");
- break;
- case AEC_LOW:
- len += sprintf(buf + len, "Low");
- break;
- case AEC_MED:
- len += sprintf(buf + len, "Med");
- break;
- case AEC_HIGH:
- len += sprintf(buf + len, "High");
- break;
- case AEC_AUTO:
- len += sprintf(buf + len, "Auto");
- break;
- case AEC_AGC:
- len += sprintf(buf + len, "AEC/AGC");
- break;
- default:
- len += sprintf(buf + len, "unknown(%i)", j->aec_level);
- break;
- }
- len += sprintf(buf + len, "nRec volume 0x%x", get_rec_volume(j));
- len += sprintf(buf + len, "nPlay volume 0x%x", get_play_volume(j));
- len += sprintf(buf + len, "nDTMF prescale 0x%x", get_dtmf_prescale(j));
-
- len += sprintf(buf + len, "nHook state %d", j->hookstate); /* j->r_hook); */
- if (j->cardtype == QTI_LINEJACK) {
- len += sprintf(buf + len, "nPOTS Correct %d", j->flags.pots_correct);
- len += sprintf(buf + len, "nPSTN Present %d", j->flags.pstn_present);
- len += sprintf(buf + len, "nPSTN Check %d", j->flags.pstncheck);
- len += sprintf(buf + len, "nPOTS to PSTN %d", j->flags.pots_pstn);
- switch (j->daa_mode) {
- case SOP_PU_SLEEP:
- len += sprintf(buf + len, "nDAA PSTN On Hook");
- break;
- case SOP_PU_RINGING:
- len += sprintf(buf + len, "nDAA PSTN Ringing");
- len += sprintf(buf + len, "nRinging state = %d", j->cadence_f[4].state);
- break;
- case SOP_PU_CONVERSATION:
- len += sprintf(buf + len, "nDAA PSTN Off Hook");
- break;
- case SOP_PU_PULSEDIALING:
- len += sprintf(buf + len, "nDAA PSTN Pulse Dialing");
- break;
- }
- len += sprintf(buf + len, "nDAA RMR = %d", j->m_DAAShadowRegs.SOP_REGS.SOP.cr1.bitreg.RMR);
- len += sprintf(buf + len, "nDAA VDD OK = %d", j->m_DAAShadowRegs.XOP_REGS.XOP.xr0.bitreg.VDD_OK);
- len += sprintf(buf + len, "nDAA CR0 = 0x%02x", j->m_DAAShadowRegs.SOP_REGS.SOP.cr0.reg);
- len += sprintf(buf + len, "nDAA CR1 = 0x%02x", j->m_DAAShadowRegs.SOP_REGS.SOP.cr1.reg);
- len += sprintf(buf + len, "nDAA CR2 = 0x%02x", j->m_DAAShadowRegs.SOP_REGS.SOP.cr2.reg);
- len += sprintf(buf + len, "nDAA CR3 = 0x%02x", j->m_DAAShadowRegs.SOP_REGS.SOP.cr3.reg);
- len += sprintf(buf + len, "nDAA CR4 = 0x%02x", j->m_DAAShadowRegs.SOP_REGS.SOP.cr4.reg);
- len += sprintf(buf + len, "nDAA CR5 = 0x%02x", j->m_DAAShadowRegs.SOP_REGS.SOP.cr5.reg);
- len += sprintf(buf + len, "nDAA XR0 = 0x%02x", j->m_DAAShadowRegs.XOP_REGS.XOP.xr0.reg);
- len += sprintf(buf + len, "nDAA ringstop %ld - jiffies %ld", j->pstn_ring_stop, jiffies);
- }
- switch (j->port) {
- case PORT_POTS:
- len += sprintf(buf + len, "nPort POTS");
- break;
- case PORT_PSTN:
- len += sprintf(buf + len, "nPort PSTN");
- break;
- case PORT_SPEAKER:
- len += sprintf(buf + len, "nPort SPEAKER/MIC");
- break;
- case PORT_HANDSET:
- len += sprintf(buf + len, "nPort HANDSET");
- break;
- }
- if (j->dsp.low == 0x21 || j->dsp.low == 0x22) {
- len += sprintf(buf + len, "nSLIC state ");
- switch (SLIC_GetState(j)) {
- case PLD_SLIC_STATE_OC:
- len += sprintf(buf + len, "OC");
- break;
- case PLD_SLIC_STATE_RINGING:
- len += sprintf(buf + len, "RINGING");
- break;
- case PLD_SLIC_STATE_ACTIVE:
- len += sprintf(buf + len, "ACTIVE");
- break;
- case PLD_SLIC_STATE_OHT: /* On-hook transmit */
- len += sprintf(buf + len, "OHT");
- break;
- case PLD_SLIC_STATE_TIPOPEN:
- len += sprintf(buf + len, "TIPOPEN");
- break;
- case PLD_SLIC_STATE_STANDBY:
- len += sprintf(buf + len, "STANDBY");
- break;
- case PLD_SLIC_STATE_APR: /* Active polarity reversal */
- len += sprintf(buf + len, "APR");
- break;
- case PLD_SLIC_STATE_OHTPR: /* OHT polarity reversal */
- len += sprintf(buf + len, "OHTPR");
- break;
- default:
- len += sprintf(buf + len, "%d", SLIC_GetState(j));
- break;
- }
- }
- len += sprintf(buf + len, "nBase Frame %2.2x.%2.2x", j->baseframe.high, j->baseframe.low);
- len += sprintf(buf + len, "nCID Base Frame %2d", j->cid_base_frame_size);
- #ifdef PERFMON_STATS
- len += sprintf(buf + len, "nTimer Checks %ld", j->timerchecks);
- len += sprintf(buf + len, "nRX Ready Checks %ld", j->rxreadycheck);
- len += sprintf(buf + len, "nTX Ready Checks %ld", j->txreadycheck);
- len += sprintf(buf + len, "nFrames Read %ld", j->framesread);
- len += sprintf(buf + len, "nFrames Written %ld", j->frameswritten);
- len += sprintf(buf + len, "nDry Buffer %ld", j->drybuffer);
- len += sprintf(buf + len, "nRead Waits %ld", j->read_wait);
- len += sprintf(buf + len, "nWrite Waits %ld", j->write_wait);
- len += sprintf(buf + len, "nStatus Waits %ld", j->statuswait);
- len += sprintf(buf + len, "nStatus Wait Fails %ld", j->statuswaitfail);
- len += sprintf(buf + len, "nPControl Waits %ld", j->pcontrolwait);
- len += sprintf(buf + len, "nPControl Wait Fails %ld", j->pcontrolwaitfail);
- len += sprintf(buf + len, "nIs Control Ready Checks %ld", j->iscontrolready);
- len += sprintf(buf + len, "nIs Control Ready Check failures %ld", j->iscontrolreadyfail);
-
- #endif
- len += sprintf(buf + len, "n");
- }
- }
- return len;
- }
- static int ixj_read_proc(char *page, char **start, off_t off,
- int count, int *eof, void *data)
- {
- int len = ixj_get_status_proc(page);
- if (len <= off+count) *eof = 1;
- *start = page + off;
- len -= off;
- if (len>count) len = count;
- if (len<0) len = 0;
- return len;
- }
- static void cleanup(void)
- {
- int cnt;
- IXJ *j;
- for (cnt = 0; cnt < IXJMAX; cnt++) {
- j = get_ixj(cnt);
- if(j != NULL && j->DSPbase) {
- if (ixjdebug & 0x0002)
- printk(KERN_INFO "IXJ: Deleting timer for /dev/phone%dn", cnt);
- del_timer(&j->timer);
- if (j->cardtype == QTI_LINEJACK) {
- j->pld_scrw.bits.daafsyncen = 0; /* Turn off DAA Frame Sync */
- outb_p(j->pld_scrw.byte, j->XILINXbase);
- j->pld_slicw.bits.rly1 = 0;
- j->pld_slicw.bits.rly2 = 0;
- j->pld_slicw.bits.rly3 = 0;
- outb_p(j->pld_slicw.byte, j->XILINXbase + 0x01);
- LED_SetState(0x0, j);
- if (ixjdebug & 0x0002)
- printk(KERN_INFO "IXJ: Releasing XILINX address for /dev/phone%dn", cnt);
- release_region(j->XILINXbase, 8);
- } else if (j->cardtype == QTI_PHONEJACK_LITE || j->cardtype == QTI_PHONEJACK_PCI) {
- if (ixjdebug & 0x0002)
- printk(KERN_INFO "IXJ: Releasing XILINX address for /dev/phone%dn", cnt);
- release_region(j->XILINXbase, 4);
- }
- if (j->read_buffer)
- kfree(j->read_buffer);
- if (j->write_buffer)
- kfree(j->write_buffer);
- if (j->dev && j->dev->deactivate)
- j->dev->deactivate(j->dev);
- if (ixjdebug & 0x0002)
- printk(KERN_INFO "IXJ: Unregistering /dev/phone%d from LTAPIn", cnt);
- phone_unregister_device(&j->p);
- if (ixjdebug & 0x0002)
- printk(KERN_INFO "IXJ: Releasing DSP address for /dev/phone%dn", cnt);
- release_region(j->DSPbase, 16);
- #ifdef IXJ_DYN_ALLOC
- if (ixjdebug & 0x0002)
- printk(KERN_INFO "IXJ: Freeing memory for /dev/phone%dn", cnt);
- kfree(j);
- ixj[cnt] = NULL;
- #endif
- }
- }
- if (ixjdebug & 0x0002)
- printk(KERN_INFO "IXJ: Removing /proc/ixjn");
- remove_proc_entry ("ixj", NULL);
- }
- /* Typedefs */
- typedef struct {
- BYTE length;
- DWORD bits;
- } DATABLOCK;
- static void PCIEE_WriteBit(WORD wEEPROMAddress, BYTE lastLCC, BYTE byData)
- {
- lastLCC = lastLCC & 0xfb;
- lastLCC = lastLCC | (byData ? 4 : 0);
- outb(lastLCC, wEEPROMAddress); /*set data out bit as appropriate */
- mdelay(1);
- lastLCC = lastLCC | 0x01;
- outb(lastLCC, wEEPROMAddress); /*SK rising edge */
- byData = byData << 1;
- lastLCC = lastLCC & 0xfe;
- mdelay(1);
- outb(lastLCC, wEEPROMAddress); /*after delay, SK falling edge */
- }
- static BYTE PCIEE_ReadBit(WORD wEEPROMAddress, BYTE lastLCC)
- {
- mdelay(1);
- lastLCC = lastLCC | 0x01;
- outb(lastLCC, wEEPROMAddress); /*SK rising edge */
- lastLCC = lastLCC & 0xfe;
- mdelay(1);
- outb(lastLCC, wEEPROMAddress); /*after delay, SK falling edge */
- return ((inb(wEEPROMAddress) >> 3) & 1);
- }
- static BOOL PCIEE_ReadWord(WORD wAddress, WORD wLoc, WORD * pwResult)
- {
- BYTE lastLCC;
- WORD wEEPROMAddress = wAddress + 3;
- DWORD i;
- BYTE byResult;
- *pwResult = 0;
- lastLCC = inb(wEEPROMAddress);
- lastLCC = lastLCC | 0x02;
- lastLCC = lastLCC & 0xfe;
- outb(lastLCC, wEEPROMAddress); /* CS hi, SK lo */
- mdelay(1); /* delay */
- PCIEE_WriteBit(wEEPROMAddress, lastLCC, 1);
- PCIEE_WriteBit(wEEPROMAddress, lastLCC, 1);
- PCIEE_WriteBit(wEEPROMAddress, lastLCC, 0);
- for (i = 0; i < 8; i++) {
- PCIEE_WriteBit(wEEPROMAddress, lastLCC, wLoc & 0x80 ? 1 : 0);
- wLoc <<= 1;
- }
- for (i = 0; i < 16; i++) {
- byResult = PCIEE_ReadBit(wEEPROMAddress, lastLCC);
- *pwResult = (*pwResult << 1) | byResult;
- }
- mdelay(1); /* another delay */
- lastLCC = lastLCC & 0xfd;
- outb(lastLCC, wEEPROMAddress); /* negate CS */
- return 0;
- }
- static DWORD PCIEE_GetSerialNumber(WORD wAddress)
- {
- WORD wLo, wHi;
- if (PCIEE_ReadWord(wAddress, 62, &wLo))
- return 0;
- if (PCIEE_ReadWord(wAddress, 63, &wHi))
- return 0;
- return (((DWORD) wHi << 16) | wLo);
- }
- static int dspio[IXJMAX + 1] =
- {
- 0,
- };
- static int xio[IXJMAX + 1] =
- {
- 0,
- };
- MODULE_PARM(dspio, "1-" __MODULE_STRING(IXJMAX) "i");
- MODULE_PARM(xio, "1-" __MODULE_STRING(IXJMAX) "i");
- MODULE_DESCRIPTION("Quicknet VoIP Telephony card module - www.quicknet.net");
- MODULE_AUTHOR("Ed Okerson <eokerson@quicknet.net>");
- MODULE_LICENSE("GPL");
- void ixj_exit(void)
- {
- cleanup();
- }
- int __init ixj_probe_isapnp(int *cnt)
- {
- int probe = 0;
- int func = 0x110;
- struct pci_dev *dev = NULL, *old_dev = NULL;
- while (1) {
- do {
- IXJ *j;
- int result;
- old_dev = dev;
- dev = isapnp_find_dev(NULL, ISAPNP_VENDOR('Q', 'T', 'I'),
- ISAPNP_FUNCTION(func), old_dev);
- if (!dev)
- break;
- result = dev->prepare(dev);
- if (result < 0) {
- printk("preparing failed %d n", result);
- break;
- }
- if (!(dev->resource[0].flags & IORESOURCE_IO))
- return -ENODEV;
- dev->resource[0].flags |= IORESOURCE_AUTO;
- if (func != 0x110)
- dev->resource[1].flags |= IORESOURCE_AUTO;
- if (dev->activate(dev) < 0) {
- printk("isapnp configure failed (out of resources?)n");
- return -ENOMEM;
- }
- result = check_region(dev->resource[0].start, 16);
- if (result) {
- printk(KERN_INFO "ixj: can't get I/O address 0x%lxn", dev->resource[0].start);
- break;
- }
- j = ixj_alloc();
- request_region(j->DSPbase, 16, "ixj DSP");
- if (func != 0x110)
- j->XILINXbase = dev->resource[1].start; /* get real port */
- switch (func) {
- case (0x110):
- j->cardtype = QTI_PHONEJACK;
- break;
- case (0x310):
- j->cardtype = QTI_LINEJACK;
- break;
- case (0x410):
- j->cardtype = QTI_PHONEJACK_LITE;
- break;
- }
- j->board = *cnt;
- probe = ixj_selfprobe(j);
- if(!probe) {
- j->serial = dev->bus->serial;
- j->dev = dev;
- switch (func) {
- case 0x110:
- printk(KERN_INFO "ixj: found Internet PhoneJACK at 0x%xn", j->DSPbase);
- break;
- case 0x310:
- printk(KERN_INFO "ixj: found Internet LineJACK at 0x%xn", j->DSPbase);
- break;
- case 0x410:
- printk(KERN_INFO "ixj: found Internet PhoneJACK Lite at 0x%xn", j->DSPbase);
- break;
- }
- }
- ++*cnt;
- } while (dev);
- if (func == 0x410)
- break;
- if (func == 0x310)
- func = 0x410;
- if (func == 0x110)
- func = 0x310;
- dev = NULL;
- }
- return probe;
- }
-
- int __init ixj_probe_isa(int *cnt)
- {
- int i, result, probe;
- /* Use passed parameters for older kernels without PnP */
- for (i = 0; i < IXJMAX; i++) {
- if (dspio[i]) {
- IXJ *j;
- if ((result = check_region(ixj[*cnt].DSPbase, 16)) < 0) {
- printk(KERN_INFO "ixj: can't get I/O address 0x%xn", ixj[*cnt].DSPbase);
- break;
- }
- j = ixj_alloc();
- j->DSPbase = dspio[i];
- request_region(j->DSPbase, 16, "ixj DSP");
- j->XILINXbase = xio[i];
- j->cardtype = 0;
- j->board = *cnt;
- probe = ixj_selfprobe(j);
- j->dev = NULL;
- ++*cnt;
- }
- }
- return 0;
- }
- int __init ixj_probe_pci(int *cnt)
- {
- struct pci_dev *pci = NULL;
- int i, probe = 0;
- IXJ *j = NULL;
- int result;
- if(!pci_present())
- return 0;
- for (i = 0; i < IXJMAX - *cnt; i++) {
- pci = pci_find_device(0x15E2, 0x0500, pci);
- if (!pci)
- break;
- if (pci_enable_device(pci))
- break;
- if ((result = check_region(pci_resource_start(pci, 0), 16)) < 0) {
- printk(KERN_INFO "ixj: can't get I/O addressn");
- break;
- }
- /* Grab a device slot */
- j = ixj_alloc();
- if(j == NULL)
- break;
-
- j->DSPbase = pci_resource_start(pci, 0);
- j->serial = (PCIEE_GetSerialNumber)pci_resource_start(pci, 2);
- j->XILINXbase = j->DSPbase + 0x10;
- request_region(j->DSPbase, 16, "ixj DSP");
- j->cardtype = QTI_PHONEJACK_PCI;
- j->board = *cnt;
- probe = ixj_selfprobe(j);
- if (!probe)
- printk(KERN_INFO "ixj: found Internet PhoneJACK PCI at 0x%xn", j->DSPbase);
- ++*cnt;
- }
- return probe;
- }
- int __init ixj_init(void)
- {
- int cnt = 0;
- int probe = 0;
- cnt = 0;
- /* These might be no-ops, see above. */
- if ((probe = ixj_probe_isapnp(&cnt)) < 0) {
- return probe;
- }
- if ((probe = ixj_probe_isa(&cnt)) < 0) {
- return probe;
- }
- if (pci_present()) {
- if ((probe = ixj_probe_pci(&cnt)) < 0) {
- return probe;
- }
- }
- printk("%sn", ixj_c_rcsid);
- create_proc_read_entry ("ixj", 0, NULL, ixj_read_proc, NULL);
- return probe;
- }
- module_init(ixj_init);
- module_exit(ixj_exit);
- static void DAA_Coeff_US(IXJ *j)
- {
- int i;
- j->daa_country = DAA_US;
- /*----------------------------------------------- */
- /* CAO */
- for (i = 0; i < ALISDAA_CALLERID_SIZE; i++) {
- j->m_DAAShadowRegs.CAO_REGS.CAO.CallerID[i] = 0;
- }
- /* Bytes for IM-filter part 1 (04): 0E,32,E2,2F,C2,5A,C0,00 */
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[7] = 0x03;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[6] = 0x4B;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[5] = 0x5D;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[4] = 0xCD;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[3] = 0x24;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[2] = 0xC5;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[1] = 0xA0;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[0] = 0x00;
- /* Bytes for IM-filter part 2 (05): 72,85,00,0E,2B,3A,D0,08 */
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[7] = 0x71;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[6] = 0x1A;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[5] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[4] = 0x0A;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[3] = 0xB5;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[2] = 0x33;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[1] = 0xE0;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[0] = 0x08;
- /* Bytes for FRX-filter (08): 03,8F,48,F2,8F,48,70,08 */
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[7] = 0x05;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[6] = 0xA3;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[5] = 0x72;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[4] = 0x34;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[3] = 0x3F;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[2] = 0x3B;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[1] = 0x30;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[0] = 0x08;
- /* Bytes for FRR-filter (07): 04,8F,38,7F,9B,EA,B0,08 */
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[7] = 0x05;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[6] = 0x87;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[5] = 0xF9;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[4] = 0x3E;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[3] = 0x32;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[2] = 0xDA;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[1] = 0xB0;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[0] = 0x08;
- /* Bytes for AX-filter (0A): 16,55,DD,CA */
- j->m_DAAShadowRegs.COP_REGS.COP.AXFilterCoeff[3] = 0x41;
- j->m_DAAShadowRegs.COP_REGS.COP.AXFilterCoeff[2] = 0xB5;
- j->m_DAAShadowRegs.COP_REGS.COP.AXFilterCoeff[1] = 0xDD;
- j->m_DAAShadowRegs.COP_REGS.COP.AXFilterCoeff[0] = 0xCA;
- /* Bytes for AR-filter (09): 52,D3,11,42 */
- j->m_DAAShadowRegs.COP_REGS.COP.ARFilterCoeff[3] = 0x25;
- j->m_DAAShadowRegs.COP_REGS.COP.ARFilterCoeff[2] = 0xC7;
- j->m_DAAShadowRegs.COP_REGS.COP.ARFilterCoeff[1] = 0x10;
- j->m_DAAShadowRegs.COP_REGS.COP.ARFilterCoeff[0] = 0xD6;
- /* Bytes for TH-filter part 1 (00): 00,42,48,81,B3,80,00,98 */
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[7] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[6] = 0x42;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[5] = 0x48;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[4] = 0x81;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[3] = 0xA5;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[2] = 0x80;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[1] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[0] = 0x98;
- /* Bytes for TH-filter part 2 (01): 02,F2,33,A0,68,AB,8A,AD */
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[7] = 0x02;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[6] = 0xA2;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[5] = 0x2B;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[4] = 0xB0;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[3] = 0xE8;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[2] = 0xAB;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[1] = 0x81;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[0] = 0xCC;
- /* Bytes for TH-filter part 3 (02): 00,88,DA,54,A4,BA,2D,BB */
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[7] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[6] = 0x88;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[5] = 0xD2;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[4] = 0x24;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[3] = 0xBA;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[2] = 0xA9;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[1] = 0x3B;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[0] = 0xA6;
- /* ; (10K, 0.68uF) */
- /* */
- /* Bytes for Ringing part 1 (03):1B,3B,9B,BA,D4,1C,B3,23 */
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[7] = 0x1B;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[6] = 0x3C;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[5] = 0x93;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[4] = 0x3A;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[3] = 0x22;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[2] = 0x12;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[1] = 0xA3;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[0] = 0x23;
- /* Bytes for Ringing part 2 (06):13,42,A6,BA,D4,73,CA,D5 */
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[7] = 0x12;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[6] = 0xA2;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[5] = 0xA6;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[4] = 0xBA;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[3] = 0x22;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[2] = 0x7A;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[1] = 0x0A;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[0] = 0xD5;
- /* Levelmetering Ringing (0D):B2,45,0F,8E */
- j->m_DAAShadowRegs.COP_REGS.COP.LevelmeteringRinging[3] = 0xAA;
- j->m_DAAShadowRegs.COP_REGS.COP.LevelmeteringRinging[2] = 0x35;
- j->m_DAAShadowRegs.COP_REGS.COP.LevelmeteringRinging[1] = 0x0F;
- j->m_DAAShadowRegs.COP_REGS.COP.LevelmeteringRinging[0] = 0x8E;
- /* Bytes for Ringing part 1 (03):1B,3B,9B,BA,D4,1C,B3,23 */
- /* j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[7] = 0x1C; */
- /* j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[6] = 0xB3; */
- /* j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[5] = 0xAB; */
- /* j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[4] = 0xAB; */
- /* j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[3] = 0x54; */
- /* j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[2] = 0x2D; */
- /* j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[1] = 0x62; */
- /* j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[0] = 0x2D; */
- /* Bytes for Ringing part 2 (06):13,42,A6,BA,D4,73,CA,D5 */
- /* j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[7] = 0x2D; */
- /* j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[6] = 0x62; */
- /* j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[5] = 0xA6; */
- /* j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[4] = 0xBB; */
- /* j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[3] = 0x2A; */
- /* j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[2] = 0x7D; */
- /* j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[1] = 0x0A; */
- /* j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[0] = 0xD4; */
- /* */
- /* Levelmetering Ringing (0D):B2,45,0F,8E */
- /* j->m_DAAShadowRegs.COP_REGS.COP.LevelmeteringRinging[3] = 0xAA; */
- /* j->m_DAAShadowRegs.COP_REGS.COP.LevelmeteringRinging[2] = 0x05; */
- /* j->m_DAAShadowRegs.COP_REGS.COP.LevelmeteringRinging[1] = 0x0F; */
- /* j->m_DAAShadowRegs.COP_REGS.COP.LevelmeteringRinging[0] = 0x8E; */
- /* Caller ID 1st Tone (0E):CA,0E,CA,09,99,99,99,99 */
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[7] = 0xCA;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[6] = 0x0E;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[5] = 0xCA;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[4] = 0x09;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[3] = 0x99;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[2] = 0x99;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[1] = 0x99;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[0] = 0x99;
- /* Caller ID 2nd Tone (0F):FD,B5,BA,07,DA,00,00,00 */
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[7] = 0xFD;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[6] = 0xB5;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[5] = 0xBA;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[4] = 0x07;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[3] = 0xDA;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[2] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[1] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[0] = 0x00;
- /* */
- /* ;CR Registers */
- /* Config. Reg. 0 (filters) (cr0):FE ; CLK gen. by crystal */
- j->m_DAAShadowRegs.SOP_REGS.SOP.cr0.reg = 0xFF;
- /* Config. Reg. 1 (dialing) (cr1):05 */
- j->m_DAAShadowRegs.SOP_REGS.SOP.cr1.reg = 0x05;
- /* Config. Reg. 2 (caller ID) (cr2):04 */
- j->m_DAAShadowRegs.SOP_REGS.SOP.cr2.reg = 0x04;
- /* Config. Reg. 3 (testloops) (cr3):03 ; SEL Bit==0, HP-disabled */
- j->m_DAAShadowRegs.SOP_REGS.SOP.cr3.reg = 0x00;
- /* Config. Reg. 4 (analog gain) (cr4):02 */
- j->m_DAAShadowRegs.SOP_REGS.SOP.cr4.reg = 0x02;
- /* Config. Reg. 5 (Version) (cr5):02 */
- /* Config. Reg. 6 (Reserved) (cr6):00 */
- /* Config. Reg. 7 (Reserved) (cr7):00 */
- /* */
- /* ;xr Registers */
- /* Ext. Reg. 0 (Interrupt Reg.) (xr0):02 */
- j->m_DAAShadowRegs.XOP_xr0_W.reg = 0x02; /* SO_1 set to '1' because it is inverted. */
- /* Ext. Reg. 1 (Interrupt enable) (xr1):3C Cadence, RING, Caller ID, VDD_OK */
- j->m_DAAShadowRegs.XOP_REGS.XOP.xr1.reg = 0x3C;
- /* Ext. Reg. 2 (Cadence Time Out) (xr2):7D */
- j->m_DAAShadowRegs.XOP_REGS.XOP.xr2.reg = 0x7D;
- /* Ext. Reg. 3 (DC Char) (xr3):32 ; B-Filter Off == 1 */
- j->m_DAAShadowRegs.XOP_REGS.XOP.xr3.reg = 0x3B; /*0x32; */
- /* Ext. Reg. 4 (Cadence) (xr4):00 */
- j->m_DAAShadowRegs.XOP_REGS.XOP.xr4.reg = 0x00;
- /* Ext. Reg. 5 (Ring timer) (xr5):22 */
- j->m_DAAShadowRegs.XOP_REGS.XOP.xr5.reg = 0x22;
- /* Ext. Reg. 6 (Power State) (xr6):00 */
- j->m_DAAShadowRegs.XOP_xr6_W.reg = 0x00;
- /* Ext. Reg. 7 (Vdd) (xr7):40 */
- j->m_DAAShadowRegs.XOP_REGS.XOP.xr7.reg = 0x40; /* 0x40 ??? Should it be 0x00? */
- /* */
- /* DTMF Tone 1 (0B): 11,B3,5A,2C ; 697 Hz */
- /* 12,33,5A,C3 ; 770 Hz */
- /* 13,3C,5B,32 ; 852 Hz */
- /* 1D,1B,5C,CC ; 941 Hz */
- j->m_DAAShadowRegs.COP_REGS.COP.Tone1Coeff[3] = 0x11;
- j->m_DAAShadowRegs.COP_REGS.COP.Tone1Coeff[2] = 0xB3;
- j->m_DAAShadowRegs.COP_REGS.COP.Tone1Coeff[1] = 0x5A;
- j->m_DAAShadowRegs.COP_REGS.COP.Tone1Coeff[0] = 0x2C;
- /* DTMF Tone 2 (0C): 32,32,52,B3 ; 1209 Hz */
- /* EC,1D,52,22 ; 1336 Hz */
- /* AA,AC,51,D2 ; 1477 Hz */
- /* 9B,3B,51,25 ; 1633 Hz */
- j->m_DAAShadowRegs.COP_REGS.COP.Tone2Coeff[3] = 0x32;
- j->m_DAAShadowRegs.COP_REGS.COP.Tone2Coeff[2] = 0x32;
- j->m_DAAShadowRegs.COP_REGS.COP.Tone2Coeff[1] = 0x52;
- j->m_DAAShadowRegs.COP_REGS.COP.Tone2Coeff[0] = 0xB3;
- }
- static void DAA_Coeff_UK(IXJ *j)
- {
- int i;
- j->daa_country = DAA_UK;
- /*----------------------------------------------- */
- /* CAO */
- for (i = 0; i < ALISDAA_CALLERID_SIZE; i++) {
- j->m_DAAShadowRegs.CAO_REGS.CAO.CallerID[i] = 0;
- }
- /* Bytes for IM-filter part 1 (04): 00,C2,BB,A8,CB,81,A0,00 */
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[7] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[6] = 0xC2;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[5] = 0xBB;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[4] = 0xA8;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[3] = 0xCB;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[2] = 0x81;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[1] = 0xA0;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[0] = 0x00;
- /* Bytes for IM-filter part 2 (05): 40,00,00,0A,A4,33,E0,08 */
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[7] = 0x40;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[6] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[5] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[4] = 0x0A;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[3] = 0xA4;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[2] = 0x33;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[1] = 0xE0;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[0] = 0x08;
- /* Bytes for FRX-filter (08): 07,9B,ED,24,B2,A2,A0,08 */
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[7] = 0x07;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[6] = 0x9B;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[5] = 0xED;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[4] = 0x24;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[3] = 0xB2;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[2] = 0xA2;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[1] = 0xA0;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[0] = 0x08;
- /* Bytes for FRR-filter (07): 0F,92,F2,B2,87,D2,30,08 */
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[7] = 0x0F;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[6] = 0x92;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[5] = 0xF2;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[4] = 0xB2;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[3] = 0x87;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[2] = 0xD2;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[1] = 0x30;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[0] = 0x08;
- /* Bytes for AX-filter (0A): 1B,A5,DD,CA */
- j->m_DAAShadowRegs.COP_REGS.COP.AXFilterCoeff[3] = 0x1B;
- j->m_DAAShadowRegs.COP_REGS.COP.AXFilterCoeff[2] = 0xA5;
- j->m_DAAShadowRegs.COP_REGS.COP.AXFilterCoeff[1] = 0xDD;
- j->m_DAAShadowRegs.COP_REGS.COP.AXFilterCoeff[0] = 0xCA;
- /* Bytes for AR-filter (09): E2,27,10,D6 */
- j->m_DAAShadowRegs.COP_REGS.COP.ARFilterCoeff[3] = 0xE2;
- j->m_DAAShadowRegs.COP_REGS.COP.ARFilterCoeff[2] = 0x27;
- j->m_DAAShadowRegs.COP_REGS.COP.ARFilterCoeff[1] = 0x10;
- j->m_DAAShadowRegs.COP_REGS.COP.ARFilterCoeff[0] = 0xD6;
- /* Bytes for TH-filter part 1 (00): 80,2D,38,8B,D0,00,00,98 */
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[7] = 0x80;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[6] = 0x2D;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[5] = 0x38;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[4] = 0x8B;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[3] = 0xD0;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[2] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[1] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[0] = 0x98;
- /* Bytes for TH-filter part 2 (01): 02,5A,53,F0,0B,5F,84,D4 */
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[7] = 0x02;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[6] = 0x5A;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[5] = 0x53;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[4] = 0xF0;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[3] = 0x0B;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[2] = 0x5F;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[1] = 0x84;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[0] = 0xD4;
- /* Bytes for TH-filter part 3 (02): 00,88,6A,A4,8F,52,F5,32 */
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[7] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[6] = 0x88;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[5] = 0x6A;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[4] = 0xA4;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[3] = 0x8F;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[2] = 0x52;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[1] = 0xF5;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[0] = 0x32;
- /* ; idle */
- /* Bytes for Ringing part 1 (03):1B,3C,93,3A,22,12,A3,23 */
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[7] = 0x1B;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[6] = 0x3C;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[5] = 0x93;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[4] = 0x3A;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[3] = 0x22;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[2] = 0x12;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[1] = 0xA3;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[0] = 0x23;
- /* Bytes for Ringing part 2 (06):12,A2,A6,BA,22,7A,0A,D5 */
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[7] = 0x12;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[6] = 0xA2;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[5] = 0xA6;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[4] = 0xBA;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[3] = 0x22;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[2] = 0x7A;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[1] = 0x0A;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[0] = 0xD5;
- /* Levelmetering Ringing (0D):AA,35,0F,8E ; 25Hz 30V less possible? */
- j->m_DAAShadowRegs.COP_REGS.COP.LevelmeteringRinging[3] = 0xAA;
- j->m_DAAShadowRegs.COP_REGS.COP.LevelmeteringRinging[2] = 0x35;
- j->m_DAAShadowRegs.COP_REGS.COP.LevelmeteringRinging[1] = 0x0F;
- j->m_DAAShadowRegs.COP_REGS.COP.LevelmeteringRinging[0] = 0x8E;
- /* Caller ID 1st Tone (0E):CA,0E,CA,09,99,99,99,99 */
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[7] = 0xCA;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[6] = 0x0E;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[5] = 0xCA;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[4] = 0x09;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[3] = 0x99;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[2] = 0x99;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[1] = 0x99;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[0] = 0x99;
- /* Caller ID 2nd Tone (0F):FD,B5,BA,07,DA,00,00,00 */
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[7] = 0xFD;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[6] = 0xB5;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[5] = 0xBA;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[4] = 0x07;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[3] = 0xDA;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[2] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[1] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[0] = 0x00;
- /* ;CR Registers */
- /* Config. Reg. 0 (filters) (cr0):FF */
- j->m_DAAShadowRegs.SOP_REGS.SOP.cr0.reg = 0xFF;
- /* Config. Reg. 1 (dialing) (cr1):05 */
- j->m_DAAShadowRegs.SOP_REGS.SOP.cr1.reg = 0x05;
- /* Config. Reg. 2 (caller ID) (cr2):04 */
- j->m_DAAShadowRegs.SOP_REGS.SOP.cr2.reg = 0x04;
- /* Config. Reg. 3 (testloops) (cr3):00 ; */
- j->m_DAAShadowRegs.SOP_REGS.SOP.cr3.reg = 0x00;
- /* Config. Reg. 4 (analog gain) (cr4):02 */
- j->m_DAAShadowRegs.SOP_REGS.SOP.cr4.reg = 0x02;
- /* Config. Reg. 5 (Version) (cr5):02 */
- /* Config. Reg. 6 (Reserved) (cr6):00 */
- /* Config. Reg. 7 (Reserved) (cr7):00 */
- /* ;xr Registers */
- /* Ext. Reg. 0 (Interrupt Reg.) (xr0):02 */
- j->m_DAAShadowRegs.XOP_xr0_W.reg = 0x02; /* SO_1 set to '1' because it is inverted. */
- /* Ext. Reg. 1 (Interrupt enable) (xr1):1C */
- j->m_DAAShadowRegs.XOP_REGS.XOP.xr1.reg = 0x1C; /* RING, Caller ID, VDD_OK */
- /* Ext. Reg. 2 (Cadence Time Out) (xr2):7D */
- j->m_DAAShadowRegs.XOP_REGS.XOP.xr2.reg = 0x7D;
- /* Ext. Reg. 3 (DC Char) (xr3):36 ; */
- j->m_DAAShadowRegs.XOP_REGS.XOP.xr3.reg = 0x36;
- /* Ext. Reg. 4 (Cadence) (xr4):00 */
- j->m_DAAShadowRegs.XOP_REGS.XOP.xr4.reg = 0x00;
- /* Ext. Reg. 5 (Ring timer) (xr5):22 */
- j->m_DAAShadowRegs.XOP_REGS.XOP.xr5.reg = 0x22;
- /* Ext. Reg. 6 (Power State) (xr6):00 */
- j->m_DAAShadowRegs.XOP_xr6_W.reg = 0x00;
- /* Ext. Reg. 7 (Vdd) (xr7):46 */
- j->m_DAAShadowRegs.XOP_REGS.XOP.xr7.reg = 0x46; /* 0x46 ??? Should it be 0x00? */
- /* DTMF Tone 1 (0B): 11,B3,5A,2C ; 697 Hz */
- /* 12,33,5A,C3 ; 770 Hz */
- /* 13,3C,5B,32 ; 852 Hz */
- /* 1D,1B,5C,CC ; 941 Hz */
- j->m_DAAShadowRegs.COP_REGS.COP.Tone1Coeff[3] = 0x11;
- j->m_DAAShadowRegs.COP_REGS.COP.Tone1Coeff[2] = 0xB3;
- j->m_DAAShadowRegs.COP_REGS.COP.Tone1Coeff[1] = 0x5A;
- j->m_DAAShadowRegs.COP_REGS.COP.Tone1Coeff[0] = 0x2C;
- /* DTMF Tone 2 (0C): 32,32,52,B3 ; 1209 Hz */
- /* EC,1D,52,22 ; 1336 Hz */
- /* AA,AC,51,D2 ; 1477 Hz */
- /* 9B,3B,51,25 ; 1633 Hz */
- j->m_DAAShadowRegs.COP_REGS.COP.Tone2Coeff[3] = 0x32;
- j->m_DAAShadowRegs.COP_REGS.COP.Tone2Coeff[2] = 0x32;
- j->m_DAAShadowRegs.COP_REGS.COP.Tone2Coeff[1] = 0x52;
- j->m_DAAShadowRegs.COP_REGS.COP.Tone2Coeff[0] = 0xB3;
- }
- static void DAA_Coeff_France(IXJ *j)
- {
- int i;
- j->daa_country = DAA_FRANCE;
- /*----------------------------------------------- */
- /* CAO */
- for (i = 0; i < ALISDAA_CALLERID_SIZE; i++) {
- j->m_DAAShadowRegs.CAO_REGS.CAO.CallerID[i] = 0;
- }
- /* Bytes for IM-filter part 1 (04): 02,A2,43,2C,22,AF,A0,00 */
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[7] = 0x02;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[6] = 0xA2;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[5] = 0x43;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[4] = 0x2C;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[3] = 0x22;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[2] = 0xAF;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[1] = 0xA0;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[0] = 0x00;
- /* Bytes for IM-filter part 2 (05): 67,CE,00,0C,22,33,E0,08 */
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[7] = 0x67;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[6] = 0xCE;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[5] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[4] = 0x2C;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[3] = 0x22;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[2] = 0x33;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[1] = 0xE0;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[0] = 0x08;
- /* Bytes for FRX-filter (08): 07,9A,28,F6,23,4A,B0,08 */
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[7] = 0x07;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[6] = 0x9A;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[5] = 0x28;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[4] = 0xF6;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[3] = 0x23;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[2] = 0x4A;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[1] = 0xB0;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[0] = 0x08;
- /* Bytes for FRR-filter (07): 03,8F,F9,2F,9E,FA,20,08 */
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[7] = 0x03;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[6] = 0x8F;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[5] = 0xF9;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[4] = 0x2F;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[3] = 0x9E;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[2] = 0xFA;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[1] = 0x20;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[0] = 0x08;
- /* Bytes for AX-filter (0A): 16,B5,DD,CA */
- j->m_DAAShadowRegs.COP_REGS.COP.AXFilterCoeff[3] = 0x16;
- j->m_DAAShadowRegs.COP_REGS.COP.AXFilterCoeff[2] = 0xB5;
- j->m_DAAShadowRegs.COP_REGS.COP.AXFilterCoeff[1] = 0xDD;
- j->m_DAAShadowRegs.COP_REGS.COP.AXFilterCoeff[0] = 0xCA;
- /* Bytes for AR-filter (09): 52,C7,10,D6 */
- j->m_DAAShadowRegs.COP_REGS.COP.ARFilterCoeff[3] = 0xE2;
- j->m_DAAShadowRegs.COP_REGS.COP.ARFilterCoeff[2] = 0xC7;
- j->m_DAAShadowRegs.COP_REGS.COP.ARFilterCoeff[1] = 0x10;
- j->m_DAAShadowRegs.COP_REGS.COP.ARFilterCoeff[0] = 0xD6;
- /* Bytes for TH-filter part 1 (00): 00,42,48,81,A6,80,00,98 */
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[7] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[6] = 0x42;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[5] = 0x48;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[4] = 0x81;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[3] = 0xA6;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[2] = 0x80;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[1] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[0] = 0x98;
- /* Bytes for TH-filter part 2 (01): 02,AC,2A,30,78,AC,8A,2C */
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[7] = 0x02;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[6] = 0xAC;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[5] = 0x2A;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[4] = 0x30;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[3] = 0x78;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[2] = 0xAC;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[1] = 0x8A;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[0] = 0x2C;
- /* Bytes for TH-filter part 3 (02): 00,88,DA,A5,22,BA,2C,45 */
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[7] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[6] = 0x88;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[5] = 0xDA;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[4] = 0xA5;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[3] = 0x22;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[2] = 0xBA;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[1] = 0x2C;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[0] = 0x45;
- /* ; idle */
- /* Bytes for Ringing part 1 (03):1B,3C,93,3A,22,12,A3,23 */
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[7] = 0x1B;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[6] = 0x3C;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[5] = 0x93;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[4] = 0x3A;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[3] = 0x22;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[2] = 0x12;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[1] = 0xA3;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[0] = 0x23;
- /* Bytes for Ringing part 2 (06):12,A2,A6,BA,22,7A,0A,D5 */
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[7] = 0x12;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[6] = 0xA2;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[5] = 0xA6;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[4] = 0xBA;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[3] = 0x22;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[2] = 0x7A;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[1] = 0x0A;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[0] = 0xD5;
- /* Levelmetering Ringing (0D):32,45,B5,84 ; 50Hz 20V */
- j->m_DAAShadowRegs.COP_REGS.COP.LevelmeteringRinging[3] = 0x32;
- j->m_DAAShadowRegs.COP_REGS.COP.LevelmeteringRinging[2] = 0x45;
- j->m_DAAShadowRegs.COP_REGS.COP.LevelmeteringRinging[1] = 0xB5;
- j->m_DAAShadowRegs.COP_REGS.COP.LevelmeteringRinging[0] = 0x84;
- /* Caller ID 1st Tone (0E):CA,0E,CA,09,99,99,99,99 */
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[7] = 0xCA;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[6] = 0x0E;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[5] = 0xCA;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[4] = 0x09;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[3] = 0x99;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[2] = 0x99;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[1] = 0x99;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[0] = 0x99;
- /* Caller ID 2nd Tone (0F):FD,B5,BA,07,DA,00,00,00 */
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[7] = 0xFD;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[6] = 0xB5;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[5] = 0xBA;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[4] = 0x07;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[3] = 0xDA;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[2] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[1] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[0] = 0x00;
- /* ;CR Registers */
- /* Config. Reg. 0 (filters) (cr0):FF */
- j->m_DAAShadowRegs.SOP_REGS.SOP.cr0.reg = 0xFF;
- /* Config. Reg. 1 (dialing) (cr1):05 */
- j->m_DAAShadowRegs.SOP_REGS.SOP.cr1.reg = 0x05;
- /* Config. Reg. 2 (caller ID) (cr2):04 */
- j->m_DAAShadowRegs.SOP_REGS.SOP.cr2.reg = 0x04;
- /* Config. Reg. 3 (testloops) (cr3):00 ; */
- j->m_DAAShadowRegs.SOP_REGS.SOP.cr3.reg = 0x00;
- /* Config. Reg. 4 (analog gain) (cr4):02 */
- j->m_DAAShadowRegs.SOP_REGS.SOP.cr4.reg = 0x02;
- /* Config. Reg. 5 (Version) (cr5):02 */
- /* Config. Reg. 6 (Reserved) (cr6):00 */
- /* Config. Reg. 7 (Reserved) (cr7):00 */
- /* ;xr Registers */
- /* Ext. Reg. 0 (Interrupt Reg.) (xr0):02 */
- j->m_DAAShadowRegs.XOP_xr0_W.reg = 0x02; /* SO_1 set to '1' because it is inverted. */
- /* Ext. Reg. 1 (Interrupt enable) (xr1):1C */
- j->m_DAAShadowRegs.XOP_REGS.XOP.xr1.reg = 0x1C; /* RING, Caller ID, VDD_OK */
- /* Ext. Reg. 2 (Cadence Time Out) (xr2):7D */
- j->m_DAAShadowRegs.XOP_REGS.XOP.xr2.reg = 0x7D;
- /* Ext. Reg. 3 (DC Char) (xr3):36 ; */
- j->m_DAAShadowRegs.XOP_REGS.XOP.xr3.reg = 0x36;
- /* Ext. Reg. 4 (Cadence) (xr4):00 */
- j->m_DAAShadowRegs.XOP_REGS.XOP.xr4.reg = 0x00;
- /* Ext. Reg. 5 (Ring timer) (xr5):22 */
- j->m_DAAShadowRegs.XOP_REGS.XOP.xr5.reg = 0x22;
- /* Ext. Reg. 6 (Power State) (xr6):00 */
- j->m_DAAShadowRegs.XOP_xr6_W.reg = 0x00;
- /* Ext. Reg. 7 (Vdd) (xr7):46 */
- j->m_DAAShadowRegs.XOP_REGS.XOP.xr7.reg = 0x46; /* 0x46 ??? Should it be 0x00? */
- /* DTMF Tone 1 (0B): 11,B3,5A,2C ; 697 Hz */
- /* 12,33,5A,C3 ; 770 Hz */
- /* 13,3C,5B,32 ; 852 Hz */
- /* 1D,1B,5C,CC ; 941 Hz */
- j->m_DAAShadowRegs.COP_REGS.COP.Tone1Coeff[3] = 0x11;
- j->m_DAAShadowRegs.COP_REGS.COP.Tone1Coeff[2] = 0xB3;
- j->m_DAAShadowRegs.COP_REGS.COP.Tone1Coeff[1] = 0x5A;
- j->m_DAAShadowRegs.COP_REGS.COP.Tone1Coeff[0] = 0x2C;
- /* DTMF Tone 2 (0C): 32,32,52,B3 ; 1209 Hz */
- /* EC,1D,52,22 ; 1336 Hz */
- /* AA,AC,51,D2 ; 1477 Hz */
- /* 9B,3B,51,25 ; 1633 Hz */
- j->m_DAAShadowRegs.COP_REGS.COP.Tone2Coeff[3] = 0x32;
- j->m_DAAShadowRegs.COP_REGS.COP.Tone2Coeff[2] = 0x32;
- j->m_DAAShadowRegs.COP_REGS.COP.Tone2Coeff[1] = 0x52;
- j->m_DAAShadowRegs.COP_REGS.COP.Tone2Coeff[0] = 0xB3;
- }
- static void DAA_Coeff_Germany(IXJ *j)
- {
- int i;
- j->daa_country = DAA_GERMANY;
- /*----------------------------------------------- */
- /* CAO */
- for (i = 0; i < ALISDAA_CALLERID_SIZE; i++) {
- j->m_DAAShadowRegs.CAO_REGS.CAO.CallerID[i] = 0;
- }
- /* Bytes for IM-filter part 1 (04): 00,CE,BB,B8,D2,81,B0,00 */
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[7] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[6] = 0xCE;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[5] = 0xBB;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[4] = 0xB8;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[3] = 0xD2;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[2] = 0x81;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[1] = 0xB0;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[0] = 0x00;
- /* Bytes for IM-filter part 2 (05): 45,8F,00,0C,D2,3A,D0,08 */
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[7] = 0x45;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[6] = 0x8F;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[5] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[4] = 0x0C;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[3] = 0xD2;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[2] = 0x3A;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[1] = 0xD0;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[0] = 0x08;
- /* Bytes for FRX-filter (08): 07,AA,E2,34,24,89,20,08 */
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[7] = 0x07;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[6] = 0xAA;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[5] = 0xE2;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[4] = 0x34;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[3] = 0x24;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[2] = 0x89;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[1] = 0x20;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[0] = 0x08;
- /* Bytes for FRR-filter (07): 02,87,FA,37,9A,CA,B0,08 */
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[7] = 0x02;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[6] = 0x87;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[5] = 0xFA;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[4] = 0x37;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[3] = 0x9A;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[2] = 0xCA;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[1] = 0xB0;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[0] = 0x08;
- /* Bytes for AX-filter (0A): 72,D5,DD,CA */
- j->m_DAAShadowRegs.COP_REGS.COP.AXFilterCoeff[3] = 0x72;
- j->m_DAAShadowRegs.COP_REGS.COP.AXFilterCoeff[2] = 0xD5;
- j->m_DAAShadowRegs.COP_REGS.COP.AXFilterCoeff[1] = 0xDD;
- j->m_DAAShadowRegs.COP_REGS.COP.AXFilterCoeff[0] = 0xCA;
- /* Bytes for AR-filter (09): 72,42,13,4B */
- j->m_DAAShadowRegs.COP_REGS.COP.ARFilterCoeff[3] = 0x72;
- j->m_DAAShadowRegs.COP_REGS.COP.ARFilterCoeff[2] = 0x42;
- j->m_DAAShadowRegs.COP_REGS.COP.ARFilterCoeff[1] = 0x13;
- j->m_DAAShadowRegs.COP_REGS.COP.ARFilterCoeff[0] = 0x4B;
- /* Bytes for TH-filter part 1 (00): 80,52,48,81,AD,80,00,98 */
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[7] = 0x80;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[6] = 0x52;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[5] = 0x48;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[4] = 0x81;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[3] = 0xAD;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[2] = 0x80;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[1] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[0] = 0x98;
- /* Bytes for TH-filter part 2 (01): 02,42,5A,20,E8,1A,81,27 */
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[7] = 0x02;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[6] = 0x42;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[5] = 0x5A;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[4] = 0x20;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[3] = 0xE8;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[2] = 0x1A;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[1] = 0x81;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[0] = 0x27;
- /* Bytes for TH-filter part 3 (02): 00,88,63,26,BD,4B,A3,C2 */
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[7] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[6] = 0x88;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[5] = 0x63;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[4] = 0x26;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[3] = 0xBD;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[2] = 0x4B;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[1] = 0xA3;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[0] = 0xC2;
- /* ; (10K, 0.68uF) */
- /* Bytes for Ringing part 1 (03):1B,3B,9B,BA,D4,1C,B3,23 */
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[7] = 0x1B;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[6] = 0x3B;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[5] = 0x9B;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[4] = 0xBA;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[3] = 0xD4;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[2] = 0x1C;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[1] = 0xB3;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[0] = 0x23;
- /* Bytes for Ringing part 2 (06):13,42,A6,BA,D4,73,CA,D5 */
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[7] = 0x13;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[6] = 0x42;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[5] = 0xA6;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[4] = 0xBA;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[3] = 0xD4;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[2] = 0x73;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[1] = 0xCA;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[0] = 0xD5;
- /* Levelmetering Ringing (0D):B2,45,0F,8E */
- j->m_DAAShadowRegs.COP_REGS.COP.LevelmeteringRinging[3] = 0xB2;
- j->m_DAAShadowRegs.COP_REGS.COP.LevelmeteringRinging[2] = 0x45;
- j->m_DAAShadowRegs.COP_REGS.COP.LevelmeteringRinging[1] = 0x0F;
- j->m_DAAShadowRegs.COP_REGS.COP.LevelmeteringRinging[0] = 0x8E;
- /* Caller ID 1st Tone (0E):CA,0E,CA,09,99,99,99,99 */
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[7] = 0xCA;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[6] = 0x0E;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[5] = 0xCA;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[4] = 0x09;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[3] = 0x99;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[2] = 0x99;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[1] = 0x99;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[0] = 0x99;
- /* Caller ID 2nd Tone (0F):FD,B5,BA,07,DA,00,00,00 */
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[7] = 0xFD;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[6] = 0xB5;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[5] = 0xBA;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[4] = 0x07;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[3] = 0xDA;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[2] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[1] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[0] = 0x00;
- /* ;CR Registers */
- /* Config. Reg. 0 (filters) (cr0):FF ; all Filters enabled, CLK from ext. source */
- j->m_DAAShadowRegs.SOP_REGS.SOP.cr0.reg = 0xFF;
- /* Config. Reg. 1 (dialing) (cr1):05 ; Manual Ring, Ring metering enabled */
- j->m_DAAShadowRegs.SOP_REGS.SOP.cr1.reg = 0x05;
- /* Config. Reg. 2 (caller ID) (cr2):04 ; Analog Gain 0dB, FSC internal */
- j->m_DAAShadowRegs.SOP_REGS.SOP.cr2.reg = 0x04;
- /* Config. Reg. 3 (testloops) (cr3):00 ; SEL Bit==0, HP-enabled */
- j->m_DAAShadowRegs.SOP_REGS.SOP.cr3.reg = 0x00;
- /* Config. Reg. 4 (analog gain) (cr4):02 */
- j->m_DAAShadowRegs.SOP_REGS.SOP.cr4.reg = 0x02;
- /* Config. Reg. 5 (Version) (cr5):02 */
- /* Config. Reg. 6 (Reserved) (cr6):00 */
- /* Config. Reg. 7 (Reserved) (cr7):00 */
- /* ;xr Registers */
- /* Ext. Reg. 0 (Interrupt Reg.) (xr0):02 */
- j->m_DAAShadowRegs.XOP_xr0_W.reg = 0x02; /* SO_1 set to '1' because it is inverted. */
- /* Ext. Reg. 1 (Interrupt enable) (xr1):1C ; Ring, CID, VDDOK Interrupts enabled */
- j->m_DAAShadowRegs.XOP_REGS.XOP.xr1.reg = 0x1C; /* RING, Caller ID, VDD_OK */
- /* Ext. Reg. 2 (Cadence Time Out) (xr2):7D */
- j->m_DAAShadowRegs.XOP_REGS.XOP.xr2.reg = 0x7D;
- /* Ext. Reg. 3 (DC Char) (xr3):32 ; B-Filter Off==1, U0=3.5V, R=200Ohm */
- j->m_DAAShadowRegs.XOP_REGS.XOP.xr3.reg = 0x32;
- /* Ext. Reg. 4 (Cadence) (xr4):00 */
- j->m_DAAShadowRegs.XOP_REGS.XOP.xr4.reg = 0x00;
- /* Ext. Reg. 5 (Ring timer) (xr5):22 */
- j->m_DAAShadowRegs.XOP_REGS.XOP.xr5.reg = 0x22;
- /* Ext. Reg. 6 (Power State) (xr6):00 */
- j->m_DAAShadowRegs.XOP_xr6_W.reg = 0x00;
- /* Ext. Reg. 7 (Vdd) (xr7):40 ; VDD=4.25 V */
- j->m_DAAShadowRegs.XOP_REGS.XOP.xr7.reg = 0x40; /* 0x40 ??? Should it be 0x00? */
- /* DTMF Tone 1 (0B): 11,B3,5A,2C ; 697 Hz */
- /* 12,33,5A,C3 ; 770 Hz */
- /* 13,3C,5B,32 ; 852 Hz */
- /* 1D,1B,5C,CC ; 941 Hz */
- j->m_DAAShadowRegs.COP_REGS.COP.Tone1Coeff[3] = 0x11;
- j->m_DAAShadowRegs.COP_REGS.COP.Tone1Coeff[2] = 0xB3;
- j->m_DAAShadowRegs.COP_REGS.COP.Tone1Coeff[1] = 0x5A;
- j->m_DAAShadowRegs.COP_REGS.COP.Tone1Coeff[0] = 0x2C;
- /* DTMF Tone 2 (0C): 32,32,52,B3 ; 1209 Hz */
- /* EC,1D,52,22 ; 1336 Hz */
- /* AA,AC,51,D2 ; 1477 Hz */
- /* 9B,3B,51,25 ; 1633 Hz */
- j->m_DAAShadowRegs.COP_REGS.COP.Tone2Coeff[3] = 0x32;
- j->m_DAAShadowRegs.COP_REGS.COP.Tone2Coeff[2] = 0x32;
- j->m_DAAShadowRegs.COP_REGS.COP.Tone2Coeff[1] = 0x52;
- j->m_DAAShadowRegs.COP_REGS.COP.Tone2Coeff[0] = 0xB3;
- }
- static void DAA_Coeff_Australia(IXJ *j)
- {
- int i;
- j->daa_country = DAA_AUSTRALIA;
- /*----------------------------------------------- */
- /* CAO */
- for (i = 0; i < ALISDAA_CALLERID_SIZE; i++) {
- j->m_DAAShadowRegs.CAO_REGS.CAO.CallerID[i] = 0;
- }
- /* Bytes for IM-filter part 1 (04): 00,A3,AA,28,B3,82,D0,00 */
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[7] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[6] = 0xA3;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[5] = 0xAA;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[4] = 0x28;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[3] = 0xB3;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[2] = 0x82;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[1] = 0xD0;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[0] = 0x00;
- /* Bytes for IM-filter part 2 (05): 70,96,00,09,32,6B,C0,08 */
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[7] = 0x70;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[6] = 0x96;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[5] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[4] = 0x09;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[3] = 0x32;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[2] = 0x6B;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[1] = 0xC0;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[0] = 0x08;
- /* Bytes for FRX-filter (08): 07,96,E2,34,32,9B,30,08 */
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[7] = 0x07;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[6] = 0x96;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[5] = 0xE2;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[4] = 0x34;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[3] = 0x32;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[2] = 0x9B;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[1] = 0x30;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[0] = 0x08;
- /* Bytes for FRR-filter (07): 0F,9A,E9,2F,22,CC,A0,08 */
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[7] = 0x0F;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[6] = 0x9A;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[5] = 0xE9;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[4] = 0x2F;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[3] = 0x22;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[2] = 0xCC;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[1] = 0xA0;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[0] = 0x08;
- /* Bytes for AX-filter (0A): CB,45,DD,CA */
- j->m_DAAShadowRegs.COP_REGS.COP.AXFilterCoeff[3] = 0xCB;
- j->m_DAAShadowRegs.COP_REGS.COP.AXFilterCoeff[2] = 0x45;
- j->m_DAAShadowRegs.COP_REGS.COP.AXFilterCoeff[1] = 0xDD;
- j->m_DAAShadowRegs.COP_REGS.COP.AXFilterCoeff[0] = 0xCA;
- /* Bytes for AR-filter (09): 1B,67,10,D6 */
- j->m_DAAShadowRegs.COP_REGS.COP.ARFilterCoeff[3] = 0x1B;
- j->m_DAAShadowRegs.COP_REGS.COP.ARFilterCoeff[2] = 0x67;
- j->m_DAAShadowRegs.COP_REGS.COP.ARFilterCoeff[1] = 0x10;
- j->m_DAAShadowRegs.COP_REGS.COP.ARFilterCoeff[0] = 0xD6;
- /* Bytes for TH-filter part 1 (00): 80,52,48,81,AF,80,00,98 */
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[7] = 0x80;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[6] = 0x52;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[5] = 0x48;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[4] = 0x81;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[3] = 0xAF;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[2] = 0x80;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[1] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[0] = 0x98;
- /* Bytes for TH-filter part 2 (01): 02,DB,52,B0,38,01,82,AC */
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[7] = 0x02;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[6] = 0xDB;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[5] = 0x52;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[4] = 0xB0;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[3] = 0x38;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[2] = 0x01;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[1] = 0x82;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[0] = 0xAC;
- /* Bytes for TH-filter part 3 (02): 00,88,4A,3E,2C,3B,24,46 */
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[7] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[6] = 0x88;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[5] = 0x4A;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[4] = 0x3E;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[3] = 0x2C;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[2] = 0x3B;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[1] = 0x24;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[0] = 0x46;
- /* ; idle */
- /* Bytes for Ringing part 1 (03):1B,3C,93,3A,22,12,A3,23 */
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[7] = 0x1B;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[6] = 0x3C;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[5] = 0x93;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[4] = 0x3A;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[3] = 0x22;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[2] = 0x12;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[1] = 0xA3;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[0] = 0x23;
- /* Bytes for Ringing part 2 (06):12,A2,A6,BA,22,7A,0A,D5 */
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[7] = 0x12;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[6] = 0xA2;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[5] = 0xA6;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[4] = 0xBA;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[3] = 0x22;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[2] = 0x7A;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[1] = 0x0A;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[0] = 0xD5;
- /* Levelmetering Ringing (0D):32,45,B5,84 ; 50Hz 20V */
- j->m_DAAShadowRegs.COP_REGS.COP.LevelmeteringRinging[3] = 0x32;
- j->m_DAAShadowRegs.COP_REGS.COP.LevelmeteringRinging[2] = 0x45;
- j->m_DAAShadowRegs.COP_REGS.COP.LevelmeteringRinging[1] = 0xB5;
- j->m_DAAShadowRegs.COP_REGS.COP.LevelmeteringRinging[0] = 0x84;
- /* Caller ID 1st Tone (0E):CA,0E,CA,09,99,99,99,99 */
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[7] = 0xCA;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[6] = 0x0E;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[5] = 0xCA;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[4] = 0x09;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[3] = 0x99;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[2] = 0x99;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[1] = 0x99;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[0] = 0x99;
- /* Caller ID 2nd Tone (0F):FD,B5,BA,07,DA,00,00,00 */
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[7] = 0xFD;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[6] = 0xB5;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[5] = 0xBA;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[4] = 0x07;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[3] = 0xDA;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[2] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[1] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[0] = 0x00;
- /* ;CR Registers */
- /* Config. Reg. 0 (filters) (cr0):FF */
- j->m_DAAShadowRegs.SOP_REGS.SOP.cr0.reg = 0xFF;
- /* Config. Reg. 1 (dialing) (cr1):05 */
- j->m_DAAShadowRegs.SOP_REGS.SOP.cr1.reg = 0x05;
- /* Config. Reg. 2 (caller ID) (cr2):04 */
- j->m_DAAShadowRegs.SOP_REGS.SOP.cr2.reg = 0x04;
- /* Config. Reg. 3 (testloops) (cr3):00 ; */
- j->m_DAAShadowRegs.SOP_REGS.SOP.cr3.reg = 0x00;
- /* Config. Reg. 4 (analog gain) (cr4):02 */
- j->m_DAAShadowRegs.SOP_REGS.SOP.cr4.reg = 0x02;
- /* Config. Reg. 5 (Version) (cr5):02 */
- /* Config. Reg. 6 (Reserved) (cr6):00 */
- /* Config. Reg. 7 (Reserved) (cr7):00 */
- /* ;xr Registers */
- /* Ext. Reg. 0 (Interrupt Reg.) (xr0):02 */
- j->m_DAAShadowRegs.XOP_xr0_W.reg = 0x02; /* SO_1 set to '1' because it is inverted. */
- /* Ext. Reg. 1 (Interrupt enable) (xr1):1C */
- j->m_DAAShadowRegs.XOP_REGS.XOP.xr1.reg = 0x1C; /* RING, Caller ID, VDD_OK */
- /* Ext. Reg. 2 (Cadence Time Out) (xr2):7D */
- j->m_DAAShadowRegs.XOP_REGS.XOP.xr2.reg = 0x7D;
- /* Ext. Reg. 3 (DC Char) (xr3):2B ; */
- j->m_DAAShadowRegs.XOP_REGS.XOP.xr3.reg = 0x2B;
- /* Ext. Reg. 4 (Cadence) (xr4):00 */
- j->m_DAAShadowRegs.XOP_REGS.XOP.xr4.reg = 0x00;
- /* Ext. Reg. 5 (Ring timer) (xr5):22 */
- j->m_DAAShadowRegs.XOP_REGS.XOP.xr5.reg = 0x22;
- /* Ext. Reg. 6 (Power State) (xr6):00 */
- j->m_DAAShadowRegs.XOP_xr6_W.reg = 0x00;
- /* Ext. Reg. 7 (Vdd) (xr7):40 */
- j->m_DAAShadowRegs.XOP_REGS.XOP.xr7.reg = 0x40; /* 0x40 ??? Should it be 0x00? */
- /* DTMF Tone 1 (0B): 11,B3,5A,2C ; 697 Hz */
- /* 12,33,5A,C3 ; 770 Hz */
- /* 13,3C,5B,32 ; 852 Hz */
- /* 1D,1B,5C,CC ; 941 Hz */
- j->m_DAAShadowRegs.COP_REGS.COP.Tone1Coeff[3] = 0x11;
- j->m_DAAShadowRegs.COP_REGS.COP.Tone1Coeff[2] = 0xB3;
- j->m_DAAShadowRegs.COP_REGS.COP.Tone1Coeff[1] = 0x5A;
- j->m_DAAShadowRegs.COP_REGS.COP.Tone1Coeff[0] = 0x2C;
- /* DTMF Tone 2 (0C): 32,32,52,B3 ; 1209 Hz */
- /* EC,1D,52,22 ; 1336 Hz */
- /* AA,AC,51,D2 ; 1477 Hz */
- /* 9B,3B,51,25 ; 1633 Hz */
- j->m_DAAShadowRegs.COP_REGS.COP.Tone2Coeff[3] = 0x32;
- j->m_DAAShadowRegs.COP_REGS.COP.Tone2Coeff[2] = 0x32;
- j->m_DAAShadowRegs.COP_REGS.COP.Tone2Coeff[1] = 0x52;
- j->m_DAAShadowRegs.COP_REGS.COP.Tone2Coeff[0] = 0xB3;
- }
- static void DAA_Coeff_Japan(IXJ *j)
- {
- int i;
- j->daa_country = DAA_JAPAN;
- /*----------------------------------------------- */
- /* CAO */
- for (i = 0; i < ALISDAA_CALLERID_SIZE; i++) {
- j->m_DAAShadowRegs.CAO_REGS.CAO.CallerID[i] = 0;
- }
- /* Bytes for IM-filter part 1 (04): 06,BD,E2,2D,BA,F9,A0,00 */
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[7] = 0x06;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[6] = 0xBD;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[5] = 0xE2;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[4] = 0x2D;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[3] = 0xBA;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[2] = 0xF9;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[1] = 0xA0;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_1[0] = 0x00;
- /* Bytes for IM-filter part 2 (05): 6F,F7,00,0E,34,33,E0,08 */
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[7] = 0x6F;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[6] = 0xF7;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[5] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[4] = 0x0E;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[3] = 0x34;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[2] = 0x33;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[1] = 0xE0;
- j->m_DAAShadowRegs.COP_REGS.COP.IMFilterCoeff_2[0] = 0x08;
- /* Bytes for FRX-filter (08): 02,8F,68,77,9C,58,F0,08 */
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[7] = 0x02;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[6] = 0x8F;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[5] = 0x68;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[4] = 0x77;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[3] = 0x9C;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[2] = 0x58;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[1] = 0xF0;
- j->m_DAAShadowRegs.COP_REGS.COP.FRXFilterCoeff[0] = 0x08;
- /* Bytes for FRR-filter (07): 03,8F,38,73,87,EA,20,08 */
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[7] = 0x03;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[6] = 0x8F;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[5] = 0x38;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[4] = 0x73;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[3] = 0x87;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[2] = 0xEA;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[1] = 0x20;
- j->m_DAAShadowRegs.COP_REGS.COP.FRRFilterCoeff[0] = 0x08;
- /* Bytes for AX-filter (0A): 51,C5,DD,CA */
- j->m_DAAShadowRegs.COP_REGS.COP.AXFilterCoeff[3] = 0x51;
- j->m_DAAShadowRegs.COP_REGS.COP.AXFilterCoeff[2] = 0xC5;
- j->m_DAAShadowRegs.COP_REGS.COP.AXFilterCoeff[1] = 0xDD;
- j->m_DAAShadowRegs.COP_REGS.COP.AXFilterCoeff[0] = 0xCA;
- /* Bytes for AR-filter (09): 25,A7,10,D6 */
- j->m_DAAShadowRegs.COP_REGS.COP.ARFilterCoeff[3] = 0x25;
- j->m_DAAShadowRegs.COP_REGS.COP.ARFilterCoeff[2] = 0xA7;
- j->m_DAAShadowRegs.COP_REGS.COP.ARFilterCoeff[1] = 0x10;
- j->m_DAAShadowRegs.COP_REGS.COP.ARFilterCoeff[0] = 0xD6;
- /* Bytes for TH-filter part 1 (00): 00,42,48,81,AE,80,00,98 */
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[7] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[6] = 0x42;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[5] = 0x48;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[4] = 0x81;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[3] = 0xAE;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[2] = 0x80;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[1] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_1[0] = 0x98;
- /* Bytes for TH-filter part 2 (01): 02,AB,2A,20,99,5B,89,28 */
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[7] = 0x02;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[6] = 0xAB;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[5] = 0x2A;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[4] = 0x20;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[3] = 0x99;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[2] = 0x5B;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[1] = 0x89;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_2[0] = 0x28;
- /* Bytes for TH-filter part 3 (02): 00,88,DA,25,34,C5,4C,BA */
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[7] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[6] = 0x88;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[5] = 0xDA;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[4] = 0x25;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[3] = 0x34;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[2] = 0xC5;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[1] = 0x4C;
- j->m_DAAShadowRegs.COP_REGS.COP.THFilterCoeff_3[0] = 0xBA;
- /* ; idle */
- /* Bytes for Ringing part 1 (03):1B,3C,93,3A,22,12,A3,23 */
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[7] = 0x1B;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[6] = 0x3C;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[5] = 0x93;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[4] = 0x3A;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[3] = 0x22;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[2] = 0x12;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[1] = 0xA3;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_1[0] = 0x23;
- /* Bytes for Ringing part 2 (06):12,A2,A6,BA,22,7A,0A,D5 */
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[7] = 0x12;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[6] = 0xA2;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[5] = 0xA6;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[4] = 0xBA;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[3] = 0x22;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[2] = 0x7A;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[1] = 0x0A;
- j->m_DAAShadowRegs.COP_REGS.COP.RingerImpendance_2[0] = 0xD5;
- /* Levelmetering Ringing (0D):AA,35,0F,8E ; 25Hz 30V ????????? */
- j->m_DAAShadowRegs.COP_REGS.COP.LevelmeteringRinging[3] = 0xAA;
- j->m_DAAShadowRegs.COP_REGS.COP.LevelmeteringRinging[2] = 0x35;
- j->m_DAAShadowRegs.COP_REGS.COP.LevelmeteringRinging[1] = 0x0F;
- j->m_DAAShadowRegs.COP_REGS.COP.LevelmeteringRinging[0] = 0x8E;
- /* Caller ID 1st Tone (0E):CA,0E,CA,09,99,99,99,99 */
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[7] = 0xCA;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[6] = 0x0E;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[5] = 0xCA;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[4] = 0x09;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[3] = 0x99;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[2] = 0x99;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[1] = 0x99;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID1stTone[0] = 0x99;
- /* Caller ID 2nd Tone (0F):FD,B5,BA,07,DA,00,00,00 */
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[7] = 0xFD;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[6] = 0xB5;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[5] = 0xBA;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[4] = 0x07;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[3] = 0xDA;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[2] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[1] = 0x00;
- j->m_DAAShadowRegs.COP_REGS.COP.CallerID2ndTone[0] = 0x00;
- /* ;CR Registers */
- /* Config. Reg. 0 (filters) (cr0):FF */
- j->m_DAAShadowRegs.SOP_REGS.SOP.cr0.reg = 0xFF;
- /* Config. Reg. 1 (dialing) (cr1):05 */
- j->m_DAAShadowRegs.SOP_REGS.SOP.cr1.reg = 0x05;
- /* Config. Reg. 2 (caller ID) (cr2):04 */
- j->m_DAAShadowRegs.SOP_REGS.SOP.cr2.reg = 0x04;
- /* Config. Reg. 3 (testloops) (cr3):00 ; */
- j->m_DAAShadowRegs.SOP_REGS.SOP.cr3.reg = 0x00;
- /* Config. Reg. 4 (analog gain) (cr4):02 */
- j->m_DAAShadowRegs.SOP_REGS.SOP.cr4.reg = 0x02;
- /* Config. Reg. 5 (Version) (cr5):02 */
- /* Config. Reg. 6 (Reserved) (cr6):00 */
- /* Config. Reg. 7 (Reserved) (cr7):00 */
- /* ;xr Registers */
- /* Ext. Reg. 0 (Interrupt Reg.) (xr0):02 */
- j->m_DAAShadowRegs.XOP_xr0_W.reg = 0x02; /* SO_1 set to '1' because it is inverted. */
- /* Ext. Reg. 1 (Interrupt enable) (xr1):1C */
- j->m_DAAShadowRegs.XOP_REGS.XOP.xr1.reg = 0x1C; /* RING, Caller ID, VDD_OK */
- /* Ext. Reg. 2 (Cadence Time Out) (xr2):7D */
- j->m_DAAShadowRegs.XOP_REGS.XOP.xr2.reg = 0x7D;
- /* Ext. Reg. 3 (DC Char) (xr3):22 ; */
- j->m_DAAShadowRegs.XOP_REGS.XOP.xr3.reg = 0x22;
- /* Ext. Reg. 4 (Cadence) (xr4):00 */
- j->m_DAAShadowRegs.XOP_REGS.XOP.xr4.reg = 0x00;
- /* Ext. Reg. 5 (Ring timer) (xr5):22 */
- j->m_DAAShadowRegs.XOP_REGS.XOP.xr5.reg = 0x22;
- /* Ext. Reg. 6 (Power State) (xr6):00 */
- j->m_DAAShadowRegs.XOP_xr6_W.reg = 0x00;
- /* Ext. Reg. 7 (Vdd) (xr7):40 */
- j->m_DAAShadowRegs.XOP_REGS.XOP.xr7.reg = 0x40; /* 0x40 ??? Should it be 0x00? */
- /* DTMF Tone 1 (0B): 11,B3,5A,2C ; 697 Hz */
- /* 12,33,5A,C3 ; 770 Hz */
- /* 13,3C,5B,32 ; 852 Hz */
- /* 1D,1B,5C,CC ; 941 Hz */
- j->m_DAAShadowRegs.COP_REGS.COP.Tone1Coeff[3] = 0x11;
- j->m_DAAShadowRegs.COP_REGS.COP.Tone1Coeff[2] = 0xB3;
- j->m_DAAShadowRegs.COP_REGS.COP.Tone1Coeff[1] = 0x5A;
- j->m_DAAShadowRegs.COP_REGS.COP.Tone1Coeff[0] = 0x2C;
- /* DTMF Tone 2 (0C): 32,32,52,B3 ; 1209 Hz */
- /* EC,1D,52,22 ; 1336 Hz */
- /* AA,AC,51,D2 ; 1477 Hz */
- /* 9B,3B,51,25 ; 1633 Hz */
- j->m_DAAShadowRegs.COP_REGS.COP.Tone2Coeff[3] = 0x32;
- j->m_DAAShadowRegs.COP_REGS.COP.Tone2Coeff[2] = 0x32;
- j->m_DAAShadowRegs.COP_REGS.COP.Tone2Coeff[1] = 0x52;
- j->m_DAAShadowRegs.COP_REGS.COP.Tone2Coeff[0] = 0xB3;
- }
- static s16 tone_table[][19] =
- {
- { /* f20_50[] 11 */
- 32538, /* A1 = 1.985962 */
- -32325, /* A2 = -0.986511 */
- -343, /* B2 = -0.010493 */
- 0, /* B1 = 0 */
- 343, /* B0 = 0.010493 */
- 32619, /* A1 = 1.990906 */
- -32520, /* A2 = -0.992462 */
- 19179, /* B2 = 0.585327 */
- -19178, /* B1 = -1.170593 */
- 19179, /* B0 = 0.585327 */
- 32723, /* A1 = 1.997314 */
- -32686, /* A2 = -0.997528 */
- 9973, /* B2 = 0.304352 */
- -9955, /* B1 = -0.607605 */
- 9973, /* B0 = 0.304352 */
- 7, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f133_200[] 12 */
- 32072, /* A1 = 1.95752 */
- -31896, /* A2 = -0.973419 */
- -435, /* B2 = -0.013294 */
- 0, /* B1 = 0 */
- 435, /* B0 = 0.013294 */
- 32188, /* A1 = 1.9646 */
- -32400, /* A2 = -0.98877 */
- 15139, /* B2 = 0.462036 */
- -14882, /* B1 = -0.908356 */
- 15139, /* B0 = 0.462036 */
- 32473, /* A1 = 1.981995 */
- -32524, /* A2 = -0.992584 */
- 23200, /* B2 = 0.708008 */
- -23113, /* B1 = -1.410706 */
- 23200, /* B0 = 0.708008 */
- 7, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f300 13 */
- 31769, /* A1 = -1.939026 */
- -32584, /* A2 = 0.994385 */
- -475, /* B2 = -0.014522 */
- 0, /* B1 = 0.000000 */
- 475, /* B0 = 0.014522 */
- 31789, /* A1 = -1.940247 */
- -32679, /* A2 = 0.997284 */
- 17280, /* B2 = 0.527344 */
- -16865, /* B1 = -1.029358 */
- 17280, /* B0 = 0.527344 */
- 31841, /* A1 = -1.943481 */
- -32681, /* A2 = 0.997345 */
- 543, /* B2 = 0.016579 */
- -525, /* B1 = -0.032097 */
- 543, /* B0 = 0.016579 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f300_420[] 14 */
- 30750, /* A1 = 1.876892 */
- -31212, /* A2 = -0.952515 */
- -804, /* B2 = -0.024541 */
- 0, /* B1 = 0 */
- 804, /* B0 = 0.024541 */
- 30686, /* A1 = 1.872925 */
- -32145, /* A2 = -0.980988 */
- 14747, /* B2 = 0.450043 */
- -13703, /* B1 = -0.836395 */
- 14747, /* B0 = 0.450043 */
- 31651, /* A1 = 1.931824 */
- -32321, /* A2 = -0.986389 */
- 24425, /* B2 = 0.745422 */
- -23914, /* B1 = -1.459595 */
- 24427, /* B0 = 0.745483 */
- 7, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f330 15 */
- 31613, /* A1 = -1.929565 */
- -32646, /* A2 = 0.996277 */
- -185, /* B2 = -0.005657 */
- 0, /* B1 = 0.000000 */
- 185, /* B0 = 0.005657 */
- 31620, /* A1 = -1.929932 */
- -32713, /* A2 = 0.998352 */
- 19253, /* B2 = 0.587585 */
- -18566, /* B1 = -1.133179 */
- 19253, /* B0 = 0.587585 */
- 31674, /* A1 = -1.933228 */
- -32715, /* A2 = 0.998413 */
- 2575, /* B2 = 0.078590 */
- -2495, /* B1 = -0.152283 */
- 2575, /* B0 = 0.078590 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f300_425[] 16 */
- 30741, /* A1 = 1.876282 */
- -31475, /* A2 = -0.960541 */
- -703, /* B2 = -0.021484 */
- 0, /* B1 = 0 */
- 703, /* B0 = 0.021484 */
- 30688, /* A1 = 1.873047 */
- -32248, /* A2 = -0.984161 */
- 14542, /* B2 = 0.443787 */
- -13523, /* B1 = -0.825439 */
- 14542, /* B0 = 0.443817 */
- 31494, /* A1 = 1.922302 */
- -32366, /* A2 = -0.987762 */
- 21577, /* B2 = 0.658508 */
- -21013, /* B1 = -1.282532 */
- 21577, /* B0 = 0.658508 */
- 7, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f330_440[] 17 */
- 30627, /* A1 = 1.869324 */
- -31338, /* A2 = -0.95636 */
- -843, /* B2 = -0.025749 */
- 0, /* B1 = 0 */
- 843, /* B0 = 0.025749 */
- 30550, /* A1 = 1.864685 */
- -32221, /* A2 = -0.983337 */
- 13594, /* B2 = 0.414886 */
- -12589, /* B1 = -0.768402 */
- 13594, /* B0 = 0.414886 */
- 31488, /* A1 = 1.921936 */
- -32358, /* A2 = -0.987518 */
- 24684, /* B2 = 0.753296 */
- -24029, /* B1 = -1.466614 */
- 24684, /* B0 = 0.753296 */
- 7, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f340 18 */
- 31546, /* A1 = -1.925476 */
- -32646, /* A2 = 0.996277 */
- -445, /* B2 = -0.013588 */
- 0, /* B1 = 0.000000 */
- 445, /* B0 = 0.013588 */
- 31551, /* A1 = -1.925781 */
- -32713, /* A2 = 0.998352 */
- 23884, /* B2 = 0.728882 */
- -22979, /* B1 = -1.402527 */
- 23884, /* B0 = 0.728882 */
- 31606, /* A1 = -1.929138 */
- -32715, /* A2 = 0.998413 */
- 863, /* B2 = 0.026367 */
- -835, /* B1 = -0.050985 */
- 863, /* B0 = 0.026367 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f350_400[] 19 */
- 31006, /* A1 = 1.892517 */
- -32029, /* A2 = -0.977448 */
- -461, /* B2 = -0.014096 */
- 0, /* B1 = 0 */
- 461, /* B0 = 0.014096 */
- 30999, /* A1 = 1.892029 */
- -32487, /* A2 = -0.991455 */
- 11325, /* B2 = 0.345612 */
- -10682, /* B1 = -0.651978 */
- 11325, /* B0 = 0.345612 */
- 31441, /* A1 = 1.919067 */
- -32526, /* A2 = -0.992615 */
- 24324, /* B2 = 0.74231 */
- -23535, /* B1 = -1.436523 */
- 24324, /* B0 = 0.74231 */
- 7, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f350_440[] */
- 30634, /* A1 = 1.869751 */
- -31533, /* A2 = -0.962341 */
- -680, /* B2 = -0.020782 */
- 0, /* B1 = 0 */
- 680, /* B0 = 0.020782 */
- 30571, /* A1 = 1.865906 */
- -32277, /* A2 = -0.985016 */
- 12894, /* B2 = 0.393524 */
- -11945, /* B1 = -0.729065 */
- 12894, /* B0 = 0.393524 */
- 31367, /* A1 = 1.91449 */
- -32379, /* A2 = -0.988129 */
- 23820, /* B2 = 0.726929 */
- -23104, /* B1 = -1.410217 */
- 23820, /* B0 = 0.726929 */
- 7, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f350_450[] */
- 30552, /* A1 = 1.864807 */
- -31434, /* A2 = -0.95929 */
- -690, /* B2 = -0.021066 */
- 0, /* B1 = 0 */
- 690, /* B0 = 0.021066 */
- 30472, /* A1 = 1.859924 */
- -32248, /* A2 = -0.984161 */
- 13385, /* B2 = 0.408478 */
- -12357, /* B1 = -0.754242 */
- 13385, /* B0 = 0.408478 */
- 31358, /* A1 = 1.914001 */
- -32366, /* A2 = -0.987732 */
- 26488, /* B2 = 0.80835 */
- -25692, /* B1 = -1.568176 */
- 26490, /* B0 = 0.808411 */
- 7, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f360 */
- 31397, /* A1 = -1.916321 */
- -32623, /* A2 = 0.995605 */
- -117, /* B2 = -0.003598 */
- 0, /* B1 = 0.000000 */
- 117, /* B0 = 0.003598 */
- 31403, /* A1 = -1.916687 */
- -32700, /* A2 = 0.997925 */
- 3388, /* B2 = 0.103401 */
- -3240, /* B1 = -0.197784 */
- 3388, /* B0 = 0.103401 */
- 31463, /* A1 = -1.920410 */
- -32702, /* A2 = 0.997986 */
- 13346, /* B2 = 0.407288 */
- -12863, /* B1 = -0.785126 */
- 13346, /* B0 = 0.407288 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f380_420[] */
- 30831, /* A1 = 1.881775 */
- -32064, /* A2 = -0.978546 */
- -367, /* B2 = -0.01122 */
- 0, /* B1 = 0 */
- 367, /* B0 = 0.01122 */
- 30813, /* A1 = 1.880737 */
- -32456, /* A2 = -0.990509 */
- 11068, /* B2 = 0.337769 */
- -10338, /* B1 = -0.631042 */
- 11068, /* B0 = 0.337769 */
- 31214, /* A1 = 1.905212 */
- -32491, /* A2 = -0.991577 */
- 16374, /* B2 = 0.499695 */
- -15781, /* B1 = -0.963196 */
- 16374, /* B0 = 0.499695 */
- 7, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f392 */
- 31152, /* A1 = -1.901428 */
- -32613, /* A2 = 0.995300 */
- -314, /* B2 = -0.009605 */
- 0, /* B1 = 0.000000 */
- 314, /* B0 = 0.009605 */
- 31156, /* A1 = -1.901672 */
- -32694, /* A2 = 0.997742 */
- 28847, /* B2 = 0.880371 */
- -2734, /* B1 = -0.166901 */
- 28847, /* B0 = 0.880371 */
- 31225, /* A1 = -1.905823 */
- -32696, /* A2 = 0.997803 */
- 462, /* B2 = 0.014108 */
- -442, /* B1 = -0.027019 */
- 462, /* B0 = 0.014108 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f400_425[] */
- 30836, /* A1 = 1.882141 */
- -32296, /* A2 = -0.985596 */
- -324, /* B2 = -0.009903 */
- 0, /* B1 = 0 */
- 324, /* B0 = 0.009903 */
- 30825, /* A1 = 1.881409 */
- -32570, /* A2 = -0.993958 */
- 16847, /* B2 = 0.51416 */
- -15792, /* B1 = -0.963898 */
- 16847, /* B0 = 0.51416 */
- 31106, /* A1 = 1.89856 */
- -32584, /* A2 = -0.994415 */
- 9579, /* B2 = 0.292328 */
- -9164, /* B1 = -0.559357 */
- 9579, /* B0 = 0.292328 */
- 7, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f400_440[] */
- 30702, /* A1 = 1.873962 */
- -32134, /* A2 = -0.980682 */
- -517, /* B2 = -0.015793 */
- 0, /* B1 = 0 */
- 517, /* B0 = 0.015793 */
- 30676, /* A1 = 1.872375 */
- -32520, /* A2 = -0.992462 */
- 8144, /* B2 = 0.24855 */
- -7596, /* B1 = -0.463684 */
- 8144, /* B0 = 0.24855 */
- 31084, /* A1 = 1.897217 */
- -32547, /* A2 = -0.993256 */
- 22713, /* B2 = 0.693176 */
- -21734, /* B1 = -1.326599 */
- 22713, /* B0 = 0.693176 */
- 7, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f400_450[] */
- 30613, /* A1 = 1.86853 */
- -32031, /* A2 = -0.977509 */
- -618, /* B2 = -0.018866 */
- 0, /* B1 = 0 */
- 618, /* B0 = 0.018866 */
- 30577, /* A1 = 1.866272 */
- -32491, /* A2 = -0.991577 */
- 9612, /* B2 = 0.293335 */
- -8935, /* B1 = -0.54541 */
- 9612, /* B0 = 0.293335 */
- 31071, /* A1 = 1.896484 */
- -32524, /* A2 = -0.992584 */
- 21596, /* B2 = 0.659058 */
- -20667, /* B1 = -1.261414 */
- 21596, /* B0 = 0.659058 */
- 7, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f420 */
- 30914, /* A1 = -1.886841 */
- -32584, /* A2 = 0.994385 */
- -426, /* B2 = -0.013020 */
- 0, /* B1 = 0.000000 */
- 426, /* B0 = 0.013020 */
- 30914, /* A1 = -1.886841 */
- -32679, /* A2 = 0.997314 */
- 17520, /* B2 = 0.534668 */
- -16471, /* B1 = -1.005310 */
- 17520, /* B0 = 0.534668 */
- 31004, /* A1 = -1.892334 */
- -32683, /* A2 = 0.997406 */
- 819, /* B2 = 0.025023 */
- -780, /* B1 = -0.047619 */
- 819, /* B0 = 0.025023 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- #if 0
- { /* f425 */
- 30881, /* A1 = -1.884827 */
- -32603, /* A2 = 0.994965 */
- -496, /* B2 = -0.015144 */
- 0, /* B1 = 0.000000 */
- 496, /* B0 = 0.015144 */
- 30880, /* A1 = -1.884766 */
- -32692, /* A2 = 0.997711 */
- 24767, /* B2 = 0.755859 */
- -23290, /* B1 = -1.421509 */
- 24767, /* B0 = 0.755859 */
- 30967, /* A1 = -1.890076 */
- -32694, /* A2 = 0.997772 */
- 728, /* B2 = 0.022232 */
- -691, /* B1 = -0.042194 */
- 728, /* B0 = 0.022232 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- #else
- {
- 30850,
- -32534,
- -504,
- 0,
- 504,
- 30831,
- -32669,
- 24303,
- -22080,
- 24303,
- 30994,
- -32673,
- 1905,
- -1811,
- 1905,
- 5,
- 129,
- 17,
- 0xff5
- },
- #endif
- { /* f425_450[] */
- 30646, /* A1 = 1.870544 */
- -32327, /* A2 = -0.986572 */
- -287, /* B2 = -0.008769 */
- 0, /* B1 = 0 */
- 287, /* B0 = 0.008769 */
- 30627, /* A1 = 1.869324 */
- -32607, /* A2 = -0.995087 */
- 13269, /* B2 = 0.404968 */
- -12376, /* B1 = -0.755432 */
- 13269, /* B0 = 0.404968 */
- 30924, /* A1 = 1.887512 */
- -32619, /* A2 = -0.995453 */
- 19950, /* B2 = 0.608826 */
- -18940, /* B1 = -1.156006 */
- 19950, /* B0 = 0.608826 */
- 7, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f425_475[] */
- 30396, /* A1 = 1.855225 */
- -32014, /* A2 = -0.97699 */
- -395, /* B2 = -0.012055 */
- 0, /* B1 = 0 */
- 395, /* B0 = 0.012055 */
- 30343, /* A1 = 1.85199 */
- -32482, /* A2 = -0.991302 */
- 17823, /* B2 = 0.543945 */
- -16431, /* B1 = -1.002869 */
- 17823, /* B0 = 0.543945 */
- 30872, /* A1 = 1.884338 */
- -32516, /* A2 = -0.99231 */
- 18124, /* B2 = 0.553101 */
- -17246, /* B1 = -1.052673 */
- 18124, /* B0 = 0.553101 */
- 7, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f435 */
- 30796, /* A1 = -1.879639 */
- -32603, /* A2 = 0.994965 */
- -254, /* B2 = -0.007762 */
- 0, /* B1 = 0.000000 */
- 254, /* B0 = 0.007762 */
- 30793, /* A1 = -1.879456 */
- -32692, /* A2 = 0.997711 */
- 18934, /* B2 = 0.577820 */
- -17751, /* B1 = -1.083496 */
- 18934, /* B0 = 0.577820 */
- 30882, /* A1 = -1.884888 */
- -32694, /* A2 = 0.997772 */
- 1858, /* B2 = 0.056713 */
- -1758, /* B1 = -0.107357 */
- 1858, /* B0 = 0.056713 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f440_450[] */
- 30641, /* A1 = 1.870239 */
- -32458, /* A2 = -0.99057 */
- -155, /* B2 = -0.004735 */
- 0, /* B1 = 0 */
- 155, /* B0 = 0.004735 */
- 30631, /* A1 = 1.869568 */
- -32630, /* A2 = -0.995789 */
- 11453, /* B2 = 0.349548 */
- -10666, /* B1 = -0.651001 */
- 11453, /* B0 = 0.349548 */
- 30810, /* A1 = 1.880554 */
- -32634, /* A2 = -0.995941 */
- 12237, /* B2 = 0.373474 */
- -11588, /* B1 = -0.707336 */
- 12237, /* B0 = 0.373474 */
- 7, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f440_480[] */
- 30367, /* A1 = 1.853455 */
- -32147, /* A2 = -0.981079 */
- -495, /* B2 = -0.015113 */
- 0, /* B1 = 0 */
- 495, /* B0 = 0.015113 */
- 30322, /* A1 = 1.850769 */
- -32543, /* A2 = -0.993134 */
- 10031, /* B2 = 0.306152 */
- -9252, /* B1 = -0.564728 */
- 10031, /* B0 = 0.306152 */
- 30770, /* A1 = 1.878052 */
- -32563, /* A2 = -0.993774 */
- 22674, /* B2 = 0.691956 */
- -21465, /* B1 = -1.31012 */
- 22674, /* B0 = 0.691956 */
- 7, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f445 */
- 30709, /* A1 = -1.874329 */
- -32603, /* A2 = 0.994965 */
- -83, /* B2 = -0.002545 */
- 0, /* B1 = 0.000000 */
- 83, /* B0 = 0.002545 */
- 30704, /* A1 = -1.874084 */
- -32692, /* A2 = 0.997711 */
- 10641, /* B2 = 0.324738 */
- -9947, /* B1 = -0.607147 */
- 10641, /* B0 = 0.324738 */
- 30796, /* A1 = -1.879639 */
- -32694, /* A2 = 0.997772 */
- 10079, /* B2 = 0.307587 */
- 9513, /* B1 = 0.580688 */
- 10079, /* B0 = 0.307587 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f450 */
- 30664, /* A1 = -1.871643 */
- -32603, /* A2 = 0.994965 */
- -164, /* B2 = -0.005029 */
- 0, /* B1 = 0.000000 */
- 164, /* B0 = 0.005029 */
- 30661, /* A1 = -1.871399 */
- -32692, /* A2 = 0.997711 */
- 15294, /* B2 = 0.466736 */
- -14275, /* B1 = -0.871307 */
- 15294, /* B0 = 0.466736 */
- 30751, /* A1 = -1.876953 */
- -32694, /* A2 = 0.997772 */
- 3548, /* B2 = 0.108284 */
- -3344, /* B1 = -0.204155 */
- 3548, /* B0 = 0.108284 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f452 */
- 30653, /* A1 = -1.870911 */
- -32615, /* A2 = 0.995361 */
- -209, /* B2 = -0.006382 */
- 0, /* B1 = 0.000000 */
- 209, /* B0 = 0.006382 */
- 30647, /* A1 = -1.870605 */
- -32702, /* A2 = 0.997986 */
- 18971, /* B2 = 0.578979 */
- -17716, /* B1 = -1.081299 */
- 18971, /* B0 = 0.578979 */
- 30738, /* A1 = -1.876099 */
- -32702, /* A2 = 0.998016 */
- 2967, /* B2 = 0.090561 */
- -2793, /* B1 = -0.170502 */
- 2967, /* B0 = 0.090561 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f475 */
- 30437, /* A1 = -1.857727 */
- -32603, /* A2 = 0.994965 */
- -264, /* B2 = -0.008062 */
- 0, /* B1 = 0.000000 */
- 264, /* B0 = 0.008062 */
- 30430, /* A1 = -1.857300 */
- -32692, /* A2 = 0.997711 */
- 21681, /* B2 = 0.661682 */
- -20082, /* B1 = -1.225708 */
- 21681, /* B0 = 0.661682 */
- 30526, /* A1 = -1.863220 */
- -32694, /* A2 = 0.997742 */
- 1559, /* B2 = 0.047600 */
- -1459, /* B1 = -0.089096 */
- 1559, /* B0 = 0.047600 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f480_620[] */
- 28975, /* A1 = 1.768494 */
- -30955, /* A2 = -0.944672 */
- -1026, /* B2 = -0.03133 */
- 0, /* B1 = 0 */
- 1026, /* B0 = 0.03133 */
- 28613, /* A1 = 1.746399 */
- -32089, /* A2 = -0.979309 */
- 14214, /* B2 = 0.433807 */
- -12202, /* B1 = -0.744812 */
- 14214, /* B0 = 0.433807 */
- 30243, /* A1 = 1.845947 */
- -32238, /* A2 = -0.983856 */
- 24825, /* B2 = 0.757629 */
- -23402, /* B1 = -1.428345 */
- 24825, /* B0 = 0.757629 */
- 7, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f494 */
- 30257, /* A1 = -1.846741 */
- -32605, /* A2 = 0.995056 */
- -249, /* B2 = -0.007625 */
- 0, /* B1 = 0.000000 */
- 249, /* B0 = 0.007625 */
- 30247, /* A1 = -1.846191 */
- -32694, /* A2 = 0.997772 */
- 18088, /* B2 = 0.552002 */
- -16652, /* B1 = -1.016418 */
- 18088, /* B0 = 0.552002 */
- 30348, /* A1 = -1.852295 */
- -32696, /* A2 = 0.997803 */
- 2099, /* B2 = 0.064064 */
- -1953, /* B1 = -0.119202 */
- 2099, /* B0 = 0.064064 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f500 */
- 30202, /* A1 = -1.843431 */
- -32624, /* A2 = 0.995622 */
- -413, /* B2 = -0.012622 */
- 0, /* B1 = 0.000000 */
- 413, /* B0 = 0.012622 */
- 30191, /* A1 = -1.842721 */
- -32714, /* A2 = 0.998364 */
- 25954, /* B2 = 0.792057 */
- -23890, /* B1 = -1.458131 */
- 25954, /* B0 = 0.792057 */
- 30296, /* A1 = -1.849172 */
- -32715, /* A2 = 0.998397 */
- 2007, /* B2 = 0.061264 */
- -1860, /* B1 = -0.113568 */
- 2007, /* B0 = 0.061264 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f520 */
- 30001, /* A1 = -1.831116 */
- -32613, /* A2 = 0.995270 */
- -155, /* B2 = -0.004750 */
- 0, /* B1 = 0.000000 */
- 155, /* B0 = 0.004750 */
- 29985, /* A1 = -1.830200 */
- -32710, /* A2 = 0.998260 */
- 6584, /* B2 = 0.200928 */
- -6018, /* B1 = -0.367355 */
- 6584, /* B0 = 0.200928 */
- 30105, /* A1 = -1.837524 */
- -32712, /* A2 = 0.998291 */
- 23812, /* B2 = 0.726685 */
- -21936, /* B1 = -1.338928 */
- 23812, /* B0 = 0.726685 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f523 */
- 29964, /* A1 = -1.828918 */
- -32601, /* A2 = 0.994904 */
- -101, /* B2 = -0.003110 */
- 0, /* B1 = 0.000000 */
- 101, /* B0 = 0.003110 */
- 29949, /* A1 = -1.827942 */
- -32700, /* A2 = 0.997925 */
- 11041, /* B2 = 0.336975 */
- -10075, /* B1 = -0.614960 */
- 11041, /* B0 = 0.336975 */
- 30070, /* A1 = -1.835388 */
- -32702, /* A2 = 0.997986 */
- 16762, /* B2 = 0.511536 */
- -15437, /* B1 = -0.942230 */
- 16762, /* B0 = 0.511536 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f525 */
- 29936, /* A1 = -1.827209 */
- -32584, /* A2 = 0.994415 */
- -91, /* B2 = -0.002806 */
- 0, /* B1 = 0.000000 */
- 91, /* B0 = 0.002806 */
- 29921, /* A1 = -1.826233 */
- -32688, /* A2 = 0.997559 */
- 11449, /* B2 = 0.349396 */
- -10426, /* B1 = -0.636383 */
- 11449, /* B0 = 0.349396 */
- 30045, /* A1 = -1.833862 */
- -32688, /* A2 = 0.997589 */
- 13055, /* B2 = 0.398407 */
- -12028, /* B1 = -0.734161 */
- 13055, /* B0 = 0.398407 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f540_660[] */
- 28499, /* A1 = 1.739441 */
- -31129, /* A2 = -0.949982 */
- -849, /* B2 = -0.025922 */
- 0, /* B1 = 0 */
- 849, /* B0 = 0.025922 */
- 28128, /* A1 = 1.716797 */
- -32130, /* A2 = -0.98056 */
- 14556, /* B2 = 0.444214 */
- -12251, /* B1 = -0.747772 */
- 14556, /* B0 = 0.444244 */
- 29667, /* A1 = 1.81073 */
- -32244, /* A2 = -0.984039 */
- 23038, /* B2 = 0.703064 */
- -21358, /* B1 = -1.303589 */
- 23040, /* B0 = 0.703125 */
- 7, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f587 */
- 29271, /* A1 = -1.786560 */
- -32599, /* A2 = 0.994873 */
- -490, /* B2 = -0.014957 */
- 0, /* B1 = 0.000000 */
- 490, /* B0 = 0.014957 */
- 29246, /* A1 = -1.785095 */
- -32700, /* A2 = 0.997925 */
- 28961, /* B2 = 0.883850 */
- -25796, /* B1 = -1.574463 */
- 28961, /* B0 = 0.883850 */
- 29383, /* A1 = -1.793396 */
- -32700, /* A2 = 0.997955 */
- 1299, /* B2 = 0.039650 */
- -1169, /* B1 = -0.071396 */
- 1299, /* B0 = 0.039650 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f590 */
- 29230, /* A1 = -1.784058 */
- -32584, /* A2 = 0.994415 */
- -418, /* B2 = -0.012757 */
- 0, /* B1 = 0.000000 */
- 418, /* B0 = 0.012757 */
- 29206, /* A1 = -1.782593 */
- -32688, /* A2 = 0.997559 */
- 36556, /* B2 = 1.115601 */
- -32478, /* B1 = -1.982300 */
- 36556, /* B0 = 1.115601 */
- 29345, /* A1 = -1.791077 */
- -32688, /* A2 = 0.997589 */
- 897, /* B2 = 0.027397 */
- -808, /* B1 = -0.049334 */
- 897, /* B0 = 0.027397 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f600 */
- 29116, /* A1 = -1.777100 */
- -32603, /* A2 = 0.994965 */
- -165, /* B2 = -0.005039 */
- 0, /* B1 = 0.000000 */
- 165, /* B0 = 0.005039 */
- 29089, /* A1 = -1.775452 */
- -32708, /* A2 = 0.998199 */
- 6963, /* B2 = 0.212494 */
- -6172, /* B1 = -0.376770 */
- 6963, /* B0 = 0.212494 */
- 29237, /* A1 = -1.784485 */
- -32710, /* A2 = 0.998230 */
- 24197, /* B2 = 0.738464 */
- -21657, /* B1 = -1.321899 */
- 24197, /* B0 = 0.738464 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f660 */
- 28376, /* A1 = -1.731934 */
- -32567, /* A2 = 0.993896 */
- -363, /* B2 = -0.011102 */
- 0, /* B1 = 0.000000 */
- 363, /* B0 = 0.011102 */
- 28337, /* A1 = -1.729614 */
- -32683, /* A2 = 0.997434 */
- 21766, /* B2 = 0.664246 */
- -18761, /* B1 = -1.145081 */
- 21766, /* B0 = 0.664246 */
- 28513, /* A1 = -1.740356 */
- -32686, /* A2 = 0.997498 */
- 2509, /* B2 = 0.076584 */
- -2196, /* B1 = -0.134041 */
- 2509, /* B0 = 0.076584 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f700 */
- 27844, /* A1 = -1.699463 */
- -32563, /* A2 = 0.993744 */
- -366, /* B2 = -0.011187 */
- 0, /* B1 = 0.000000 */
- 366, /* B0 = 0.011187 */
- 27797, /* A1 = -1.696655 */
- -32686, /* A2 = 0.997498 */
- 22748, /* B2 = 0.694214 */
- -19235, /* B1 = -1.174072 */
- 22748, /* B0 = 0.694214 */
- 27995, /* A1 = -1.708740 */
- -32688, /* A2 = 0.997559 */
- 2964, /* B2 = 0.090477 */
- -2546, /* B1 = -0.155449 */
- 2964, /* B0 = 0.090477 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f740 */
- 27297, /* A1 = -1.666077 */
- -32551, /* A2 = 0.993408 */
- -345, /* B2 = -0.010540 */
- 0, /* B1 = 0.000000 */
- 345, /* B0 = 0.010540 */
- 27240, /* A1 = -1.662598 */
- -32683, /* A2 = 0.997406 */
- 22560, /* B2 = 0.688477 */
- -18688, /* B1 = -1.140625 */
- 22560, /* B0 = 0.688477 */
- 27461, /* A1 = -1.676147 */
- -32684, /* A2 = 0.997467 */
- 3541, /* B2 = 0.108086 */
- -2985, /* B1 = -0.182220 */
- 3541, /* B0 = 0.108086 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f750 */
- 27155, /* A1 = -1.657410 */
- -32551, /* A2 = 0.993408 */
- -462, /* B2 = -0.014117 */
- 0, /* B1 = 0.000000 */
- 462, /* B0 = 0.014117 */
- 27097, /* A1 = -1.653870 */
- -32683, /* A2 = 0.997406 */
- 32495, /* B2 = 0.991699 */
- -26776, /* B1 = -1.634338 */
- 32495, /* B0 = 0.991699 */
- 27321, /* A1 = -1.667542 */
- -32684, /* A2 = 0.997467 */
- 1835, /* B2 = 0.056007 */
- -1539, /* B1 = -0.093948 */
- 1835, /* B0 = 0.056007 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f750_1450[] */
- 19298, /* A1 = 1.177917 */
- -24471, /* A2 = -0.746796 */
- -4152, /* B2 = -0.126709 */
- 0, /* B1 = 0 */
- 4152, /* B0 = 0.126709 */
- 12902, /* A1 = 0.787476 */
- -29091, /* A2 = -0.887817 */
- 12491, /* B2 = 0.38121 */
- -1794, /* B1 = -0.109528 */
- 12494, /* B0 = 0.381317 */
- 26291, /* A1 = 1.604736 */
- -30470, /* A2 = -0.929901 */
- 28859, /* B2 = 0.880737 */
- -26084, /* B1 = -1.592102 */
- 28861, /* B0 = 0.880798 */
- 7, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f770 */
- 26867, /* A1 = -1.639832 */
- -32551, /* A2 = 0.993408 */
- -123, /* B2 = -0.003755 */
- 0, /* B1 = 0.000000 */
- 123, /* B0 = 0.003755 */
- 26805, /* A1 = -1.636108 */
- -32683, /* A2 = 0.997406 */
- 17297, /* B2 = 0.527863 */
- -14096, /* B1 = -0.860382 */
- 17297, /* B0 = 0.527863 */
- 27034, /* A1 = -1.650085 */
- -32684, /* A2 = 0.997467 */
- 12958, /* B2 = 0.395477 */
- -10756, /* B1 = -0.656525 */
- 12958, /* B0 = 0.395477 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f800 */
- 26413, /* A1 = -1.612122 */
- -32547, /* A2 = 0.993286 */
- -223, /* B2 = -0.006825 */
- 0, /* B1 = 0.000000 */
- 223, /* B0 = 0.006825 */
- 26342, /* A1 = -1.607849 */
- -32686, /* A2 = 0.997498 */
- 6391, /* B2 = 0.195053 */
- -5120, /* B1 = -0.312531 */
- 6391, /* B0 = 0.195053 */
- 26593, /* A1 = -1.623108 */
- -32688, /* A2 = 0.997559 */
- 23681, /* B2 = 0.722717 */
- -19328, /* B1 = -1.179688 */
- 23681, /* B0 = 0.722717 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f816 */
- 26168, /* A1 = -1.597209 */
- -32528, /* A2 = 0.992706 */
- -235, /* B2 = -0.007182 */
- 0, /* B1 = 0.000000 */
- 235, /* B0 = 0.007182 */
- 26092, /* A1 = -1.592590 */
- -32675, /* A2 = 0.997192 */
- 20823, /* B2 = 0.635498 */
- -16510, /* B1 = -1.007751 */
- 20823, /* B0 = 0.635498 */
- 26363, /* A1 = -1.609070 */
- -32677, /* A2 = 0.997253 */
- 6739, /* B2 = 0.205688 */
- -5459, /* B1 = -0.333206 */
- 6739, /* B0 = 0.205688 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f850 */
- 25641, /* A1 = -1.565063 */
- -32536, /* A2 = 0.992950 */
- -121, /* B2 = -0.003707 */
- 0, /* B1 = 0.000000 */
- 121, /* B0 = 0.003707 */
- 25560, /* A1 = -1.560059 */
- -32684, /* A2 = 0.997437 */
- 18341, /* B2 = 0.559753 */
- -14252, /* B1 = -0.869904 */
- 18341, /* B0 = 0.559753 */
- 25837, /* A1 = -1.577026 */
- -32684, /* A2 = 0.997467 */
- 16679, /* B2 = 0.509003 */
- -13232, /* B1 = -0.807648 */
- 16679, /* B0 = 0.509003 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f857_1645[] */
- 16415, /* A1 = 1.001953 */
- -23669, /* A2 = -0.722321 */
- -4549, /* B2 = -0.138847 */
- 0, /* B1 = 0 */
- 4549, /* B0 = 0.138847 */
- 8456, /* A1 = 0.516174 */
- -28996, /* A2 = -0.884918 */
- 13753, /* B2 = 0.419724 */
- -12, /* B1 = -0.000763 */
- 13757, /* B0 = 0.419846 */
- 24632, /* A1 = 1.503418 */
- -30271, /* A2 = -0.923828 */
- 29070, /* B2 = 0.887146 */
- -25265, /* B1 = -1.542114 */
- 29073, /* B0 = 0.887268 */
- 7, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f900 */
- 24806, /* A1 = -1.514099 */
- -32501, /* A2 = 0.991852 */
- -326, /* B2 = -0.009969 */
- 0, /* B1 = 0.000000 */
- 326, /* B0 = 0.009969 */
- 24709, /* A1 = -1.508118 */
- -32659, /* A2 = 0.996674 */
- 20277, /* B2 = 0.618835 */
- -15182, /* B1 = -0.926636 */
- 20277, /* B0 = 0.618835 */
- 25022, /* A1 = -1.527222 */
- -32661, /* A2 = 0.996735 */
- 4320, /* B2 = 0.131836 */
- -3331, /* B1 = -0.203339 */
- 4320, /* B0 = 0.131836 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f900_1300[] */
- 19776, /* A1 = 1.207092 */
- -27437, /* A2 = -0.837341 */
- -2666, /* B2 = -0.081371 */
- 0, /* B1 = 0 */
- 2666, /* B0 = 0.081371 */
- 16302, /* A1 = 0.995026 */
- -30354, /* A2 = -0.926361 */
- 10389, /* B2 = 0.317062 */
- -3327, /* B1 = -0.203064 */
- 10389, /* B0 = 0.317062 */
- 24299, /* A1 = 1.483154 */
- -30930, /* A2 = -0.943909 */
- 25016, /* B2 = 0.763428 */
- -21171, /* B1 = -1.292236 */
- 25016, /* B0 = 0.763428 */
- 7, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f935_1215[] */
- 20554, /* A1 = 1.254517 */
- -28764, /* A2 = -0.877838 */
- -2048, /* B2 = -0.062515 */
- 0, /* B1 = 0 */
- 2048, /* B0 = 0.062515 */
- 18209, /* A1 = 1.11145 */
- -30951, /* A2 = -0.94458 */
- 9390, /* B2 = 0.286575 */
- -3955, /* B1 = -0.241455 */
- 9390, /* B0 = 0.286575 */
- 23902, /* A1 = 1.458923 */
- -31286, /* A2 = -0.954803 */
- 23252, /* B2 = 0.709595 */
- -19132, /* B1 = -1.167725 */
- 23252, /* B0 = 0.709595 */
- 7, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f941_1477[] */
- 17543, /* A1 = 1.07074 */
- -26220, /* A2 = -0.800201 */
- -3298, /* B2 = -0.100647 */
- 0, /* B1 = 0 */
- 3298, /* B0 = 0.100647 */
- 12423, /* A1 = 0.75827 */
- -30036, /* A2 = -0.916626 */
- 12651, /* B2 = 0.386078 */
- -2444, /* B1 = -0.14917 */
- 12653, /* B0 = 0.386154 */
- 23518, /* A1 = 1.435425 */
- -30745, /* A2 = -0.938293 */
- 27282, /* B2 = 0.832581 */
- -22529, /* B1 = -1.375122 */
- 27286, /* B0 = 0.832703 */
- 7, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f942 */
- 24104, /* A1 = -1.471252 */
- -32507, /* A2 = 0.992065 */
- -351, /* B2 = -0.010722 */
- 0, /* B1 = 0.000000 */
- 351, /* B0 = 0.010722 */
- 23996, /* A1 = -1.464600 */
- -32671, /* A2 = 0.997040 */
- 22848, /* B2 = 0.697266 */
- -16639, /* B1 = -1.015564 */
- 22848, /* B0 = 0.697266 */
- 24332, /* A1 = -1.485168 */
- -32673, /* A2 = 0.997101 */
- 4906, /* B2 = 0.149727 */
- -3672, /* B1 = -0.224174 */
- 4906, /* B0 = 0.149727 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f950 */
- 23967, /* A1 = -1.462830 */
- -32507, /* A2 = 0.992065 */
- -518, /* B2 = -0.015821 */
- 0, /* B1 = 0.000000 */
- 518, /* B0 = 0.015821 */
- 23856, /* A1 = -1.456055 */
- -32671, /* A2 = 0.997040 */
- 26287, /* B2 = 0.802246 */
- -19031, /* B1 = -1.161560 */
- 26287, /* B0 = 0.802246 */
- 24195, /* A1 = -1.476746 */
- -32673, /* A2 = 0.997101 */
- 2890, /* B2 = 0.088196 */
- -2151, /* B1 = -0.131317 */
- 2890, /* B0 = 0.088196 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f950_1400[] */
- 18294, /* A1 = 1.116638 */
- -26962, /* A2 = -0.822845 */
- -2914, /* B2 = -0.088936 */
- 0, /* B1 = 0 */
- 2914, /* B0 = 0.088936 */
- 14119, /* A1 = 0.861786 */
- -30227, /* A2 = -0.922455 */
- 11466, /* B2 = 0.349945 */
- -2833, /* B1 = -0.172943 */
- 11466, /* B0 = 0.349945 */
- 23431, /* A1 = 1.430115 */
- -30828, /* A2 = -0.940796 */
- 25331, /* B2 = 0.773071 */
- -20911, /* B1 = -1.276367 */
- 25331, /* B0 = 0.773071 */
- 7, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f975 */
- 23521, /* A1 = -1.435608 */
- -32489, /* A2 = 0.991516 */
- -193, /* B2 = -0.005915 */
- 0, /* B1 = 0.000000 */
- 193, /* B0 = 0.005915 */
- 23404, /* A1 = -1.428467 */
- -32655, /* A2 = 0.996582 */
- 17740, /* B2 = 0.541412 */
- -12567, /* B1 = -0.767029 */
- 17740, /* B0 = 0.541412 */
- 23753, /* A1 = -1.449829 */
- -32657, /* A2 = 0.996613 */
- 9090, /* B2 = 0.277405 */
- -6662, /* B1 = -0.406647 */
- 9090, /* B0 = 0.277405 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f1000 */
- 23071, /* A1 = -1.408203 */
- -32489, /* A2 = 0.991516 */
- -293, /* B2 = -0.008965 */
- 0, /* B1 = 0.000000 */
- 293, /* B0 = 0.008965 */
- 22951, /* A1 = -1.400818 */
- -32655, /* A2 = 0.996582 */
- 5689, /* B2 = 0.173645 */
- -3951, /* B1 = -0.241150 */
- 5689, /* B0 = 0.173645 */
- 23307, /* A1 = -1.422607 */
- -32657, /* A2 = 0.996613 */
- 18692, /* B2 = 0.570435 */
- -13447, /* B1 = -0.820770 */
- 18692, /* B0 = 0.570435 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f1020 */
- 22701, /* A1 = -1.385620 */
- -32474, /* A2 = 0.991058 */
- -292, /* B2 = -0.008933 */
- 0, /*163840 , B1 = 10.000000 */
- 292, /* B0 = 0.008933 */
- 22564, /* A1 = -1.377258 */
- -32655, /* A2 = 0.996552 */
- 20756, /* B2 = 0.633423 */
- -14176, /* B1 = -0.865295 */
- 20756, /* B0 = 0.633423 */
- 22960, /* A1 = -1.401428 */
- -32657, /* A2 = 0.996613 */
- 6520, /* B2 = 0.198990 */
- -4619, /* B1 = -0.281937 */
- 6520, /* B0 = 0.198990 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f1050 */
- 22142, /* A1 = -1.351501 */
- -32474, /* A2 = 0.991058 */
- -147, /* B2 = -0.004493 */
- 0, /* B1 = 0.000000 */
- 147, /* B0 = 0.004493 */
- 22000, /* A1 = -1.342834 */
- -32655, /* A2 = 0.996552 */
- 15379, /* B2 = 0.469360 */
- -10237, /* B1 = -0.624847 */
- 15379, /* B0 = 0.469360 */
- 22406, /* A1 = -1.367554 */
- -32657, /* A2 = 0.996613 */
- 17491, /* B2 = 0.533783 */
- -12096, /* B1 = -0.738312 */
- 17491, /* B0 = 0.533783 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f1100_1750[] */
- 12973, /* A1 = 0.79184 */
- -24916, /* A2 = -0.760376 */
- 6655, /* B2 = 0.203102 */
- 367, /* B1 = 0.0224 */
- 6657, /* B0 = 0.203171 */
- 5915, /* A1 = 0.361053 */
- -29560, /* A2 = -0.90213 */
- -7777, /* B2 = -0.23735 */
- 0, /* B1 = 0 */
- 7777, /* B0 = 0.23735 */
- 20510, /* A1 = 1.251892 */
- -30260, /* A2 = -0.923462 */
- 26662, /* B2 = 0.81366 */
- -20573, /* B1 = -1.255737 */
- 26668, /* B0 = 0.813843 */
- 7, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f1140 */
- 20392, /* A1 = -1.244629 */
- -32460, /* A2 = 0.990601 */
- -270, /* B2 = -0.008240 */
- 0, /* B1 = 0.000000 */
- 270, /* B0 = 0.008240 */
- 20218, /* A1 = -1.234009 */
- -32655, /* A2 = 0.996582 */
- 21337, /* B2 = 0.651154 */
- -13044, /* B1 = -0.796143 */
- 21337, /* B0 = 0.651154 */
- 20684, /* A1 = -1.262512 */
- -32657, /* A2 = 0.996643 */
- 8572, /* B2 = 0.261612 */
- -5476, /* B1 = -0.334244 */
- 8572, /* B0 = 0.261612 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f1200 */
- 19159, /* A1 = -1.169373 */
- -32456, /* A2 = 0.990509 */
- -335, /* B2 = -0.010252 */
- 0, /* B1 = 0.000000 */
- 335, /* B0 = 0.010252 */
- 18966, /* A1 = -1.157593 */
- -32661, /* A2 = 0.996735 */
- 6802, /* B2 = 0.207588 */
- -3900, /* B1 = -0.238098 */
- 6802, /* B0 = 0.207588 */
- 19467, /* A1 = -1.188232 */
- -32661, /* A2 = 0.996765 */
- 25035, /* B2 = 0.764008 */
- -15049, /* B1 = -0.918579 */
- 25035, /* B0 = 0.764008 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f1209 */
- 18976, /* A1 = -1.158264 */
- -32439, /* A2 = 0.989990 */
- -183, /* B2 = -0.005588 */
- 0, /* B1 = 0.000000 */
- 183, /* B0 = 0.005588 */
- 18774, /* A1 = -1.145874 */
- -32650, /* A2 = 0.996429 */
- 15468, /* B2 = 0.472076 */
- -8768, /* B1 = -0.535217 */
- 15468, /* B0 = 0.472076 */
- 19300, /* A1 = -1.177979 */
- -32652, /* A2 = 0.996490 */
- 19840, /* B2 = 0.605499 */
- -11842, /* B1 = -0.722809 */
- 19840, /* B0 = 0.605499 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f1330 */
- 16357, /* A1 = -0.998413 */
- -32368, /* A2 = 0.987793 */
- -217, /* B2 = -0.006652 */
- 0, /* B1 = 0.000000 */
- 217, /* B0 = 0.006652 */
- 16107, /* A1 = -0.983126 */
- -32601, /* A2 = 0.994904 */
- 11602, /* B2 = 0.354065 */
- -5555, /* B1 = -0.339111 */
- 11602, /* B0 = 0.354065 */
- 16722, /* A1 = -1.020630 */
- -32603, /* A2 = 0.994965 */
- 15574, /* B2 = 0.475311 */
- -8176, /* B1 = -0.499069 */
- 15574, /* B0 = 0.475311 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f1336 */
- 16234, /* A1 = -0.990875 */
- 32404, /* A2 = -0.988922 */
- -193, /* B2 = -0.005908 */
- 0, /* B1 = 0.000000 */
- 193, /* B0 = 0.005908 */
- 15986, /* A1 = -0.975769 */
- -32632, /* A2 = 0.995880 */
- 18051, /* B2 = 0.550903 */
- -8658, /* B1 = -0.528473 */
- 18051, /* B0 = 0.550903 */
- 16591, /* A1 = -1.012695 */
- -32634, /* A2 = 0.995941 */
- 15736, /* B2 = 0.480240 */
- -8125, /* B1 = -0.495926 */
- 15736, /* B0 = 0.480240 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f1366 */
- 15564, /* A1 = -0.949982 */
- -32404, /* A2 = 0.988922 */
- -269, /* B2 = -0.008216 */
- 0, /* B1 = 0.000000 */
- 269, /* B0 = 0.008216 */
- 15310, /* A1 = -0.934479 */
- -32632, /* A2 = 0.995880 */
- 10815, /* B2 = 0.330063 */
- -4962, /* B1 = -0.302887 */
- 10815, /* B0 = 0.330063 */
- 15924, /* A1 = -0.971924 */
- -32634, /* A2 = 0.995941 */
- 18880, /* B2 = 0.576172 */
- -9364, /* B1 = -0.571594 */
- 18880, /* B0 = 0.576172 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f1380 */
- 15247, /* A1 = -0.930603 */
- -32397, /* A2 = 0.988708 */
- -244, /* B2 = -0.007451 */
- 0, /* B1 = 0.000000 */
- 244, /* B0 = 0.007451 */
- 14989, /* A1 = -0.914886 */
- -32627, /* A2 = 0.995697 */
- 18961, /* B2 = 0.578644 */
- -8498, /* B1 = -0.518707 */
- 18961, /* B0 = 0.578644 */
- 15608, /* A1 = -0.952667 */
- -32628, /* A2 = 0.995758 */
- 11145, /* B2 = 0.340134 */
- -5430, /* B1 = -0.331467 */
- 11145, /* B0 = 0.340134 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f1400 */
- 14780, /* A1 = -0.902130 */
- -32393, /* A2 = 0.988586 */
- -396, /* B2 = -0.012086 */
- 0, /* B1 = 0.000000 */
- 396, /* B0 = 0.012086 */
- 14510, /* A1 = -0.885651 */
- -32630, /* A2 = 0.995819 */
- 6326, /* B2 = 0.193069 */
- -2747, /* B1 = -0.167671 */
- 6326, /* B0 = 0.193069 */
- 15154, /* A1 = -0.924957 */
- -32632, /* A2 = 0.995850 */
- 23235, /* B2 = 0.709076 */
- -10983, /* B1 = -0.670380 */
- 23235, /* B0 = 0.709076 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f1477 */
- 13005, /* A1 = -0.793793 */
- -32368, /* A2 = 0.987823 */
- -500, /* B2 = -0.015265 */
- 0, /* B1 = 0.000000 */
- 500, /* B0 = 0.015265 */
- 12708, /* A1 = -0.775665 */
- -32615, /* A2 = 0.995331 */
- 11420, /* B2 = 0.348526 */
- -4306, /* B1 = -0.262833 */
- 11420, /* B0 = 0.348526 */
- 13397, /* A1 = -0.817688 */
- -32615, /* A2 = 0.995361 */
- 9454, /* B2 = 0.288528 */
- -3981, /* B1 = -0.243027 */
- 9454, /* B0 = 0.288528 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f1600 */
- 10046, /* A1 = -0.613190 */
- -32331, /* A2 = 0.986694 */
- -455, /* B2 = -0.013915 */
- 0, /* B1 = 0.000000 */
- 455, /* B0 = 0.013915 */
- 9694, /* A1 = -0.591705 */
- -32601, /* A2 = 0.994934 */
- 6023, /* B2 = 0.183815 */
- -1708, /* B1 = -0.104279 */
- 6023, /* B0 = 0.183815 */
- 10478, /* A1 = -0.639587 */
- -32603, /* A2 = 0.994965 */
- 22031, /* B2 = 0.672333 */
- -7342, /* B1 = -0.448151 */
- 22031, /* B0 = 0.672333 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f1633_1638[] */
- 9181, /* A1 = 0.560394 */
- -32256, /* A2 = -0.984375 */
- -556, /* B2 = -0.016975 */
- 0, /* B1 = 0 */
- 556, /* B0 = 0.016975 */
- 8757, /* A1 = 0.534515 */
- -32574, /* A2 = -0.99408 */
- 8443, /* B2 = 0.25769 */
- -2135, /* B1 = -0.130341 */
- 8443, /* B0 = 0.25769 */
- 9691, /* A1 = 0.591522 */
- -32574, /* A2 = -0.99411 */
- 15446, /* B2 = 0.471375 */
- -4809, /* B1 = -0.293579 */
- 15446, /* B0 = 0.471375 */
- 7, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f1800 */
- 5076, /* A1 = -0.309875 */
- -32304, /* A2 = 0.985840 */
- -508, /* B2 = -0.015503 */
- 0, /* B1 = 0.000000 */
- 508, /* B0 = 0.015503 */
- 4646, /* A1 = -0.283600 */
- -32605, /* A2 = 0.995026 */
- 6742, /* B2 = 0.205780 */
- -878, /* B1 = -0.053635 */
- 6742, /* B0 = 0.205780 */
- 5552, /* A1 = -0.338928 */
- -32605, /* A2 = 0.995056 */
- 23667, /* B2 = 0.722260 */
- -4297, /* B1 = -0.262329 */
- 23667, /* B0 = 0.722260 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- { /* f1860 */
- 3569, /* A1 = -0.217865 */
- -32292, /* A2 = 0.985504 */
- -239, /* B2 = -0.007322 */
- 0, /* B1 = 0.000000 */
- 239, /* B0 = 0.007322 */
- 3117, /* A1 = -0.190277 */
- -32603, /* A2 = 0.994965 */
- 18658, /* B2 = 0.569427 */
- -1557, /* B1 = -0.095032 */
- 18658, /* B0 = 0.569427 */
- 4054, /* A1 = -0.247437 */
- -32603, /* A2 = 0.994965 */
- 18886, /* B2 = 0.576385 */
- -2566, /* B1 = -0.156647 */
- 18886, /* B0 = 0.576385 */
- 5, /* Internal filter scaling */
- 159, /* Minimum in-band energy threshold */
- 21, /* 21/32 in-band to broad-band ratio */
- 0x0FF5 /* shift-mask 0x0FF (look at 16 half-frames) bit count = 5 */
- },
- };
- static int ixj_init_filter(IXJ *j, IXJ_FILTER * jf)
- {
- unsigned short cmd;
- int cnt, max;
- if (jf->filter > 3) {
- return -1;
- }
- if (ixj_WriteDSPCommand(0x5154 + jf->filter, j)) /* Select Filter */
- return -1;
- if (!jf->enable) {
- if (ixj_WriteDSPCommand(0x5152, j)) /* Disable Filter */
- return -1;
- else
- return 0;
- } else {
- if (ixj_WriteDSPCommand(0x5153, j)) /* Enable Filter */
- return -1;
- /* Select the filter (f0 - f3) to use. */
- if (ixj_WriteDSPCommand(0x5154 + jf->filter, j))
- return -1;
- }
- if (jf->freq < 12 && jf->freq > 3) {
- /* Select the frequency for the selected filter. */
- if (ixj_WriteDSPCommand(0x5170 + jf->freq, j))
- return -1;
- } else if (jf->freq > 11) {
- /* We need to load a programmable filter set for undefined */
- /* frequencies. So we will point the filter to a programmable set. */
- /* Since there are only 4 filters and 4 programmable sets, we will */
- /* just point the filter to the same number set and program it for the */
- /* frequency we want. */
- if (ixj_WriteDSPCommand(0x5170 + jf->filter, j))
- return -1;
- if (j->ver.low != 0x12) {
- cmd = 0x515B;
- max = 19;
- } else {
- cmd = 0x515E;
- max = 15;
- }
- if (ixj_WriteDSPCommand(cmd, j))
- return -1;
- for (cnt = 0; cnt < max; cnt++) {
- if (ixj_WriteDSPCommand(tone_table[jf->freq - 12][cnt], j))
- return -1;
- }
- }
- j->filter_en[jf->filter] = jf->enable;
- return 0;
- }
- static int ixj_init_filter_raw(IXJ *j, IXJ_FILTER_RAW * jfr)
- {
- unsigned short cmd;
- int cnt, max;
- if (jfr->filter > 3) {
- return -1;
- }
- if (ixj_WriteDSPCommand(0x5154 + jfr->filter, j)) /* Select Filter */
- return -1;
- if (!jfr->enable) {
- if (ixj_WriteDSPCommand(0x5152, j)) /* Disable Filter */
- return -1;
- else
- return 0;
- } else {
- if (ixj_WriteDSPCommand(0x5153, j)) /* Enable Filter */
- return -1;
- /* Select the filter (f0 - f3) to use. */
- if (ixj_WriteDSPCommand(0x5154 + jfr->filter, j))
- return -1;
- }
- /* We need to load a programmable filter set for undefined */
- /* frequencies. So we will point the filter to a programmable set. */
- /* Since there are only 4 filters and 4 programmable sets, we will */
- /* just point the filter to the same number set and program it for the */
- /* frequency we want. */
- if (ixj_WriteDSPCommand(0x5170 + jfr->filter, j))
- return -1;
- if (j->ver.low != 0x12) {
- cmd = 0x515B;
- max = 19;
- } else {
- cmd = 0x515E;
- max = 15;
- }
- if (ixj_WriteDSPCommand(cmd, j))
- return -1;
- for (cnt = 0; cnt < max; cnt++) {
- if (ixj_WriteDSPCommand(jfr->coeff[cnt], j))
- return -1;
- }
- j->filter_en[jfr->filter] = jfr->enable;
- return 0;
- }
- static int ixj_init_tone(IXJ *j, IXJ_TONE * ti)
- {
- int freq0, freq1;
- unsigned short data;
- if (ti->freq0) {
- freq0 = ti->freq0;
- } else {
- freq0 = 0x7FFF;
- }
- if (ti->freq1) {
- freq1 = ti->freq1;
- } else {
- freq1 = 0x7FFF;
- }
- if(ti->tone_index > 12 && ti->tone_index < 28)
- {
- if (ixj_WriteDSPCommand(0x6800 + ti->tone_index, j))
- return -1;
- if (ixj_WriteDSPCommand(0x6000 + (ti->gain1 << 4) + ti->gain0, j))
- return -1;
- data = freq0;
- if (ixj_WriteDSPCommand(data, j))
- return -1;
- data = freq1;
- if (ixj_WriteDSPCommand(data, j))
- return -1;
- }
- return freq0;
- }