diff options
Diffstat (limited to 'xpp/card_bri.c')
-rw-r--r-- | xpp/card_bri.c | 152 |
1 files changed, 76 insertions, 76 deletions
diff --git a/xpp/card_bri.c b/xpp/card_bri.c index a2d4539..ce7b0c7 100644 --- a/xpp/card_bri.c +++ b/xpp/card_bri.c @@ -42,6 +42,7 @@ static const char rcsid[] = "$Id$"; DEF_PARM(int, print_dbg, 0, 0644, "Print DBG statements"); /* must be before zap_debug.h */ DEF_PARM(uint, poll_interval, 500, 0644, "Poll channel state interval in milliseconds (0 - disable)"); +DEF_PARM_BOOL(nt_keepalive, 1, 0644, "Force BRI_NT to keep trying connection"); #ifdef DEBUG_PCMTX DEF_PARM(int, pcmtx, -1, 0644, "Forced PCM value to transmit (negative to disable)"); DEF_PARM(int, pcmtx_chan, 0, 0644, "channel to force PCM value"); @@ -262,7 +263,7 @@ static void dump_hex_buf(xpd_t *xpd, char *msg, byte *buf, size_t len) 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]); - XPD_DBG(xpd, "%s[0..%d]: %s%s\n", msg, len-1, debug_buf, + XPD_DBG(GENERAL, xpd, "%s[0..%d]: %s%s\n", msg, len-1, debug_buf, (n >= DEBUG_BUF_SIZE)?"...":""); } @@ -310,7 +311,7 @@ static void layer1_state(xpd_t *xpd, bool up) if(priv->layer1_up == up) return; priv->layer1_up = up; - XPD_DBG(xpd, "STATE CHANGE: Layer1 %s\n", (up)?"UP":"DOWN"); + XPD_DBG(SIGNAL, xpd, "STATE CHANGE: Layer1 %s\n", (up)?"UP":"DOWN"); } static void dchan_state(xpd_t *xpd, bool up) @@ -323,10 +324,10 @@ static void dchan_state(xpd_t *xpd, bool up) if(priv->dchan_alive == up) return; if(up) { - XPD_DBG(xpd, "STATE CHANGE: D-Channel RUNNING\n"); + XPD_DBG(SIGNAL, xpd, "STATE CHANGE: D-Channel RUNNING\n"); priv->dchan_alive = 1; } else { - XPD_DBG(xpd, "STATE CHANGE: D-Channel STOPPED\n"); + XPD_DBG(SIGNAL, 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; @@ -342,27 +343,27 @@ static void xpd_activation(xpd_t *xpd, bool on) priv = xpd->priv; BUG_ON(!priv); xbus = xpd->xbus; - XPD_DBG(xpd, "%s\n", (on)?"ON":"OFF"); + XPD_DBG(SIGNAL, xpd, "%s\n", (on)?"ON":"OFF"); switch(xpd->type) { case XPD_TYPE_BRI_TE: if(on) { - XPD_DBG(xpd, "HFC_L1_ACTIVATE_TE\n"); + XPD_DBG(SIGNAL, 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 { - XPD_DBG(xpd, "HFC_L1_FORCE_DEACTIVATE_TE\n"); + XPD_DBG(SIGNAL, xpd, "HFC_L1_FORCE_DEACTIVATE_TE\n"); write_state_register(xpd, STA_DEACTIVATE); } break; case XPD_TYPE_BRI_NT: if(on) { - XPD_DBG(xpd, "HFC_L1_ACTIVATE_NT\n"); + XPD_DBG(SIGNAL, 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 { - XPD_DBG(xpd, "HFC_L1_DEACTIVATE_NT\n"); + XPD_DBG(SIGNAL, xpd, "HFC_L1_DEACTIVATE_NT\n"); write_state_register(xpd, STA_DEACTIVATE); } break; @@ -408,7 +409,7 @@ static int rx_dchan(xpd_t *xpd, reg_cmd_t *regcmd) static int rate_limit; if((rate_limit++ % 1000) == 0) - XPD_DBG(xpd, "D-Chan unused\n"); + XPD_DBG(SIGNAL, xpd, "D-Chan unused\n"); dchan->bytes2receive = 0; dchan->bytes2transmit = 0; goto out; @@ -489,7 +490,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 { - XPD_DBG(xpd, "Magic Packet (eoftx=%d)\n", eoftx); + XPD_DBG(REGS, xpd, "Magic Packet (eoftx=%d)\n", eoftx); } #ifdef XPP_DEBUGFS xbus_log(xbus, xpd, 1, reg_cmd, sizeof(reg_cmd_t)); /* 1 = TX */ @@ -523,7 +524,7 @@ static int tx_dchan(xpd_t *xpd) /* timer expired ? */ if (--priv->t3 == 0) { if ((rate_limit % 1003) >= 5) - XPD_DBG(xpd, "T3 expired\n"); + XPD_DBG(SIGNAL, xpd, "T3 expired\n"); priv->t3 = HFC_TIMER_OFF; clear_bit(HFC_L1_ACTIVATING, &priv->l1_flags); xpd_activation(xpd, 0); /* Deactivate TE */ @@ -533,7 +534,7 @@ static int tx_dchan(xpd_t *xpd) /* timer expired ? */ if (--priv->t4 == 0) { if ((rate_limit % 1003) >= 5) - XPD_DBG(xpd, "T4 expired\n"); + XPD_DBG(SIGNAL, xpd, "T4 expired\n"); priv->t4 = HFC_TIMER_OFF; } } @@ -555,7 +556,7 @@ static int tx_dchan(xpd_t *xpd) return -EINVAL; } if(!test_bit(HFC_L1_ACTIVATED, &priv->l1_flags) && !test_bit(HFC_L1_ACTIVATING, &priv->l1_flags)) { - XPD_DBG(xpd, "Kick D-Channel transmiter\n"); + XPD_DBG(SIGNAL, xpd, "Want to transmit: Kick D-Channel transmiter\n"); xpd_activation(xpd, 1); return 0; } @@ -581,7 +582,7 @@ static xpd_t *BRI_card_new(xbus_t *xbus, int unit, int subunit, const xproto_tab xpd_t *xpd = NULL; int channels = min(3, CHANNELS_PERXPD); - XBUS_DBG(xbus, "\n"); + XBUS_DBG(GENERAL, xbus, "\n"); xpd = xpd_alloc(sizeof(struct BRI_priv_data), proto_table, channels); if(!xpd) return NULL; @@ -597,15 +598,15 @@ static void clean_proc(xbus_t *xbus, xpd_t *xpd) BUG_ON(!xpd); priv = xpd->priv; - XPD_DBG(xpd, "\n"); + XPD_DBG(PROC, xpd, "\n"); #ifdef CONFIG_PROC_FS if(priv->regfile) { - XPD_DBG(xpd, "Removing registers file\n"); + XPD_DBG(PROC, xpd, "Removing registers file\n"); priv->regfile->data = NULL; remove_proc_entry(PROC_REGISTER_FNAME, xpd->proc_xpd_dir); } if(priv->bri_info) { - XPD_DBG(xpd, "Removing xpd BRI_INFO file\n"); + XPD_DBG(PROC, xpd, "Removing xpd BRI_INFO file\n"); remove_proc_entry(PROC_BRI_INFO_FNAME, xpd->proc_xpd_dir); } #endif @@ -617,10 +618,10 @@ static int BRI_card_init(xbus_t *xbus, xpd_t *xpd) int ret = 0; BUG_ON(!xpd); - XPD_DBG(xpd, "\n"); + XPD_DBG(GENERAL, xpd, "\n"); priv = xpd->priv; #ifdef CONFIG_PROC_FS - XPD_DBG(xpd, "Creating BRI_INFO file\n"); + XPD_DBG(PROC, 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) { XPD_ERR(xpd, "Failed to create proc file '%s'\n", PROC_BRI_INFO_FNAME); @@ -628,7 +629,7 @@ static int BRI_card_init(xbus_t *xbus, xpd_t *xpd) goto err; } priv->bri_info->owner = THIS_MODULE; - XPD_DBG(xpd, "Creating registers file\n"); + XPD_DBG(PROC, xpd, "Creating registers file\n"); priv->regfile = create_proc_entry(PROC_REGISTER_FNAME, 0644, xpd->proc_xpd_dir); if(!priv->regfile) { XPD_ERR(xpd, "Failed to create proc file '%s'\n", PROC_REGISTER_FNAME); @@ -648,7 +649,7 @@ 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); - XPD_DBG(xpd, "done\n"); + XPD_DBG(PROC, xpd, "done\n"); priv->initialized = 1; return 0; err: @@ -663,7 +664,7 @@ static int BRI_card_remove(xbus_t *xbus, xpd_t *xpd) BUG_ON(!xpd); priv = xpd->priv; - XPD_DBG(xpd, "\n"); + XPD_DBG(GENERAL, xpd, "\n"); clean_proc(xbus, xpd); return 0; } @@ -681,7 +682,7 @@ static int BRI_card_zaptel_preregistration(xpd_t *xpd, bool on) xbus = xpd->xbus; priv = xpd->priv; BUG_ON(!xbus); - XPD_DBG(xpd, "%s\n", (on)?"on":"off"); + XPD_DBG(GENERAL, xpd, "%s\n", (on)?"on":"off"); if(!on) { /* Nothing to do yet */ return 0; @@ -692,7 +693,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]; - XPD_DBG(xpd, "setting BRI channel %d\n", i); + XPD_DBG(GENERAL, 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); @@ -756,13 +757,13 @@ static int BRI_card_zaptel_postregistration(xpd_t *xpd, bool on) xbus = xpd->xbus; priv = xpd->priv; BUG_ON(!xbus); - XPD_DBG(xpd, "%s\n", (on)?"on":"off"); + XPD_DBG(GENERAL, xpd, "%s\n", (on)?"on":"off"); return(0); } int BRI_card_hooksig(xbus_t *xbus, xpd_t *xpd, int pos, zt_txsig_t txsig) { - LINE_DBG(xpd, pos, "%s\n", txsig2str(txsig)); + LINE_DBG(SIGNAL, xpd, pos, "%s\n", txsig2str(txsig)); return 0; } @@ -847,9 +848,16 @@ 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) { - // XPD_DBG(xpd, "%d\n", priv->tick_counter); + // XPD_DBG(GENERAL, 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); + + if(IS_NT(xpd) && nt_keepalive && + !test_bit(HFC_L1_ACTIVATED, &priv->l1_flags) && + !test_bit(HFC_L1_ACTIVATING, &priv->l1_flags)) { + XPD_DBG(SIGNAL, xpd, "Kick NT D-Channel\n"); + xpd_activation(xpd, 1); + } } /* Detect D-Channel disconnect heuristic */ priv->dchan_notx_ticks++; @@ -876,10 +884,10 @@ static int BRI_card_tick(xbus_t *xbus, xpd_t *xpd) handle_leds(xbus, xpd); tx_dchan(xpd); /* Detect T1 timer expiry on NT */ - if(IS_NT(xpd)) { + if(IS_NT(xpd) && !nt_keepalive) { if (priv->t1 > HFC_TIMER_OFF) { if (--priv->t1 == 0) { - XPD_DBG(xpd, "T1 Expired. Kick NT\n"); + XPD_DBG(SIGNAL, xpd, "T1 Expired. Deactivate NT\n"); priv->t1 = HFC_TIMER_OFF; clear_bit(HFC_L1_ACTIVATING, &priv->l1_flags); write_state_register(xpd, STA_DEACTIVATE); @@ -930,7 +938,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"; - XPD_DBG(xpd, "[%s]: span=%d (%s) lbo=%d lineconfig=%s/%s/%s (0x%X) sync=%d\n", + XPD_DBG(GENERAL, 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, @@ -952,7 +960,7 @@ static int bri_spanconfig(struct zt_span *span, struct zt_lineconfig *lc) */ static int bri_chanconfig(struct zt_chan *chan, int sigtype) { - DBG("channel %d (%s) -> %s\n", chan->channo, chan->name, sig2str(sigtype)); + DBG(GENERAL, "channel %d (%s) -> %s\n", chan->channo, chan->name, sig2str(sigtype)); // FIXME: sanity checks: // - should be supported (within the sigcap) // - should not replace fxs <->fxo ??? (covered by previous?) @@ -972,10 +980,10 @@ static int bri_startup(struct zt_span *span) priv = xpd->priv; BUG_ON(!priv); if(!xpd->xbus->hardware_exists) { - XPD_DBG(xpd, "Startup called by zaptel. No Hardware. Ignored\n"); + XPD_DBG(GENERAL, xpd, "Startup called by zaptel. No Hardware. Ignored\n"); return -ENODEV; } - XPD_DBG(xpd, "STARTUP\n"); + XPD_DBG(GENERAL, xpd, "STARTUP\n"); // Turn on all channels CALL_XMETHOD(XPD_STATE, xpd->xbus, xpd, 1); write_state_register(xpd, 0); /* Enable L1 state machine */ @@ -1007,10 +1015,10 @@ static int bri_shutdown(struct zt_span *span) priv = xpd->priv; BUG_ON(!priv); if(!xpd->xbus->hardware_exists) { - XPD_DBG(xpd, "Shutdown called by zaptel. No Hardware. Ignored\n"); + XPD_DBG(GENERAL, xpd, "Shutdown called by zaptel. No Hardware. Ignored\n"); return -ENODEV; } - XPD_DBG(xpd, "SHUTDOWN\n"); + XPD_DBG(GENERAL, xpd, "SHUTDOWN\n"); // Turn off all channels CALL_XMETHOD(XPD_STATE, xpd->xbus, xpd, 0); if(IS_NT(xpd)) @@ -1118,16 +1126,14 @@ static void BRI_card_pcm_tospan(xbus_t *xbus, xpd_t *xpd, xpacket_t *pack) reg_cmd_t *reg_cmd; if(!xbus) { - DBG("NO XBUS\n"); + DBG(GENERAL, "NO XBUS\n"); return -EINVAL; } XFRAME_NEW(xframe, pack, xbus, BRI, REGISTER_REQUEST, xpd->xbus_idx); -#if 0 - LINE_DBG(xpd, chipsel, "%c%c R%02X S%02X %02X %02X\n", + LINE_DBG(REGS, xpd, chipsel, "%c%c R%02X S%02X %02X %02X\n", (writing)?'W':'R', (do_subreg)?'S':'D', regnum, subreg, data_low, data_high); -#endif reg_cmd = &RPACKET_FIELD(pack, BRI, REGISTER_REQUEST, reg_cmd); reg_cmd->bytes = sizeof(*reg_cmd) - 1; // do not count the 'bytes' field REG_FIELD(reg_cmd, chipsel) = chipsel; @@ -1144,7 +1150,7 @@ 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); - XPD_DBG(xpd, "%s\n", (on)?"ON":"OFF"); + XPD_DBG(GENERAL, xpd, "%s\n", (on)?"ON":"OFF"); xpd_activation(xpd, on); return 0; } @@ -1172,11 +1178,9 @@ static void BRI_card_pcm_tospan(xbus_t *xbus, xpd_t *xpd, xpacket_t *pack) BUG_ON(!xbus); priv = xpd->priv; BUG_ON(!priv); -#if 0 - XPD_DBG(xpd, "%s -> %d\n", + XPD_DBG(LEDS, xpd, "%s -> %d\n", (which_led)?"RED":"GREEN", to_led_state); -#endif XFRAME_NEW(xframe, pack, xbus, BRI, SET_LED, xpd->xbus_idx); bri_leds = &RPACKET_FIELD(pack, BRI, SET_LED, bri_leds); bri_leds->state = to_led_state; @@ -1191,7 +1195,7 @@ static int write_state_register(xpd_t *xpd, byte value) { int ret; - XPD_DBG(xpd, "value = 0x%02X\n", value); + XPD_DBG(REGS, xpd, "value = 0x%02X\n", value); ret = CALL_PROTO(BRI, REGISTER_REQUEST, xpd->xbus, xpd, 0, /* chipsel */ 1, /* writing */ @@ -1250,32 +1254,32 @@ 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); - XPD_DBG(xpd, "%s%i\n", IS_NT(xpd)?"G":"F", new_state.bits.v_su_sta); + DBG(SIGNAL, "%02X ---> %02X\n", priv->state_register.reg, reg_x30); + XPD_DBG(SIGNAL, 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)) { - XPD_DBG(xpd, "Disable T3 ?\n"); + XPD_DBG(SIGNAL, xpd, "Disable T3 ?\n"); priv->t3 = HFC_TIMER_OFF; } switch (new_state.bits.v_su_sta) { case ST_TE_DEACTIVATED: /* F3 */ - XPD_DBG(xpd, "State ST_TE_DEACTIVATED (F3)\n"); + XPD_DBG(SIGNAL, 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 */ - XPD_DBG(xpd, "State ST_TE_SIGWAIT (F4)\n"); + XPD_DBG(SIGNAL, xpd, "State ST_TE_SIGWAIT (F4)\n"); break; case ST_TE_IDENT: /* F5 */ - XPD_DBG(xpd, "State ST_TE_IDENT (F5)\n"); + XPD_DBG(SIGNAL, xpd, "State ST_TE_IDENT (F5)\n"); break; case ST_TE_SYNCED: /* F6 */ - XPD_DBG(xpd, "State ST_TE_SYNCED (F6)\n"); + XPD_DBG(SIGNAL, xpd, "State ST_TE_SYNCED (F6)\n"); break; case ST_TE_ACTIVATED: /* F7 */ - XPD_DBG(xpd, "State ST_TE_ACTIVATED (F7)\n"); + XPD_DBG(SIGNAL, 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); @@ -1284,7 +1288,7 @@ static void su_new_state(xpd_t *xpd, byte reg_x30) break; case ST_TE_LOST_FRAMING: /* F8 */ - XPD_DBG(xpd, "State ST_TE_LOST_FRAMING (F8)\n"); + XPD_DBG(SIGNAL, xpd, "State ST_TE_LOST_FRAMING (F8)\n"); priv->t4 = HFC_TIMER_OFF; break; default: @@ -1295,22 +1299,22 @@ static void su_new_state(xpd_t *xpd, byte reg_x30) } else if(IS_NT(xpd)) { switch (new_state.bits.v_su_sta) { case ST_NT_DEACTIVATED: /* G1 */ - XPD_DBG(xpd, "State ST_NT_DEACTIVATED (G1)\n"); + XPD_DBG(SIGNAL, 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 */ - XPD_DBG(xpd, "State ST_NT_ACTIVATING (G2)\n"); + XPD_DBG(SIGNAL, xpd, "State ST_NT_ACTIVATING (G2)\n"); xpd_activation(xpd, 1); break; case ST_NT_ACTIVATED: /* G3 */ - XPD_DBG(xpd, "State ST_NT_ACTIVATED (G3)\n"); + XPD_DBG(SIGNAL, 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 */ - XPD_DBG(xpd, "State ST_NT_DEACTIVTING (G4)\n"); + XPD_DBG(SIGNAL, xpd, "State ST_NT_DEACTIVTING (G4)\n"); priv->t1 = HFC_TIMER_OFF; break; default: @@ -1338,21 +1342,17 @@ HANDLER_DEF(BRI, REGISTER_REPLY) spin_lock_irqsave(&xpd->lock, flags); priv = xpd->priv; BUG_ON(!priv); -#if 0 if(REG_FIELD(info, do_subreg)) { - XPD_DBG(xpd, "REGISTER_REPLY: RS %02X %02X %02X\n", + XPD_DBG(REGS, 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) - XPD_DBG(xpd, "REGISTER_REPLY: RD %02X %02X\n", + XPD_DBG(REGS, xpd, "REGISTER_REPLY: RD %02X %02X\n", REG_FIELD(info, regnum), REG_FIELD(info, data_low)); } -#endif if(info->multibyte) { -#if 0 - XPD_DBG(xpd, "Got Multibyte: %d bytes, eoframe: %d\n", + XPD_DBG(REGS, 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++; @@ -1437,7 +1437,7 @@ static bool bri_packet_is_valid(xpacket_t *pack) { const xproto_entry_t *xe_nt = NULL; const xproto_entry_t *xe_te = NULL; - // DBG("\n"); + // DBG(GENERAL, "\n"); xe_nt = xproto_card_entry(&PROTO_TABLE(BRI_NT), pack->opcode); xe_te = xproto_card_entry(&PROTO_TABLE(BRI_TE), pack->opcode); return xe_nt != NULL || xe_te != NULL; @@ -1445,7 +1445,7 @@ static bool bri_packet_is_valid(xpacket_t *pack) static void bri_packet_dump(const char *msg, xpacket_t *pack) { - DBG("%s\n", msg); + DBG(GENERAL, "%s\n", msg); } /*------------------------- REGISTER Handling --------------------------*/ @@ -1456,7 +1456,7 @@ static int proc_bri_info_read(char *page, char **start, off_t off, int count, in xpd_t *xpd = data; struct BRI_priv_data *priv; - DBG("\n"); + DBG(PROC, "\n"); if(!xpd) return -ENODEV; spin_lock_irqsave(&xpd->lock, flags); @@ -1543,6 +1543,10 @@ static int handle_register_command(xpd_t *xpd, char *cmdline) struct BRI_priv_data *priv; byte buf[MAX_PROC_WRITE]; + BUG_ON(!xpd); + xbus = xpd->xbus; + priv = xpd->priv; + BUG_ON(!priv); if((p = strchr(cmdline, '#')) != NULL) /* Truncate comments */ *p = '\0'; if((p = strchr(cmdline, ';')) != NULL) /* Truncate comments */ @@ -1558,7 +1562,7 @@ static int handle_register_command(xpd_t *xpd, char *cmdline) &op, ®_type, ®_num, &subreg, &data, &xdata1, &xdata2); - // DBG("'%s': %d %c%c %02X %02X %02X\n", cmdline, chipsel, op, reg_type, reg_num, subreg, data); + XPD_DBG(PROC, xpd, "'%s': %d %c%c %02X %02X %02X\n", cmdline, chipsel, op, reg_type, reg_num, subreg, data); if(elements < 3) { // At least: chipsel, op, reg_type, reg_num ERR("Not enough arguments: (%d args) '%s'\n", elements, cmdline); return -EINVAL; @@ -1623,14 +1627,10 @@ static int handle_register_command(xpd_t *xpd, char *cmdline) regcmd.bytes = sizeof(regcmd) - 1; REG_FIELD(®cmd, read_request) = writing; REG_FIELD(®cmd, data_high) = 0; - BUG_ON(!xpd); - xbus = xpd->xbus; if(!down_read_trylock(&xbus->in_use)) { - XBUS_DBG(xbus, "Dropped packet. Is in_use\n"); + XBUS_DBG(GENERAL, xbus, "Dropped packet. Is in_use\n"); return -EBUSY; } - priv = xpd->priv; - BUG_ON(!priv); priv->requested_reply = regcmd; if(print_dbg) dump_reg_cmd("BRI", ®cmd, 1); @@ -1720,7 +1720,7 @@ static int proc_xpd_register_read(char *page, char **start, off_t off, int count int __init card_bri_startup(void) { - DBG("\n"); + DBG(GENERAL, "\n"); INFO("revision %s\n", XPP_VERSION); xproto_register(&PROTO_TABLE(BRI_NT)); @@ -1730,7 +1730,7 @@ int __init card_bri_startup(void) void __exit card_bri_cleanup(void) { - DBG("\n"); + DBG(GENERAL, "\n"); xproto_unregister(&PROTO_TABLE(BRI_NT)); xproto_unregister(&PROTO_TABLE(BRI_TE)); } |