diff options
Diffstat (limited to 'xpp/xpp_zap.c')
-rw-r--r-- | xpp/xpp_zap.c | 168 |
1 files changed, 83 insertions, 85 deletions
diff --git a/xpp/xpp_zap.c b/xpp/xpp_zap.c index dcbb435..77f3437 100644 --- a/xpp/xpp_zap.c +++ b/xpp/xpp_zap.c @@ -190,8 +190,7 @@ static void sync_master_is(xbus_t *xbus) xpd_t *xpd = (xbus)? xpd_of(xbus, 0) : NULL; if(xbus && !xpd) { - NOTICE("Cannot set sync master to %s (has no XPD #0).\n", - xbus->busname); + XBUS_NOTICE(xbus, "Cannot set sync master (has no XPD #0).\n"); xbus = NULL; /* Fallback to HOST */ } DBG("SYNC MASTER CHANGING: %s => %s\n", @@ -231,15 +230,16 @@ static inline void send_pcm_frame(xbus_t *xbus, xframe_t *xframe) sec_diff = now.tv_sec - xbus->last_tx_sync.tv_sec; usec_diff = sec_diff * 1000000 + (now.tv_usec - xbus->last_tx_sync.tv_usec); if(unlikely(abs(sec_diff) > 2)) { - DBG("%s: PCM TX timing restart (sec_diff=%ld)\n", - xbus->busname, sec_diff); + XBUS_DBG(xbus, "PCM TX timing restart (sec_diff=%ld)\n", sec_diff); xbus->last_tx_sync = now; goto dropit; } if(abs(usec_diff - 1000) > TICK_TOLERANCE) { - if(print_dbg && printk_ratelimit()) - DBG("%s: Bad PCM TX timing: usec_diff=%ld.\n", - xbus->busname, usec_diff); + static int rate_limit; + + if((rate_limit++ % 5003) == 0) + XBUS_DBG(xbus, "Bad PCM TX timing(%d): usec_diff=%ld.\n", + rate_limit, usec_diff); } if(usec_diff > xbus->max_tx_sync) xbus->max_tx_sync = usec_diff; @@ -372,7 +372,7 @@ static void xbus_tick(xbus_t *xbus) if(!xframe) { /* Alloc frame */ xframe = xbus->ops->xframe_new(xbus, GFP_ATOMIC); if (!xframe) { - ERR("%s: failed to allocate new xframe\n", __FUNCTION__); + XBUS_ERR(xbus, "%s: failed to allocate new xframe\n", __FUNCTION__); return; } } @@ -435,7 +435,7 @@ void xpp_tick(unsigned long param) if (!xbus->hardware_exists) continue; if(!down_read_trylock(&xbus->in_use)) { - DBG("Dropped packet. %s is in_use\n", xbus->busname); + XBUS_DBG(xbus, "Dropped packet. Is in_use\n"); continue; } /* Reset sync LEDs once in a while */ @@ -444,7 +444,7 @@ void xpp_tick(unsigned long param) if(atomic_dec_and_test(&xbus->pcm_nesting)) { xbus_tick(xbus); } else { - ERR("%s: NESTING ATTEMPT: %d\n", xbus->busname, atomic_read(&xbus->pcm_nesting)); + XBUS_ERR(xbus, "NESTING ATTEMPT: %d\n", atomic_read(&xbus->pcm_nesting)); } atomic_inc(&xbus->pcm_nesting); up_read(&xbus->in_use); @@ -460,8 +460,7 @@ void got_sync_from(xpd_t *xpd) static int rate_limit; if((rate_limit++ % 1003) == 0) - DBG("%s/%s: is not SYNC master. Go away! (%d)\n", - xbus->busname, xpd->xpdname, rate_limit); + XPD_DBG(xpd, "is not SYNC master. Go away! (%d)\n", rate_limit); return; } atomic_inc(&missed_ticks); @@ -489,7 +488,7 @@ static void send_drift(int drift) msg = "up"; else msg = "down"; - DBG("DRIFT adjust %s (%d) (last update %ld seconds ago)\n", + XBUS_DBG(xbus, "DRIFT adjust %s (%d) (last update %ld seconds ago)\n", msg, drift, now.tv_sec - xbus->pll_updated_at); CALL_PROTO(GLOBAL, SYNC_SOURCE, xbus, NULL, SYNC_MODE_PLL, drift); xbus->pll_updated_at = now.tv_sec; @@ -570,30 +569,30 @@ static void xpd_free(xpd_t *xpd) xbus = xpd->xbus; if(!xbus) return; - DBG("%s/%s\n", xbus->busname, xpd->xpdname); - xbus_unregister_xpd(xbus, xpd); + XPD_DBG(xpd, "\n"); #ifdef CONFIG_PROC_FS if(xpd->proc_xpd_dir) { if(xpd->proc_xpd_summary) { - DBG("Removing proc '%s' for %s/%s\n", PROC_XPD_SUMMARY, xbus->busname, xpd->xpdname); + XPD_DBG(xpd, "Removing proc '%s'\n", PROC_XPD_SUMMARY); remove_proc_entry(PROC_XPD_SUMMARY, xpd->proc_xpd_dir); xpd->proc_xpd_summary = NULL; } if(xpd->proc_xpd_ztregister) { - DBG("Removing proc '%s' for %s/%s\n", PROC_XPD_ZTREGISTER, xbus->busname, xpd->xpdname); + XPD_DBG(xpd, "Removing proc '%s'\n", PROC_XPD_ZTREGISTER); remove_proc_entry(PROC_XPD_ZTREGISTER, xpd->proc_xpd_dir); xpd->proc_xpd_ztregister = NULL; } if(xpd->proc_xpd_blink) { - DBG("Removing proc '%s' for %s/%s\n", PROC_XPD_BLINK, xbus->busname, xpd->xpdname); + XPD_DBG(xpd, "Removing proc '%s'\n", PROC_XPD_BLINK); remove_proc_entry(PROC_XPD_BLINK, xpd->proc_xpd_dir); xpd->proc_xpd_blink = NULL; } - DBG("Removing proc directory for %s/%s\n", xbus->busname, xpd->xpdname); + XPD_DBG(xpd, "Removing proc directory\n"); remove_proc_entry(xpd->xpdname, xbus->proc_xbus_dir); xpd->proc_xpd_dir = NULL; } #endif + xbus_unregister_xpd(xbus, xpd); if(xpd->readchunk) kfree((void *)xpd->readchunk); xpd->readchunk = NULL; @@ -632,6 +631,7 @@ void card_detected(struct card_desc_struct *card_desc) xbus_t *xbus; xpd_t *xpd = NULL; byte type; + byte subtype; int unit; int subunit; byte rev; @@ -643,56 +643,57 @@ void card_detected(struct card_desc_struct *card_desc) BUG_ON(card_desc->magic != CARD_DESC_MAGIC); xbus = card_desc->xbus; type = card_desc->type; + subtype = card_desc->subtype; unit = card_desc->xpd_addr.unit; subunit = card_desc->xpd_addr.subunit; rev = card_desc->rev; BUG_ON(!xbus); if(!good_rev(rev)) { - NOTICE("%s: XPD at %d%d: type=%d has bad firmware revision %d.%d\n", - xbus->busname, + XBUS_NOTICE(xbus, "XPD at %d%d: type=%d.%d has bad firmware revision %d.%d\n", unit, subunit, - type, rev / 10, rev % 10); + type, subtype, + rev / 10, rev % 10); goto err; } - INFO("%s: New XPD at %d%d type=%d Revision %d.%d\n", xbus->busname, - unit, subunit, type, rev / 10, rev % 10); + XBUS_INFO(xbus, "New XPD at %d%d type=%d.%d Revision %d.%d\n", + unit, subunit, type, subtype, rev / 10, rev % 10); xpd = xpd_byaddr(xbus, unit, subunit); if(xpd) { if(type == XPD_TYPE_NOMODULE) { - NOTICE("%s: XPD at %d%d removed\n", __FUNCTION__, + XBUS_NOTICE(xbus, "XPD at %d%d removed\n", unit, subunit); BUG(); goto out; } - NOTICE("%s: XPD at %d%d already exists\n", __FUNCTION__, + XPD_NOTICE(xpd, "XPD at %d%d already exists\n", unit, subunit); goto out; } if(type == XPD_TYPE_NOMODULE) { - NOTICE("%s: XPD at %d%d Missing\n", __FUNCTION__, + XBUS_NOTICE(xbus, "XPD at %d%d Missing\n", unit, subunit); goto out; } proto_table = xproto_get(type); if(!proto_table) { - NOTICE("%s: XPD at %d%d: missing protocol table for type=%d. Ignored.\n", - __FUNCTION__, + XBUS_NOTICE(xbus, "XPD at %d%d: missing protocol table for type=%d. Ignored.\n", unit, subunit, type); goto out; } xops = &proto_table->xops; BUG_ON(!xops); - xpd = xops->card_new(xbus, unit, subunit, proto_table, rev); + xpd = xops->card_new(xbus, unit, subunit, proto_table, subtype, rev); if(!xpd) { - NOTICE("card_new(%s,%d,%d,%d,%d) failed. Ignored.\n", - xbus->busname, unit, subunit, proto_table->type, rev); + XBUS_NOTICE(xbus, "card_new(%d,%d,%d,%d,%d) failed. Ignored.\n", + unit, subunit, proto_table->type, subtype, rev); xproto_put(xpd->xproto); goto err; } xpd->addr = card_desc->xpd_addr; xpd->xbus_idx = XPD_IDX(unit,subunit); snprintf(xpd->xpdname, XPD_NAMELEN, "XPD-%1d%1d", unit, subunit); + xpd->subtype = card_desc->subtype; xpd->offhook = card_desc->line_status; /* For USB-1 disable some channels */ @@ -701,26 +702,27 @@ void card_detected(struct card_desc_struct *card_desc) no_pcm = 0x7F | xpd->digital_outputs | xpd->digital_inputs; xpd->no_pcm = no_pcm; - NOTICE("%s: max packet size = %d, disabling some PCM channels. no_pcm=0x%04X\n", - xbus->busname, xbus->max_packet_size, xpd->no_pcm); + XBUS_NOTICE(xbus, "max packet size = %d, disabling some PCM channels. no_pcm=0x%04X\n", + xbus->max_packet_size, xpd->no_pcm); } + xbus_register_xpd(xbus, xpd); #ifdef CONFIG_PROC_FS - DBG("Creating xpd proc directory for %s/%s\n", xbus->busname, xpd->xpdname); + XPD_DBG(xpd, "Creating proc directory\n"); xpd->proc_xpd_dir = proc_mkdir(xpd->xpdname, xbus->proc_xbus_dir); if(!xpd->proc_xpd_dir) { - ERR("Failed to create proc directory for %s/%s\n", xbus->busname, xpd->xpdname); + XPD_ERR(xpd, "Failed to create proc directory\n"); goto err; } xpd->proc_xpd_summary = create_proc_read_entry(PROC_XPD_SUMMARY, 0444, xpd->proc_xpd_dir, xpd_read_proc, xpd); if(!xpd->proc_xpd_summary) { - ERR("Failed to create proc '%s' for %s/%s\n", PROC_XPD_SUMMARY, xbus->busname, xpd->xpdname); + XPD_ERR(xpd, "Failed to create proc file '%s'\n", PROC_XPD_SUMMARY); goto err; } xpd->proc_xpd_summary->owner = THIS_MODULE; xpd->proc_xpd_ztregister = create_proc_entry(PROC_XPD_ZTREGISTER, 0644, xpd->proc_xpd_dir); if (!xpd->proc_xpd_ztregister) { - ERR("Failed to create proc '%s' for %s/%s\n", PROC_XPD_ZTREGISTER, xbus->busname, xpd->xpdname); + XPD_ERR(xpd, "Failed to create proc file '%s'\n", PROC_XPD_ZTREGISTER); goto err; } xpd->proc_xpd_ztregister->owner = THIS_MODULE; @@ -729,7 +731,7 @@ void card_detected(struct card_desc_struct *card_desc) xpd->proc_xpd_ztregister->write_proc = proc_xpd_ztregister_write; xpd->proc_xpd_blink = create_proc_entry(PROC_XPD_BLINK, 0644, xpd->proc_xpd_dir); if (!xpd->proc_xpd_blink) { - ERR("Failed to create proc '%s' for %s/%s\n", PROC_XPD_BLINK, xbus->busname, xpd->xpdname); + XPD_ERR(xpd, "Failed to create proc file '%s'\n", PROC_XPD_BLINK); goto err; } xpd->proc_xpd_blink->owner = THIS_MODULE; @@ -737,7 +739,6 @@ void card_detected(struct card_desc_struct *card_desc) xpd->proc_xpd_blink->read_proc = proc_xpd_blink_read; xpd->proc_xpd_blink->write_proc = proc_xpd_blink_write; #endif - xbus_register_xpd(xbus, xpd); if(CALL_XMETHOD(card_init, xbus, xpd) < 0) goto err; CALL_XMETHOD(XPD_STATE, xbus, xpd, 0); /* Turn off all channels */ @@ -792,7 +793,8 @@ static int xpd_read_proc(char *page, char **start, off_t off, int count, int *eo (xpd == sync_master) ? "SYNC MASTER" : "SYNC SLAVE", xpd->timer_count, xpd->span.mainttimer ); - len += sprintf(page + len, "Address: U=%d S=%d\n\n", xpd->addr.unit, xpd->addr.subunit); + len += sprintf(page + len, "Address: U=%d S=%d\n", xpd->addr.unit, xpd->addr.subunit); + len += sprintf(page + len, "Type: %d.%d\n\n", xpd->type, xpd->subtype); len += sprintf(page + len, "pcm_len=%d\n\n", xpd->pcm_len); len += sprintf(page + len, "wanted_pcm_mask=0x%04X\n\n", xpd->wanted_pcm_mask); len += sprintf(page + len, "STATES:"); @@ -812,6 +814,10 @@ static int xpd_read_proc(char *page, char **start, off_t off, int count, int *eo for_each_line(xpd, i) { len += sprintf(page + len, "%d ", IS_SET(xpd->cid_on, i)); } + len += sprintf(page + len, "\n\t%-17s: ", "msg_waiting"); + for_each_line(xpd, i) { + len += sprintf(page + len, "%d ", IS_SET(xpd->msg_waiting, i)); + } len += sprintf(page + len, "\n\t%-17s: ", "ringing"); for_each_line(xpd, i) { len += sprintf(page + len, "%d ", xpd->ringing[i]); @@ -898,7 +904,7 @@ xpd_t *xpd_alloc(size_t privsize, const xproto_table_t *proto_table, int channel size_t alloc_size = sizeof(xpd_t) + privsize; int type = proto_table->type; - DBG("%s: type=%d channels=%d\n", __FUNCTION__, type, channels); + DBG("type=%d channels=%d\n", type, channels); if(channels > CHANNELS_PERXPD) { ERR("%s: type=%d: too many channels %d\n", __FUNCTION__, type, channels); @@ -971,7 +977,7 @@ void xpd_disconnect(xpd_t *xpd) sync_master_is(NULL); spin_lock_irqsave(&xpd->lock, flags); - DBG("%s/%s (%p)\n", xpd->xbus->busname, xpd->xpdname, xpd->xproto); + XPD_DBG(xpd, "(%p)\n", xpd->xproto); if(!xpd->card_present) /* Multiple reports */ goto out; xpd->card_present = 0; @@ -980,7 +986,7 @@ void xpd_disconnect(xpd_t *xpd) update_xpd_status(xpd, ZT_ALARM_NOTOPEN); /* TODO: Should this be done before releasing the spinlock? */ - DBG("Queuing ZT_EVENT_REMOVED on all channels to ask user to release them\n"); + XPD_DBG(xpd, "Queuing ZT_EVENT_REMOVED on all channels to ask user to release them\n"); for (i=0; i<xpd->span.channels; i++) zt_qevent_lock(&xpd->chans[i],ZT_EVENT_REMOVED); } @@ -994,8 +1000,7 @@ void xpd_remove(xpd_t *xpd) BUG_ON(!xpd); xbus = xpd->xbus; - INFO("%s: Remove XPD-%1d%1d\n", xbus->busname, - xpd->addr.unit, xpd->addr.subunit); + XPD_INFO(xpd, "Remove\n"); zaptel_unregister_xpd(xpd); CALL_XMETHOD(card_remove, xbus, xpd); xpd_free(xpd); @@ -1006,7 +1011,7 @@ void update_xpd_status(xpd_t *xpd, int alarm_flag) struct zt_span *span = &xpd->span; if(!SPAN_REGISTERED(xpd)) { - // NOTICE("%s: %s is not registered. Skipping.\n", __FUNCTION__, xpd->xpdname); + // XPD_NOTICE(xpd, "%s: XPD is not registered. Skipping.\n", __FUNCTION__); return; } switch (alarm_flag) { @@ -1021,7 +1026,7 @@ void update_xpd_status(xpd_t *xpd, int alarm_flag) return; span->alarms = alarm_flag; zt_alarm_notify(span); - DBG("Update XPD alarms: %s -> %02X\n", xpd->span.name, alarm_flag); + XPD_DBG(xpd, "Update XPD alarms: %s -> %02X\n", xpd->span.name, alarm_flag); } void update_line_status(xpd_t *xpd, int pos, bool to_offhook) @@ -1042,8 +1047,7 @@ void update_line_status(xpd_t *xpd, int pos, bool to_offhook) * it may call back into our xpp_hooksig() and cause * a nested spinlock scenario */ - DBG("%s/%s/%d: rxsig=%s\n", xpd->xbus->busname, xpd->xpdname, pos, - (rxsig == ZT_RXSIG_ONHOOK) ? "ONHOOK" : "OFFHOOK"); + LINE_DBG(xpd, pos, "rxsig=%s\n", (rxsig == ZT_RXSIG_ONHOOK) ? "ONHOOK" : "OFFHOOK"); if(SPAN_REGISTERED(xpd)) zt_hooksig(&xpd->chans[pos], rxsig); } @@ -1205,8 +1209,7 @@ static int proc_xpd_ztregister_write(struct file *file, const char __user *buffe ret = sscanf(buf, "%d", &zt_reg); if(ret != 1) return -EINVAL; - DBG("%s: %s/%s %s\n", __FUNCTION__, - xpd->xbus->busname, xpd->xpdname, (zt_reg) ? "register" : "unregister"); + XPD_DBG(xpd, "%s\n", (zt_reg) ? "register" : "unregister"); if(zt_reg) ret = zaptel_register_xpd(xpd); else @@ -1252,8 +1255,7 @@ static int proc_xpd_blink_write(struct file *file, const char __user *buffer, un ret = sscanf(buf, "%d", &blink); if(ret != 1) return -EINVAL; - DBG("%s: %s/%s %s\n", __FUNCTION__, - xpd->xbus->busname, xpd->xpdname, (blink) ? "blink" : "unblink"); + XPD_DBG(xpd, "%s\n", (blink) ? "blink" : "unblink"); xpd->blink_mode = blink; return count; } @@ -1265,30 +1267,29 @@ static int proc_xpd_blink_write(struct file *file, const char __user *buffer, un /*------------------------- Zaptel Interfaces ----------------------*/ -void pcm_recompute(xpd_t *xpd) +void pcm_recompute(xpd_t *xpd, xpp_line_t pcm_mask) { int i; - xpp_line_t tmp_pcm_mask; int line_count = 0; unsigned long flags; - tmp_pcm_mask = (xpd->offhook | xpd->cid_on) & ~xpd->digital_signalling; /* without D-Channel */ + pcm_mask &= ~xpd->digital_signalling; /* without D-Channel */ for_each_line(xpd, i) - if(IS_SET(tmp_pcm_mask, i)) + if(IS_SET(pcm_mask, i)) line_count++; /* * FIXME: Workaround a bug in sync code of the Astribank. * Send dummy PCM for sync. */ - if(xpd->addr.unit == 0 && tmp_pcm_mask == 0) { - tmp_pcm_mask = BIT(0); + if(xpd->addr.unit == 0 && pcm_mask == 0) { + pcm_mask = BIT(0); line_count = 1; } spin_lock_irqsave(&xpd->lock, flags); xpd->pcm_len = (line_count) ? RPACKET_HEADERSIZE + sizeof(xpp_line_t) + line_count * ZT_CHUNKSIZE : 0L; - xpd->wanted_pcm_mask = tmp_pcm_mask; + xpd->wanted_pcm_mask = pcm_mask; spin_unlock_irqrestore(&xpd->lock, flags); } @@ -1349,7 +1350,7 @@ static void do_ec(xpd_t *xpd) #if WITH_ECHO_SUPPRESSION /* FIXME: need to Echo cancel double buffered data */ for (i = 0;i < xpd->span.channels; i++) { - if(unlikely(IS_SET(xpd->digital_signalling, i))) /* Don't echo cancel BRI D-chans */ + if(unlikely(IS_SET(xpd->digital_signalling, i))) /* Don't echo cancel PRI/BRI D-chans */ continue; #ifdef XPP_EC_CHUNK /* even if defined, parameterr xpp_ec can override at run-time */ @@ -1376,7 +1377,7 @@ static void xpp_receiveprep(xpd_t *xpd) spin_lock_irqsave(&xpd->lock, flags); // if((xpd->timer_count % 1000) == 0) - // DBG("%d\n", xpd->timer_count); + // XPD_DBG(xpd, "%d\n", xpd->timer_count); if (xpd->timer_count & 1) { /* First part */ @@ -1452,7 +1453,7 @@ int xpp_close(struct zt_chan *chan) xpd->xops->card_close(xpd, pos); DBG("chan=%d (open_counter=%d, should_remove=%d)\n", pos, xbus->open_counter, should_remove); if(should_remove) { - DBG("Going to remove: %s\n", xbus->busname); + XBUS_DBG(xbus, "Going to remove\n"); xbus_remove(xbus); } return 0; @@ -1509,7 +1510,7 @@ int xpp_maint(struct zt_span *span, int cmd) #endif BUG_ON(!xpd); - DBG("%s: span->mainttimer=%d\n", __FUNCTION__, span->mainttimer); + DBG("span->mainttimer=%d\n", span->mainttimer); switch(cmd) { case ZT_MAINT_NONE: printk("XXX Turn off local and remote loops XXX\n"); @@ -1619,7 +1620,7 @@ static int zaptel_unregister_xpd(xpd_t *xpd) spin_lock_irqsave(&xpd->lock, flags); if(!SPAN_REGISTERED(xpd)) { - NOTICE("%s/%s is already unregistered\n", xpd->xbus->busname, xpd->xpdname); + XPD_NOTICE(xpd, "Already unregistered\n"); spin_unlock_irqrestore(&xpd->lock, flags); return -EIDRM; } @@ -1627,7 +1628,7 @@ static int zaptel_unregister_xpd(xpd_t *xpd) sync_master_is(NULL); // FIXME: it's better to elect a new prince update_xpd_status(xpd, ZT_ALARM_NOTOPEN); if(atomic_read(&xpd->open_counter)) { - NOTICE("%s/%s is busy (open_counter=%d). Skipping.\n", xpd->xbus->busname, xpd->xpdname, atomic_read(&xpd->open_counter)); + XPD_NOTICE(xpd, "Busy (open_counter=%d). Skipping.\n", atomic_read(&xpd->open_counter)); spin_unlock_irqrestore(&xpd->lock, flags); return -EBUSY; } @@ -1657,12 +1658,11 @@ static int zaptel_register_xpd(xpd_t *xpd) xbus = xpd->xbus; if (SPAN_REGISTERED(xpd)) { - ERR("xpd %s already registered\n", xpd->xpdname); + XPD_ERR(xpd, "Already registered\n"); return -EEXIST; } cn = xpd->channels; - DBG("%s/%s: Initializing span: %d channels.\n", - xbus->busname, xpd->xpdname, cn); + XPD_DBG(xpd, "Initializing span: %d channels.\n", cn); memset(xpd->chans, 0, sizeof(struct zt_chan)*cn); memset(&xpd->span, 0, sizeof(struct zt_span)); @@ -1689,13 +1689,12 @@ static int zaptel_register_xpd(xpd_t *xpd) span->watchdog = xpp_watchdog; #endif - DBG("Registering span of %s.\n", xpd->xpdname); snprintf(xpd->span.desc, MAX_SPANDESC, "Xorcom XPD #%02d/%1d%1d: %s", xbus->num, xpd->addr.unit, xpd->addr.subunit, xpd->type_name); + XPD_DBG(xpd, "Registering span '%s'\n", xpd->span.desc); xpd->xops->card_zaptel_preregistration(xpd, 1); if(zt_register(&xpd->span, prefmaster)) { - xbus_t *xbus = xpd->xbus; - ERR("%s/%s: Failed to zt_register span\n", xbus->busname, xpd->xpdname); + XPD_ERR(xpd, "Failed to zt_register span\n"); return -ENODEV; } atomic_inc(&xpd->zt_registered); @@ -1716,8 +1715,7 @@ static int zaptel_register_xpd(xpd_t *xpd) struct zt_chan *chans = xpd->span.chans; if(IS_SET(xpd->offhook, cn)) { - NOTICE("%s/%s/%d: Report OFFHOOK to zaptel\n", - xbus->busname, xpd->xpdname, cn); + LINE_NOTICE(xpd, cn, "Report OFFHOOK to zaptel\n"); zt_hooksig(&chans[cn], ZT_RXSIG_OFFHOOK); } } @@ -1760,29 +1758,29 @@ int __init xpp_zap_init(void) int ret = 0; struct proc_dir_entry *ent; - INFO("%s revision %s MAX_XPDS=%d (%d*%d)\n", THIS_MODULE->name, XPP_VERSION, + INFO("revision %s MAX_XPDS=%d (%d*%d)\n", XPP_VERSION, MAX_XPDS, MAX_UNIT, MAX_SUBUNIT); #if WITH_ECHO_SUPPRESSION - INFO("FEATURE: %s with ECHO_SUPPRESSION\n", THIS_MODULE->name); + INFO("FEATURE: with ECHO_SUPPRESSION\n"); #else - INFO("FEATURE: %s without ECHO_SUPPRESSION\n", THIS_MODULE->name); + INFO("FEATURE: without ECHO_SUPPRESSION\n"); #endif if (xpp_ec) - INFO("FEATURE: %s with XPP_EC_CHUNK\n", THIS_MODULE->name); + INFO("FEATURE: with XPP_EC_CHUNK\n"); else - INFO("FEATURE: %s without XPP_EC_CHUNK\n", THIS_MODULE->name); + INFO("FEATURE: without XPP_EC_CHUNK\n"); #ifdef CONFIG_ZAPATA_BRI_DCHANS - INFO("FEATURE: %s with BRISTUFF support\n", THIS_MODULE->name); + INFO("FEATURE: with BRISTUFF support\n"); #else - INFO("FEATURE: %s without BRISTUFF support\n", THIS_MODULE->name); + INFO("FEATURE: without BRISTUFF support\n"); #endif #ifdef ZAPTEL_SYNC_TICK - INFO("FEATURE: %s with sync_tick() from ZAPTEL\n", THIS_MODULE->name); + INFO("FEATURE: with sync_tick() from ZAPTEL\n"); #else - INFO("FEATURE: %s without sync_tick() from ZAPTEL\n", THIS_MODULE->name); + INFO("FEATURE: without sync_tick() from ZAPTEL\n"); #endif #ifdef OPTIMIZE_CHANMUTE - INFO("FEATURE: %s with CHANMUTE optimization\n", THIS_MODULE->name); + INFO("FEATURE: with CHANMUTE optimization\n"); #endif #ifdef CONFIG_PROC_FS xpp_proc_toplevel = proc_mkdir(PROC_DIR, NULL); |