diff options
Diffstat (limited to 'wct4xxp.c')
-rwxr-xr-x | wct4xxp.c | 21 |
1 files changed, 8 insertions, 13 deletions
@@ -1375,25 +1375,20 @@ static int t4_startup(struct zt_span *span) } else { /* is a T1 card */ __t4_configure_t1(wc, span->offset, span->lineconfig, span->txlevel); } + /* Note clear channel status */ + wc->tspans[span->offset]->notclear = 0; __set_clear(wc, span->offset); if (!alreadyrunning) { span->flags |= ZT_FLAG_RUNNING; wc->spansstarted++; - /* enable interrupts */ + /* enable interrupts */ /* Start DMA, enabling DMA interrupts on read only */ - if (ts->spanflags & FLAG_2NDGEN) -#ifdef VPM_SUPPORT - wc->dmactrl = 0xc0000000 | (1 << 29) | wc->vpm; -#else - wc->dmactrl = 0xc0000000 | (1 << 29); -#endif - else + wc->dmactrl = 1 << 29; + wc->dmactrl |= (ts->spanflags & FLAG_2NDGEN) ? 0xc0000000 : 0xc0000003; #ifdef VPM_SUPPORT - wc->dmactrl = 0xc0000003 | (1 << 29) | wc->vpm; -#else - wc->dmactrl = 0xc0000003 | (1 << 29); + wc->dmactrl |= wc->vpm; #endif if (noburst) wc->dmactrl |= (1 << 26); @@ -1413,8 +1408,8 @@ static int t4_startup(struct zt_span *span) } #ifdef VPM_SUPPORT if (!alreadyrunning && !wc->vpm) { - wait_a_little(); - t4_vpm_init(wc); + wait_a_little(); + t4_vpm_init(wc); } #endif printk("Completed startup!\n"); |