diff options
Diffstat (limited to 'xpp/card_bri.c')
-rw-r--r-- | xpp/card_bri.c | 192 |
1 files changed, 87 insertions, 105 deletions
diff --git a/xpp/card_bri.c b/xpp/card_bri.c index 286c04a..a2d4539 100644 --- a/xpp/card_bri.c +++ b/xpp/card_bri.c @@ -258,13 +258,12 @@ static void dump_hex_buf(xpd_t *xpd, char *msg, byte *buf, size_t len) char debug_buf[DEBUG_BUF_SIZE + 1]; int i; int n = 0; - xbus_t *xbus = xpd->xbus; debug_buf[0] = '\0'; for(i = 0; i < len && n < DEBUG_BUF_SIZE; i++) n += snprintf(&debug_buf[n], DEBUG_BUF_SIZE - n, "%02X ", buf[i]); - DBG("%s/%s: %s[0..%d]: %s%s\n", xbus->busname, xpd->xpdname, msg, - len-1, debug_buf, (n >= DEBUG_BUF_SIZE)?"...":""); + XPD_DBG(xpd, "%s[0..%d]: %s%s\n", msg, len-1, debug_buf, + (n >= DEBUG_BUF_SIZE)?"...":""); } static void dump_dchan_packet(xpd_t *xpd, bool transmit, byte *buf, int len) @@ -292,7 +291,7 @@ static void dump_dchan_packet(xpd_t *xpd, bool transmit, byte *buf, int len) else if(IS_SET(buf[0], 7) && IS_SET(buf[0], 6)) ftype = 'U'; /* Unnumbered */ else - NOTICE("Unknown frame type 0x%X\n", buf[0]); + XPD_NOTICE(xpd, "Unknown frame type 0x%X\n", buf[0]); snprintf(msgbuf, MAX_PROC_WRITE, "D-Chan %s = (%c) ", direction, ftype); } else { @@ -311,8 +310,7 @@ static void layer1_state(xpd_t *xpd, bool up) if(priv->layer1_up == up) return; priv->layer1_up = up; - DBG("%s/%s: STATE CHANGE: Layer1 %s\n", xpd->xbus->busname, xpd->xpdname, - (up)?"UP":"DOWN"); + XPD_DBG(xpd, "STATE CHANGE: Layer1 %s\n", (up)?"UP":"DOWN"); } static void dchan_state(xpd_t *xpd, bool up) @@ -325,12 +323,10 @@ static void dchan_state(xpd_t *xpd, bool up) if(priv->dchan_alive == up) return; if(up) { - DBG("%s/%s: STATE CHANGE: D-Channel RUNNING\n", - xpd->xbus->busname, xpd->xpdname); + XPD_DBG(xpd, "STATE CHANGE: D-Channel RUNNING\n"); priv->dchan_alive = 1; } else { - DBG("%s/%s: STATE CHANGE: D-Channel STOPPED\n", - xpd->xbus->busname, xpd->xpdname); + XPD_DBG(xpd, "STATE CHANGE: D-Channel STOPPED\n"); priv->dchan_rx_counter = priv->dchan_tx_counter = priv->dchan_rx_drops = 0; priv->dchan_alive = 0; priv->dchan_alive_ticks = 0; @@ -346,33 +342,32 @@ static void xpd_activation(xpd_t *xpd, bool on) priv = xpd->priv; BUG_ON(!priv); xbus = xpd->xbus; - DBG("%s/%s: %s\n", xbus->busname, xpd->xpdname, (on)?"ON":"OFF"); + XPD_DBG(xpd, "%s\n", (on)?"ON":"OFF"); switch(xpd->type) { case XPD_TYPE_BRI_TE: if(on) { - DBG("%s/%s: HFC_L1_ACTIVATE_TE\n", xbus->busname, xpd->xpdname); + XPD_DBG(xpd, "HFC_L1_ACTIVATE_TE\n"); set_bit(HFC_L1_ACTIVATING, &priv->l1_flags); write_state_register(xpd, STA_ACTIVATE); priv->t3 = HFC_TIMER_T3; } else { - DBG("%s/%s: HFC_L1_FORCE_DEACTIVATE_TE\n", xbus->busname, xpd->xpdname); + XPD_DBG(xpd, "HFC_L1_FORCE_DEACTIVATE_TE\n"); write_state_register(xpd, STA_DEACTIVATE); } break; case XPD_TYPE_BRI_NT: if(on) { - DBG("%s/%s: HFC_L1_ACTIVATE_NT\n", xbus->busname, xpd->xpdname); + XPD_DBG(xpd, "HFC_L1_ACTIVATE_NT\n"); priv->t1 = TIMER_T1_MAX; set_bit(HFC_L1_ACTIVATING, &priv->l1_flags); write_state_register(xpd, STA_ACTIVATE | V_SU_SET_G2_G3); } else { - DBG("%s/%s: HFC_L1_DEACTIVATE_NT\n", xbus->busname, xpd->xpdname); + XPD_DBG(xpd, "HFC_L1_DEACTIVATE_NT\n"); write_state_register(xpd, STA_DEACTIVATE); } break; default: - ERR("%s: %s/%s: Bad xpd type %d\n", __FUNCTION__, - xbus->busname, xpd->xpdname, xpd->type); + XPD_ERR(xpd, "%s: Bad xpd type %d\n", __FUNCTION__, xpd->type); BUG(); } } @@ -413,7 +408,7 @@ static int rx_dchan(xpd_t *xpd, reg_cmd_t *regcmd) static int rate_limit; if((rate_limit++ % 1000) == 0) - DBG("%s/%s: D-Chan unused\n", xbus->busname, xpd->xpdname); + XPD_DBG(xpd, "D-Chan unused\n"); dchan->bytes2receive = 0; dchan->bytes2transmit = 0; goto out; @@ -421,7 +416,7 @@ static int rx_dchan(xpd_t *xpd, reg_cmd_t *regcmd) dchan_buf = dchan->readchunk; idx = priv->dchan_r_idx; if(idx + len >= DCHAN_BUFSIZE) { - ERR("%s/%s: D-Chan RX overflow: %d\n", xbus->busname, xpd->xpdname, idx); + XPD_ERR(xpd, "D-Chan RX overflow: %d\n", idx); dump_hex_buf(xpd, " current packet", src, len); dump_hex_buf(xpd, " dchan_buf", dchan_buf, idx); ret = -ENOSPC; @@ -436,15 +431,14 @@ static int rx_dchan(xpd_t *xpd, reg_cmd_t *regcmd) if(!eoframe) goto out; if(idx < 4) { - NOTICE("%s/%s: D-Chan RX short frame (idx=%d)\n", xbus->busname, xpd->xpdname, idx); + XPD_NOTICE(xpd, "D-Chan RX short frame (idx=%d)\n", idx); dump_hex_buf(xpd, "D-Chan RX: current packet", src, len); dump_hex_buf(xpd, "D-Chan RX: chan_buf", dchan_buf, idx); ret = -EPROTO; goto drop; } if(dchan_buf[idx-1]) { - NOTICE("%s/%s: D-Chan RX Bad checksum: [%02X:%02X=%02X] (%d)\n", - xbus->busname, xpd->xpdname, + XPD_NOTICE(xpd, "D-Chan RX Bad checksum: [%02X:%02X=%02X] (%d)\n", dchan_buf[idx-3], dchan_buf[idx-2], dchan_buf[idx-1], dchan_buf[idx-1]); dump_hex_buf(xpd, "D-Chan RX: current packet", src, len); dump_hex_buf(xpd, "D-Chan RX: chan_buf", dchan_buf, idx); @@ -484,7 +478,7 @@ static int send_bri_multibyte(xpd_t *xpd, byte *buf, int len, bool eoftx) * eoftx==0: Stop sending us D-channel packets. */ if(len > MULTIBYTE_MAX_LEN) { - ERR("%s: len=%d is too long. dropping.\n", __FUNCTION__, len); + XPD_ERR(xpd, "%s: len=%d is too long. dropping.\n", __FUNCTION__, len); return -EINVAL; } XFRAME_NEW(xframe, pack, xbus, BRI, REGISTER_REQUEST, xpd->xbus_idx); @@ -495,7 +489,7 @@ static int send_bri_multibyte(xpd_t *xpd, byte *buf, int len, bool eoftx) if(len > 0) { memcpy(REG_XDATA(reg_cmd), (byte *)buf, len); } else { - DBG("Magic Packet (eoftx=%d)\n", eoftx); + XPD_DBG(xpd, "Magic Packet (eoftx=%d)\n", eoftx); } #ifdef XPP_DEBUGFS xbus_log(xbus, xpd, 1, reg_cmd, sizeof(reg_cmd_t)); /* 1 = TX */ @@ -505,7 +499,7 @@ static int send_bri_multibyte(xpd_t *xpd, byte *buf, int len, bool eoftx) #endif ret = send_cmd_frame(xbus, xframe); if(ret < 0) - NOTICE("%s: %s: failed sending xframe\n", __FUNCTION__, xbus->busname); + XPD_NOTICE(xpd, "%s: failed sending xframe\n", __FUNCTION__); return ret; } @@ -529,7 +523,7 @@ static int tx_dchan(xpd_t *xpd) /* timer expired ? */ if (--priv->t3 == 0) { if ((rate_limit % 1003) >= 5) - DBG("%s/%s: T3 expired\n", xpd->xbus->busname, xpd->xpdname); + XPD_DBG(xpd, "T3 expired\n"); priv->t3 = HFC_TIMER_OFF; clear_bit(HFC_L1_ACTIVATING, &priv->l1_flags); xpd_activation(xpd, 0); /* Deactivate TE */ @@ -539,7 +533,7 @@ static int tx_dchan(xpd_t *xpd) /* timer expired ? */ if (--priv->t4 == 0) { if ((rate_limit % 1003) >= 5) - DBG("%s/%s: T4 expired\n", xpd->xbus->busname, xpd->xpdname); + XPD_DBG(xpd, "T4 expired\n"); priv->t4 = HFC_TIMER_OFF; } } @@ -557,11 +551,11 @@ static int tx_dchan(xpd_t *xpd) if(len <= 0) return 0; /* Nothing to transmit on D channel */ if(len > MULTIBYTE_MAX_LEN) { - ERR("%s: len=%d. need to split. Unimplemented.\n", __FUNCTION__, len); + XPD_ERR(xpd, "%s: len=%d. need to split. Unimplemented.\n", __FUNCTION__, len); return -EINVAL; } if(!test_bit(HFC_L1_ACTIVATED, &priv->l1_flags) && !test_bit(HFC_L1_ACTIVATING, &priv->l1_flags)) { - DBG("%s/%s: Kick D-Channel transmiter\n", xpd->xbus->busname, xpd->xpdname); + XPD_DBG(xpd, "Kick D-Channel transmiter\n"); xpd_activation(xpd, 1); return 0; } @@ -573,8 +567,7 @@ static int tx_dchan(xpd_t *xpd) priv->txframe_begin = 0; ret = send_bri_multibyte(xpd, priv->dchan_tbuf, len, eoframe); if(ret < 0) - NOTICE("%s/%s: %s: failed sending xframe\n", - __FUNCTION__, xpd->xbus->busname, xpd->xpdname); + XPD_NOTICE(xpd, "%s: failed sending xframe\n", __FUNCTION__); if(eoframe) priv->dchan_tx_counter++; priv->dchan_notx_ticks = 0; @@ -583,13 +576,12 @@ static int tx_dchan(xpd_t *xpd) /*---------------- BRI: Methods -------------------------------------------*/ -static xpd_t *BRI_card_new(xbus_t *xbus, int unit, int subunit, const xproto_table_t *proto_table, byte revision) +static xpd_t *BRI_card_new(xbus_t *xbus, int unit, int subunit, const xproto_table_t *proto_table, byte subtype, byte revision) { xpd_t *xpd = NULL; int channels = min(3, CHANNELS_PERXPD); - DBG("\n"); - + XBUS_DBG(xbus, "\n"); xpd = xpd_alloc(sizeof(struct BRI_priv_data), proto_table, channels); if(!xpd) return NULL; @@ -605,15 +597,15 @@ static void clean_proc(xbus_t *xbus, xpd_t *xpd) BUG_ON(!xpd); priv = xpd->priv; - DBG("%s/%s\n", xbus->busname, xpd->xpdname); + XPD_DBG(xpd, "\n"); #ifdef CONFIG_PROC_FS if(priv->regfile) { - DBG("Removing registers file for %s/%s\n", xbus->busname, xpd->xpdname); + XPD_DBG(xpd, "Removing registers file\n"); priv->regfile->data = NULL; remove_proc_entry(PROC_REGISTER_FNAME, xpd->proc_xpd_dir); } if(priv->bri_info) { - DBG("Removing xpd BRI_INFO file %s/%s\n", xbus->busname, xpd->xpdname); + XPD_DBG(xpd, "Removing xpd BRI_INFO file\n"); remove_proc_entry(PROC_BRI_INFO_FNAME, xpd->proc_xpd_dir); } #endif @@ -624,23 +616,22 @@ static int BRI_card_init(xbus_t *xbus, xpd_t *xpd) struct BRI_priv_data *priv; int ret = 0; - DBG("\n"); - BUG_ON(!xpd); + XPD_DBG(xpd, "\n"); priv = xpd->priv; #ifdef CONFIG_PROC_FS - DBG("Creating BRI_INFO file for %s/%s\n", xbus->busname, xpd->xpdname); + XPD_DBG(xpd, "Creating BRI_INFO file\n"); priv->bri_info = create_proc_read_entry(PROC_BRI_INFO_FNAME, 0444, xpd->proc_xpd_dir, proc_bri_info_read, xpd); if(!priv->bri_info) { - ERR("Failed to create proc '%s' for %s/%s\n", PROC_BRI_INFO_FNAME, xbus->busname, xpd->xpdname); + XPD_ERR(xpd, "Failed to create proc file '%s'\n", PROC_BRI_INFO_FNAME); ret = -ENOENT; goto err; } priv->bri_info->owner = THIS_MODULE; - DBG("Creating registers file for %s/%s\n", xbus->busname, xpd->xpdname); + XPD_DBG(xpd, "Creating registers file\n"); priv->regfile = create_proc_entry(PROC_REGISTER_FNAME, 0644, xpd->proc_xpd_dir); if(!priv->regfile) { - ERR("Failed to create proc file for registers of %s/%s\n", xbus->busname, xpd->xpdname); + XPD_ERR(xpd, "Failed to create proc file '%s'\n", PROC_REGISTER_FNAME); goto err; } priv->regfile->owner = THIS_MODULE; @@ -657,13 +648,12 @@ static int BRI_card_init(xbus_t *xbus, xpd_t *xpd) * Force HOST sync *before* sending PCM */ CALL_PROTO(GLOBAL, SYNC_SOURCE, xbus, NULL, SYNC_MODE_HOST, 0); - DBG("done: %s/%s\n", xbus->busname, xpd->xpdname); - + XPD_DBG(xpd, "done\n"); priv->initialized = 1; return 0; err: clean_proc(xbus, xpd); - ERR("%s/%s: Failed initializing registers (%d)\n", xbus->busname, xpd->xpdname, ret); + XPD_ERR(xpd, "Failed initializing registers (%d)\n", ret); return ret; } @@ -673,7 +663,7 @@ static int BRI_card_remove(xbus_t *xbus, xpd_t *xpd) BUG_ON(!xpd); priv = xpd->priv; - DBG("%s/%s\n", xbus->busname, xpd->xpdname); + XPD_DBG(xpd, "\n"); clean_proc(xbus, xpd); return 0; } @@ -691,7 +681,7 @@ static int BRI_card_zaptel_preregistration(xpd_t *xpd, bool on) xbus = xpd->xbus; priv = xpd->priv; BUG_ON(!xbus); - DBG("%s/%s: %s\n", xbus->busname, xpd->xpdname, (on)?"on":"off"); + XPD_DBG(xpd, "%s\n", (on)?"on":"off"); if(!on) { /* Nothing to do yet */ return 0; @@ -702,7 +692,7 @@ static int BRI_card_zaptel_preregistration(xpd_t *xpd, bool on) for_each_line(xpd, i) { struct zt_chan *cur_chan = &xpd->chans[i]; - DBG("setting BRI channel %d\n", i); + XPD_DBG(xpd, "setting BRI channel %d\n", i); snprintf(cur_chan->name, MAX_CHANNAME, "XPP_%s/%02d/%1d%1d/%d", xpd->xproto->name, xbus->num, xpd->addr.unit, xpd->addr.subunit, i); @@ -766,13 +756,13 @@ static int BRI_card_zaptel_postregistration(xpd_t *xpd, bool on) xbus = xpd->xbus; priv = xpd->priv; BUG_ON(!xbus); - DBG("%s/%s: %s\n", xbus->busname, xpd->xpdname, (on)?"on":"off"); + XPD_DBG(xpd, "%s\n", (on)?"on":"off"); return(0); } int BRI_card_hooksig(xbus_t *xbus, xpd_t *xpd, int pos, zt_txsig_t txsig) { - DBG("%s/%s/%d: %s\n", xbus->busname, xpd->xpdname, pos, txsig2str(txsig)); + LINE_DBG(xpd, pos, "%s\n", txsig2str(txsig)); return 0; } @@ -857,7 +847,7 @@ static int BRI_card_tick(xbus_t *xbus, xpd_t *xpd) if(!priv->initialized) return 0; if(poll_interval != 0 && (priv->tick_counter % poll_interval) == 0) { - // DBG("%d\n", priv->tick_counter); + // XPD_DBG(xpd, "%d\n", priv->tick_counter); priv->poll_counter++; CALL_PROTO(BRI, REGISTER_REQUEST, xbus, xpd, 0, 0, 0, A_SU_RD_STA, 0, 0, 0); } @@ -878,32 +868,24 @@ static int BRI_card_tick(xbus_t *xbus, xpd_t *xpd) /* Detect Layer1 disconnect */ if(priv->reg30_good && priv->reg30_ticks > poll_interval * REG30_LOST) { /* No reply for 1/2 a second */ - ERR("%s/%s: Lost state tracking for %d ticks\n", - xbus->busname, xpd->xpdname, priv->reg30_ticks); + XPD_ERR(xpd, "Lost state tracking for %d ticks\n", priv->reg30_ticks); priv->reg30_good = 0; layer1_state(xpd, 0); dchan_state(xpd, 0); } handle_leds(xbus, xpd); tx_dchan(xpd); -#if 0 - /* - Currently not used -- do we want to shut down NT if it wasn't - responding? For how long? - */ - /* Detect T1 timer expiry on NT */ if(IS_NT(xpd)) { if (priv->t1 > HFC_TIMER_OFF) { if (--priv->t1 == 0) { - DBG("%s/%s: T1 Expired. Kick NT\n", xbus->busname, xpd->xpdname); + XPD_DBG(xpd, "T1 Expired. Kick NT\n"); priv->t1 = HFC_TIMER_OFF; clear_bit(HFC_L1_ACTIVATING, &priv->l1_flags); write_state_register(xpd, STA_DEACTIVATE); } } } -#endif priv->tick_counter++; priv->reg30_ticks++; return 0; @@ -948,8 +930,7 @@ static int bri_spanconfig(struct zt_span *span, struct zt_lineconfig *lc) /* E1's can enable CRC checking */ if (lc->lineconfig & ZT_CONFIG_CRC4) crcstr = "CRC4"; - DBG("%s/%s[%s]: span=%d (%s) lbo=%d lineconfig=%s/%s/%s (0x%X) sync=%d\n", - xpd->xbus->busname, xpd->xpdname, + XPD_DBG(xpd, "[%s]: span=%d (%s) lbo=%d lineconfig=%s/%s/%s (0x%X) sync=%d\n", IS_NT(xpd)?"NT":"TE", lc->span, lc->name, @@ -990,7 +971,11 @@ static int bri_startup(struct zt_span *span) BUG_ON(!xpd); priv = xpd->priv; BUG_ON(!priv); - DBG("%s/%s: STARTUP\n", xpd->xbus->busname, xpd->xpdname); + if(!xpd->xbus->hardware_exists) { + XPD_DBG(xpd, "Startup called by zaptel. No Hardware. Ignored\n"); + return -ENODEV; + } + XPD_DBG(xpd, "STARTUP\n"); // Turn on all channels CALL_XMETHOD(XPD_STATE, xpd->xbus, xpd, 1); write_state_register(xpd, 0); /* Enable L1 state machine */ @@ -1021,7 +1006,11 @@ static int bri_shutdown(struct zt_span *span) BUG_ON(!xpd); priv = xpd->priv; BUG_ON(!priv); - DBG("%s/%s: SHUTDOWN\n", xpd->xbus->busname, xpd->xpdname); + if(!xpd->xbus->hardware_exists) { + XPD_DBG(xpd, "Shutdown called by zaptel. No Hardware. Ignored\n"); + return -ENODEV; + } + XPD_DBG(xpd, "SHUTDOWN\n"); // Turn off all channels CALL_XMETHOD(XPD_STATE, xpd->xbus, xpd, 0); if(IS_NT(xpd)) @@ -1134,8 +1123,7 @@ static void BRI_card_pcm_tospan(xbus_t *xbus, xpd_t *xpd, xpacket_t *pack) } XFRAME_NEW(xframe, pack, xbus, BRI, REGISTER_REQUEST, xpd->xbus_idx); #if 0 - DBG("%s/%s/%d: %c%c R%02X S%02X %02X %02X\n", - xbus->busname, xpd->xpdname, chipsel, + LINE_DBG(xpd, chipsel, "%c%c R%02X S%02X %02X %02X\n", (writing)?'W':'R', (do_subreg)?'S':'D', regnum, subreg, data_low, data_high); @@ -1156,20 +1144,20 @@ static void BRI_card_pcm_tospan(xbus_t *xbus, xpd_t *xpd, xpacket_t *pack) /* 0x0F */ HOSTCMD(BRI, XPD_STATE, bool on) { BUG_ON(!xpd); - DBG("%s/%s: %s\n", xbus->busname, xpd->xpdname, (on)?"ON":"OFF"); + XPD_DBG(xpd, "%s\n", (on)?"ON":"OFF"); xpd_activation(xpd, on); return 0; } /* 0x0F */ HOSTCMD(BRI, RING, lineno_t chan, bool on) { - ERR("%s: Unsupported\n", __FUNCTION__); + XPD_ERR(xpd, "%s: Unsupported\n", __FUNCTION__); return -ENOSYS; } /* 0x0F */ HOSTCMD(BRI, RELAY_OUT, byte which, bool on) { - ERR("%s: Unsupported\n", __FUNCTION__); + XPD_ERR(xpd, "%s: Unsupported\n", __FUNCTION__); return -ENOSYS; } @@ -1185,8 +1173,7 @@ static void BRI_card_pcm_tospan(xbus_t *xbus, xpd_t *xpd, xpacket_t *pack) priv = xpd->priv; BUG_ON(!priv); #if 0 - DBG("%s/%s: %s -> %d\n", - xbus->busname, xpd->xpdname, + XPD_DBG(xpd, "%s -> %d\n", (which_led)?"RED":"GREEN", to_led_state); #endif @@ -1204,7 +1191,7 @@ static int write_state_register(xpd_t *xpd, byte value) { int ret; - DBG("%s/%s: value = 0x%02X\n", xpd->xbus->busname, xpd->xpdname, value); + XPD_DBG(xpd, "value = 0x%02X\n", value); ret = CALL_PROTO(BRI, REGISTER_REQUEST, xpd->xbus, xpd, 0, /* chipsel */ 1, /* writing */ @@ -1229,8 +1216,7 @@ static void su_new_state(xpd_t *xpd, byte reg_x30) BUG_ON(!priv); xbus = xpd->xbus; if(!priv->initialized) { - ERR("%s/%s: %s called on uninitialized AB\n", - xbus->busname, xpd->xpdname, __FUNCTION__); + XPD_ERR(xpd, "%s called on uninitialized AB\n", __FUNCTION__); return; } new_state.reg = reg_x30; @@ -1265,33 +1251,31 @@ static void su_new_state(xpd_t *xpd, byte reg_x30) if (priv->state_register.bits.v_su_sta == new_state.bits.v_su_sta) return; /* same same */ DBG("%02X ---> %02X\n", priv->state_register.reg, reg_x30); - DBG("%s/%s: %s%i\n", xbus->busname, xpd->xpdname, - IS_NT(xpd)?"G":"F", - new_state.bits.v_su_sta); + XPD_DBG(xpd, "%s%i\n", IS_NT(xpd)?"G":"F", new_state.bits.v_su_sta); if(!IS_NT(xpd)) { /* disable T3 ? */ if ((new_state.bits.v_su_sta <= ST_TE_DEACTIVATED) || (new_state.bits.v_su_sta >= ST_TE_ACTIVATED)) { - DBG("%s/%s: Disable T3 ?\n", xbus->busname, xpd->xpdname); + XPD_DBG(xpd, "Disable T3 ?\n"); priv->t3 = HFC_TIMER_OFF; } switch (new_state.bits.v_su_sta) { case ST_TE_DEACTIVATED: /* F3 */ - DBG("%s/%s: State ST_TE_DEACTIVATED (F3)\n", xbus->busname, xpd->xpdname); + XPD_DBG(xpd, "State ST_TE_DEACTIVATED (F3)\n"); if (test_and_clear_bit(HFC_L1_ACTIVATED, &priv->l1_flags)) priv->t4 = HFC_TIMER_T4; break; case ST_TE_SIGWAIT: /* F4 */ - DBG("%s/%s: State ST_TE_SIGWAIT (F4)\n", xbus->busname, xpd->xpdname); + XPD_DBG(xpd, "State ST_TE_SIGWAIT (F4)\n"); break; case ST_TE_IDENT: /* F5 */ - DBG("%s/%s: State ST_TE_IDENT (F5)\n", xbus->busname, xpd->xpdname); + XPD_DBG(xpd, "State ST_TE_IDENT (F5)\n"); break; case ST_TE_SYNCED: /* F6 */ - DBG("%s/%s: State ST_TE_SYNCED (F6)\n", xbus->busname, xpd->xpdname); + XPD_DBG(xpd, "State ST_TE_SYNCED (F6)\n"); break; case ST_TE_ACTIVATED: /* F7 */ - DBG("%s/%s: State ST_TE_ACTIVATED (F7)\n", xbus->busname, xpd->xpdname); + XPD_DBG(xpd, "State ST_TE_ACTIVATED (F7)\n"); if (priv->t4 > HFC_TIMER_OFF) priv->t4 = HFC_TIMER_OFF; clear_bit(HFC_L1_ACTIVATING, &priv->l1_flags); @@ -1300,42 +1284,41 @@ static void su_new_state(xpd_t *xpd, byte reg_x30) break; case ST_TE_LOST_FRAMING: /* F8 */ - DBG("%s/%s: State ST_TE_LOST_FRAMING (F8)\n", xbus->busname, xpd->xpdname); + XPD_DBG(xpd, "State ST_TE_LOST_FRAMING (F8)\n"); priv->t4 = HFC_TIMER_OFF; break; default: - NOTICE("%s/%s: Bad TE state: %d\n", xbus->busname, xpd->xpdname, new_state.bits.v_su_sta); + XPD_NOTICE(xpd, "Bad TE state: %d\n", new_state.bits.v_su_sta); break; } } else if(IS_NT(xpd)) { switch (new_state.bits.v_su_sta) { case ST_NT_DEACTIVATED: /* G1 */ - DBG("%s/%s: State ST_NT_DEACTIVATED (G1)\n", xbus->busname, xpd->xpdname); + XPD_DBG(xpd, "State ST_NT_DEACTIVATED (G1)\n"); clear_bit(HFC_L1_ACTIVATED, &priv->l1_flags); priv->t1 = HFC_TIMER_OFF; break; case ST_NT_ACTIVATING: /* G2 */ - DBG("%s/%s: State ST_NT_ACTIVATING (G2)\n", xbus->busname, xpd->xpdname); + XPD_DBG(xpd, "State ST_NT_ACTIVATING (G2)\n"); xpd_activation(xpd, 1); break; case ST_NT_ACTIVATED: /* G3 */ - DBG("%s/%s: State ST_NT_ACTIVATED (G3)\n", xbus->busname, xpd->xpdname); + XPD_DBG(xpd, "State ST_NT_ACTIVATED (G3)\n"); clear_bit(HFC_L1_ACTIVATING, &priv->l1_flags); set_bit(HFC_L1_ACTIVATED, &priv->l1_flags); priv->t1 = HFC_TIMER_OFF; break; case ST_NT_DEACTIVTING: /* G4 */ - DBG("%s/%s: State ST_NT_DEACTIVTING (G4)\n", xbus->busname, xpd->xpdname); + XPD_DBG(xpd, "State ST_NT_DEACTIVTING (G4)\n"); priv->t1 = HFC_TIMER_OFF; break; default: - NOTICE("%s/%s: Bad NT state: %d\n", xbus->busname, xpd->xpdname, new_state.bits.v_su_sta); + XPD_NOTICE(xpd, "Bad NT state: %d\n", new_state.bits.v_su_sta); break; } } else - ERR("%s: %s/%s: Unknown xpd type %d\n", __FUNCTION__, - xpd->xbus->busname, xpd->xpdname, xpd->type); + XPD_ERR(xpd, "%s: Unknown xpd type %d\n", __FUNCTION__, xpd->type); priv->state_register.reg = new_state.reg; } @@ -1347,9 +1330,9 @@ HANDLER_DEF(BRI, REGISTER_REPLY) int ret; if(!xpd) { - NOTICE("%s: received %s for non-existing %s(%1d%1d)\n", + XBUS_NOTICE(xbus, "%s: received %s for non-existing unit (%1d%1d)\n", __FUNCTION__, cmd->name, - xbus->busname, pack->addr.unit, pack->addr.subunit); + pack->addr.unit, pack->addr.subunit); return -EPROTO; } spin_lock_irqsave(&xpd->lock, flags); @@ -1357,25 +1340,24 @@ HANDLER_DEF(BRI, REGISTER_REPLY) BUG_ON(!priv); #if 0 if(REG_FIELD(info, do_subreg)) { - DBG("REGISTER_REPLY: %s/%s: RS %02X %02X %02X\n", - xbus->busname, xpd->xpdname, REG_FIELD(info, regnum), REG_FIELD(info, subreg), REG_FIELD(info, data_low)); + XPD_DBG(xpd, "REGISTER_REPLY: RS %02X %02X %02X\n", + REG_FIELD(info, regnum), REG_FIELD(info, subreg), REG_FIELD(info, data_low)); } else { if (REG_FIELD(info, regnum) != A_SU_RD_STA) - DBG("REGISTER_REPLY: %s/%s: RD %02X %02X\n", - xbus->busname, xpd->xpdname, REG_FIELD(info, regnum), REG_FIELD(info, data_low)); + XPD_DBG(xpd, "REGISTER_REPLY: RD %02X %02X\n", + REG_FIELD(info, regnum), REG_FIELD(info, data_low)); } #endif if(info->multibyte) { #if 0 - DBG("%s/%s: Got Multibyte: %d bytes, eoframe: %d\n", - xbus->busname, xpd->xpdname, + XPD_DBG(xpd, "Got Multibyte: %d bytes, eoframe: %d\n", info->bytes, info->eoframe); #endif ret = rx_dchan(xpd, info); if (ret < 0) { priv->dchan_rx_drops++; if(atomic_read(&xpd->open_counter) > 0) - NOTICE("%s/%s: Multibyte Drop: errno=%d\n", xbus->busname, xpd->xpdname, ret); + XPD_NOTICE(xpd, "Multibyte Drop: errno=%d\n", ret); } goto end; } @@ -1644,7 +1626,7 @@ static int handle_register_command(xpd_t *xpd, char *cmdline) BUG_ON(!xpd); xbus = xpd->xbus; 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"); return -EBUSY; } priv = xpd->priv; @@ -1740,7 +1722,7 @@ int __init card_bri_startup(void) { DBG("\n"); - INFO("%s revision %s\n", THIS_MODULE->name, XPP_VERSION); + INFO("revision %s\n", XPP_VERSION); xproto_register(&PROTO_TABLE(BRI_NT)); xproto_register(&PROTO_TABLE(BRI_TE)); return 0; |