From 15ca3016dcd1d858fde8631717d2234dabcf96ae Mon Sep 17 00:00:00 2001 From: Shaun Ruffell Date: Sun, 13 Feb 2011 12:13:03 -0600 Subject: wctdm24xxp: Use enumeration for module types. This change is to primarily to clarify that the types are always mutually exclusive. Signed-off-by: Shaun Ruffell --- drivers/dahdi/wctdm24xxp/base.c | 171 +++++++++++++++++----------------- drivers/dahdi/wctdm24xxp/wctdm24xxp.h | 18 ++-- drivers/dahdi/wctdm24xxp/xhfc.c | 38 ++++---- 3 files changed, 116 insertions(+), 111 deletions(-) diff --git a/drivers/dahdi/wctdm24xxp/base.c b/drivers/dahdi/wctdm24xxp/base.c index 6a86a2a..fa92c9f 100644 --- a/drivers/dahdi/wctdm24xxp/base.c +++ b/drivers/dahdi/wctdm24xxp/base.c @@ -594,7 +594,7 @@ static inline void cmd_dequeue(struct wctdm *wc, unsigned char *eframe, int card int subaddr = card & 0x3; /* QRV only use commands relating to the first channel */ - if ((card & 0x03) && (mod->type == MOD_TYPE_QRV)) + if ((card & 0x03) && (mod->type == QRV)) return; if (mod->altcs) @@ -617,17 +617,17 @@ static inline void cmd_dequeue(struct wctdm *wc, unsigned char *eframe, int card if (!curcmd) { /* If nothing else, use filler */ - if (mod->type == MOD_TYPE_FXS) + if (mod->type == FXS) curcmd = CMD_RD(LINE_STATE); - else if (mod->type == MOD_TYPE_FXO) + else if (mod->type == FXO) curcmd = CMD_RD(12); - else if (mod->type == MOD_TYPE_BRI) + else if (mod->type == BRI) curcmd = 0x101010; - else if (mod->type == MOD_TYPE_QRV) + else if (mod->type == QRV) curcmd = CMD_RD(3); } - if (mod->type == MOD_TYPE_FXS) { + if (mod->type == FXS) { eframe[CMD_BYTE(card, 0, mod->altcs)] = (1 << (subaddr)); if (curcmd & __CMD_WR) eframe[CMD_BYTE(card, 1, mod->altcs)] = (curcmd >> 8) & 0x7f; @@ -635,7 +635,7 @@ static inline void cmd_dequeue(struct wctdm *wc, unsigned char *eframe, int card eframe[CMD_BYTE(card, 1, mod->altcs)] = 0x80 | ((curcmd >> 8) & 0x7f); eframe[CMD_BYTE(card, 2, mod->altcs)] = curcmd & 0xff; - } else if (mod->type == MOD_TYPE_FXO) { + } else if (mod->type == FXO) { static const int FXO_ADDRS[4] = { 0x00, 0x08, 0x04, 0x0c }; int idx = CMD_BYTE(card, 0, mod->altcs); if (curcmd & __CMD_WR) @@ -645,7 +645,7 @@ static inline void cmd_dequeue(struct wctdm *wc, unsigned char *eframe, int card eframe[CMD_BYTE(card, 1, mod->altcs)] = (curcmd >> 8) & 0xff; eframe[CMD_BYTE(card, 2, mod->altcs)] = curcmd & 0xff; - } else if (mod->type == MOD_TYPE_FXSINIT) { + } else if (mod->type == FXSINIT) { /* Special case, we initialize the FXS's into the three-byte command mode then switch to the regular mode. To send it into thee byte mode, treat the path as 6 two-byte commands and in the last one we initialize register 0 to 0x80. All modules @@ -657,7 +657,7 @@ static inline void cmd_dequeue(struct wctdm *wc, unsigned char *eframe, int card else eframe[CMD_BYTE(card, 2, mod->altcs)] = 0x00; - } else if (mod->type == MOD_TYPE_BRI) { + } else if (mod->type == BRI) { if (unlikely((curcmd != 0x101010) && (curcmd & 0x1010) == 0x1010)) /* b400m CPLD */ eframe[CMD_BYTE(card, 0, 0)] = 0x55; @@ -666,7 +666,7 @@ static inline void cmd_dequeue(struct wctdm *wc, unsigned char *eframe, int card eframe[CMD_BYTE(card, 1, 0)] = (curcmd >> 8) & 0xff; eframe[CMD_BYTE(card, 2, 0)] = curcmd & 0xff; - } else if (mod->type == MOD_TYPE_QRV) { + } else if (mod->type == QRV) { eframe[CMD_BYTE(card, 0, mod->altcs)] = 0x00; if (!curcmd) { @@ -679,7 +679,7 @@ static inline void cmd_dequeue(struct wctdm *wc, unsigned char *eframe, int card eframe[CMD_BYTE(card, 1, mod->altcs)] = 0xc0 | ((curcmd >> 8) & 0x3f); eframe[CMD_BYTE(card, 2, mod->altcs)] = curcmd & 0xff; } - } else if (mod->type == MOD_TYPE_NONE) { + } else if (mod->type == NONE) { eframe[CMD_BYTE(card, 0, mod->altcs)] = 0x10; eframe[CMD_BYTE(card, 1, mod->altcs)] = 0x10; eframe[CMD_BYTE(card, 2, mod->altcs)] = 0x10; @@ -736,7 +736,7 @@ static inline void cmd_decipher(struct wctdm *wc, const u8 *eframe, int card) int x; /* QRV modules only use commands relating to the first channel */ - if ((card & 0x03) && (mod->type == MOD_TYPE_QRV)) + if ((card & 0x03) && (mod->type == QRV)) return; /* Skip audio */ @@ -776,28 +776,28 @@ static inline void cmd_checkisr(struct wctdm *wc, int card) if (mod->sethook) { mod->cmdq.cmds[USER_COMMANDS + 0] = mod->sethook; mod->sethook = 0; - } else if (mod->type == MOD_TYPE_FXS) { + } else if (mod->type == FXS) { mod->cmdq.cmds[USER_COMMANDS + 0] = CMD_RD(68); /* Hook state */ - } else if (mod->type == MOD_TYPE_FXO) { + } else if (mod->type == FXO) { mod->cmdq.cmds[USER_COMMANDS + 0] = CMD_RD(5); /* Hook/Ring state */ - } else if (mod->type == MOD_TYPE_QRV) { + } else if (mod->type == QRV) { wc->mods[card & 0xfc].cmdq.cmds[USER_COMMANDS + 0] = CMD_RD(3); /* COR/CTCSS state */ - } else if (mod->type == MOD_TYPE_BRI) { + } else if (mod->type == BRI) { mod->cmdq.cmds[USER_COMMANDS + 0] = wctdm_bri_checkisr(wc, card, 0); } } if (!mod->cmdq.cmds[USER_COMMANDS + 1]) { - if (mod->type == MOD_TYPE_FXS) { + if (mod->type == FXS) { #ifdef PAQ_DEBUG mod->cmdq.cmds[USER_COMMANDS + 1] = CMD_RD(19); /* Transistor interrupts */ #else mod->cmdq.cmds[USER_COMMANDS + 1] = CMD_RD(LINE_STATE); #endif - } else if (mod->type == MOD_TYPE_FXO) { + } else if (mod->type == FXO) { mod->cmdq.cmds[USER_COMMANDS + 1] = CMD_RD(29); /* Battery */ - } else if (mod->type == MOD_TYPE_QRV) { + } else if (mod->type == QRV) { wc->mods[card & 0xfc].cmdq.cmds[USER_COMMANDS + 1] = CMD_RD(3); /* Battery */ - } else if (mod->type == MOD_TYPE_BRI) { + } else if (mod->type == BRI) { mod->cmdq.cmds[USER_COMMANDS + 1] = wctdm_bri_checkisr(wc, card, 1); } } @@ -933,8 +933,8 @@ wctdm_setreg_full(struct wctdm *wc, int card, int addr, int val, int inisr) const unsigned int cmd = CMD_WR(addr, val); /* QRV and BRI cards are only addressed at their first "port" */ - if ((card & 0x03) && ((wc->mods[card].type == MOD_TYPE_QRV) || - (wc->mods[card].type == MOD_TYPE_BRI))) + if ((card & 0x03) && ((wc->mods[card].type == QRV) || + (wc->mods[card].type == BRI))) return 0; if (inisr) { @@ -985,7 +985,7 @@ int wctdm_getreg(struct wctdm *wc, int card, int addr) int ret; /* if a QRV card, use only its first channel */ - if (wc->mods[card].type == MOD_TYPE_QRV) { + if (wc->mods[card].type == QRV) { if (card & 3) return 0; } @@ -1012,7 +1012,7 @@ static inline void cmd_retransmit(struct wctdm *wc) for (x=0;xmods_per_board; y++) { struct wctdm_module *const mod = &wc->mods[y]; - if (mod->type == MOD_TYPE_BRI) + if (mod->type == BRI) continue; if (!(mod->cmdq.cmds[x] & __CMD_FIN)) mod->cmdq.cmds[x] &= ~(__CMD_TX | (0xff << 24)); @@ -2029,15 +2029,17 @@ static inline void wctdm_isr_misc(struct wctdm *wc) for (x = 0; x < wc->mods_per_board; x++) { switch (wc->mods[x].type) { - case MOD_TYPE_FXS: + case FXS: wctdm_isr_misc_fxs(wc, x); break; - case MOD_TYPE_FXO: + case FXO: wctdm_voicedaa_check_hook(wc, x); break; - case MOD_TYPE_QRV: + case QRV: wctdm_qrvdri_check_hook(wc, x); break; + default: + break; } } } @@ -2382,7 +2384,7 @@ static int wctdm_proslic_calibrate(struct wctdm *wc, int card) *******************************************************************/ static int wctdm_set_hwgain(struct wctdm *wc, int card, __s32 gain, __u32 tx) { - if (!(wc->mods[card].type == MOD_TYPE_FXO)) { + if (!(wc->mods[card].type == FXO)) { dev_notice(&wc->vb.pdev->dev, "Cannot adjust gain. Unsupported module type!\n"); return -1; } @@ -2502,17 +2504,17 @@ static int wctdm_init_voicedaa(struct wctdm *wc, int card, int fast, int manual, unsigned long flags; long newjiffies; - if ((wc->mods[card & 0xfc].type == MOD_TYPE_QRV) || - (wc->mods[card & 0xfc].type == MOD_TYPE_BRI)) + if ((wc->mods[card & 0xfc].type == QRV) || + (wc->mods[card & 0xfc].type == BRI)) return -2; spin_lock_irqsave(&wc->reglock, flags); - wc->mods[card].type = MOD_TYPE_NONE; + wc->mods[card].type = NONE; spin_unlock_irqrestore(&wc->reglock, flags); msleep(100); spin_lock_irqsave(&wc->reglock, flags); - wc->mods[card].type = MOD_TYPE_FXO; + wc->mods[card].type = FXO; spin_unlock_irqrestore(&wc->reglock, flags); msleep(100); @@ -2613,11 +2615,11 @@ static int wctdm_init_proslic(struct wctdm *wc, int card, int fast, int manual, int x; int fxsmode=0; - if (wc->mods[card & 0xfc].type == MOD_TYPE_QRV) + if (wc->mods[card & 0xfc].type == QRV) return -2; spin_lock_irqsave(&wc->reglock, flags); - mod->type = MOD_TYPE_FXS; + mod->type = FXS; spin_unlock_irqrestore(&wc->reglock, flags); msleep(100); @@ -2869,11 +2871,11 @@ static int wctdm_init_qrvdri(struct wctdm *wc, int card) { unsigned char x,y; - if (MOD_TYPE_BRI == wc->mods[card & 0xfc].type) + if (BRI == wc->mods[card & 0xfc].type) return -2; /* have to set this, at least for now */ - wc->mods[card].type = MOD_TYPE_QRV; + wc->mods[card].type = QRV; if (!(card & 3)) /* if at base of card, reset and write it */ { wctdm_setreg(wc,card,0,0x80); @@ -2887,11 +2889,12 @@ static int wctdm_init_qrvdri(struct wctdm *wc, int card) wc->mods[card].mod.qrv.txgain = wc->mods[card + 1].mod.qrv.txgain = 3599; wc->mods[card].mod.qrv.rxgain = wc->mods[card + 1].mod.qrv.rxgain = 1199; } else { /* channel is on same card as base, no need to test */ - if (wc->mods[card & 0x7c].type == MOD_TYPE_QRV) { + if (wc->mods[card & 0x7c].type == QRV) { /* only lower 2 are valid */ - if (!(card & 2)) return 0; + if (!(card & 2)) + return 0; } - wc->mods[card].type = MOD_TYPE_NONE; + wc->mods[card].type = NONE; return 1; } x = wctdm_getreg(wc,card,0); @@ -2899,7 +2902,7 @@ static int wctdm_init_qrvdri(struct wctdm *wc, int card) /* if not a QRV card, return as such */ if ((x != 0x55) || (y != 0x69)) { - wc->mods[card].type = MOD_TYPE_NONE; + wc->mods[card].type = NONE; return 1; } for (x = 0; x < 0x30; x++) @@ -3063,7 +3066,7 @@ static int wctdm_ioctl(struct dahdi_chan *chan, unsigned int cmd, unsigned long switch (cmd) { case DAHDI_ONHOOKTRANSFER: - if (mod->type != MOD_TYPE_FXS) + if (mod->type != FXS) return -EINVAL; if (get_user(x, (__user int *) data)) return -EFAULT; @@ -3098,7 +3101,7 @@ static int wctdm_ioctl(struct dahdi_chan *chan, unsigned int cmd, unsigned long } break; case DAHDI_VMWI_CONFIG: - if (mod->type != MOD_TYPE_FXS) + if (mod->type != FXS) return -EINVAL; if (copy_from_user(&(fxs->vmwisetting), (__user void *)data, @@ -3107,7 +3110,7 @@ static int wctdm_ioctl(struct dahdi_chan *chan, unsigned int cmd, unsigned long set_vmwi(wc, chan->chanpos - 1); break; case DAHDI_VMWI: - if (mod->type != MOD_TYPE_FXS) + if (mod->type != FXS) return -EINVAL; if (get_user(x, (__user int *) data)) return -EFAULT; @@ -3117,11 +3120,11 @@ static int wctdm_ioctl(struct dahdi_chan *chan, unsigned int cmd, unsigned long set_vmwi(wc, chan->chanpos - 1); break; case WCTDM_GET_STATS: - if (mod->type == MOD_TYPE_FXS) { + if (mod->type == FXS) { stats.tipvolt = wctdm_getreg(wc, chan->chanpos - 1, 80) * -376; stats.ringvolt = wctdm_getreg(wc, chan->chanpos - 1, 81) * -376; stats.batvolt = wctdm_getreg(wc, chan->chanpos - 1, 82) * -376; - } else if (mod->type == MOD_TYPE_FXO) { + } else if (mod->type == FXO) { stats.tipvolt = (signed char)wctdm_getreg(wc, chan->chanpos - 1, 29) * 1000; stats.ringvolt = (signed char)wctdm_getreg(wc, chan->chanpos - 1, 29) * 1000; stats.batvolt = (signed char)wctdm_getreg(wc, chan->chanpos - 1, 29) * 1000; @@ -3136,9 +3139,9 @@ static int wctdm_ioctl(struct dahdi_chan *chan, unsigned int cmd, unsigned long if (!regs) return -ENOMEM; - if (mod->type == MOD_TYPE_FXS) + if (mod->type == FXS) wctdm24xxp_get_fxs_regs(wc, chan, regs); - else if (mod->type == MOD_TYPE_QRV) + else if (mod->type == QRV) wctdm24xxp_get_qrv_regs(wc, chan, regs); else wctdm24xxp_get_fxo_regs(wc, chan, regs); @@ -3155,7 +3158,7 @@ static int wctdm_ioctl(struct dahdi_chan *chan, unsigned int cmd, unsigned long if (copy_from_user(®op, (__user void *) data, sizeof(regop))) return -EFAULT; if (regop.indirect) { - if (mod->type != MOD_TYPE_FXS) + if (mod->type != FXS) return -EINVAL; dev_info(&wc->vb.pdev->dev, "Setting indirect %d to 0x%04x on %d\n", regop.reg, regop.val, chan->chanpos); wctdm_proslic_setreg_indirect(wc, chan->chanpos - 1, regop.reg, regop.val); @@ -3174,7 +3177,7 @@ static int wctdm_ioctl(struct dahdi_chan *chan, unsigned int cmd, unsigned long if (copy_from_user(&echoregs, (__user void *) data, sizeof(echoregs))) return -EFAULT; - if (mod->type == MOD_TYPE_FXO) { + if (mod->type == FXO) { /* Set the ACIM register */ wctdm_setreg(wc, chan->chanpos - 1, 30, echoregs.acim); @@ -3214,7 +3217,7 @@ static int wctdm_ioctl(struct dahdi_chan *chan, unsigned int cmd, unsigned long case DAHDI_SETPOLARITY: if (get_user(x, (__user int *) data)) return -EFAULT; - if (mod->type != MOD_TYPE_FXS) + if (mod->type != FXS) return -EINVAL; /* Can't change polarity while ringing or when open */ if (((fxs->lasttxhook & SLIC_LF_SETMASK) == SLIC_LF_RINGING) || @@ -3265,7 +3268,7 @@ static int wctdm_ioctl(struct dahdi_chan *chan, unsigned int cmd, unsigned long } break; case DAHDI_RADIO_GETPARAM: - if (mod->type != MOD_TYPE_QRV) + if (mod->type != QRV) return -ENOTTY; if (copy_from_user(&stack.p, (__user void *) data, sizeof(stack.p))) return -EFAULT; @@ -3317,7 +3320,7 @@ static int wctdm_ioctl(struct dahdi_chan *chan, unsigned int cmd, unsigned long return -EFAULT; break; case DAHDI_RADIO_SETPARAM: - if (mod->type != MOD_TYPE_QRV) + if (mod->type != QRV) return -ENOTTY; if (copy_from_user(&stack.p, (__user void *) data, sizeof(stack.p))) return -EFAULT; @@ -3409,7 +3412,7 @@ static int wctdm_open(struct dahdi_chan *chan) if (wc->dead) return -ENODEV; #endif - if (mod->type == MOD_TYPE_FXO) { + if (mod->type == FXO) { /* Reset the mwi indicators */ spin_lock_irqsave(&wc->reglock, flags); mod->mod.fxo.neonmwi_debounce = 0; @@ -3443,11 +3446,11 @@ static int wctdm_close(struct dahdi_chan *chan) wc = chan->pvt; for (x = 0; x < wc->mods_per_board; x++) { struct wctdm_module *const mod = &wc->mods[x]; - if (MOD_TYPE_FXS == mod->type) { + if (FXS == mod->type) { mod->mod.fxs.idletxhookstate = POLARITY_XOR(x) ? SLIC_LF_ACTIVE_REV : SLIC_LF_ACTIVE_FWD; - } else if (MOD_TYPE_QRV == mod->type) { + } else if (QRV == mod->type) { int qrvcard = x & 0xfc; mod->mod.qrv.hook = 0; @@ -3476,7 +3479,7 @@ static int wctdm_hooksig(struct dahdi_chan *chan, enum dahdi_txsig txsig) int reg = 0; struct wctdm_module *const mod = &wc->mods[chan->chanpos - 1]; - if (mod->type == MOD_TYPE_QRV) { + if (mod->type == QRV) { const int qrvcard = (chan->chanpos - 1) & 0xfc; switch(txsig) { @@ -3497,7 +3500,7 @@ static int wctdm_hooksig(struct dahdi_chan *chan, enum dahdi_txsig txsig) reg |= 0x10; wc->mods[qrvcard].sethook = CMD_WR(3, reg); /* wctdm_setreg(wc, qrvcard, 3, reg); */ - } else if (mod->type == MOD_TYPE_FXO) { + } else if (mod->type == FXO) { switch(txsig) { case DAHDI_TXSIG_START: case DAHDI_TXSIG_OFFHOOK: @@ -3513,7 +3516,7 @@ static int wctdm_hooksig(struct dahdi_chan *chan, enum dahdi_txsig txsig) default: dev_notice(&wc->vb.pdev->dev, "wctdm24xxp: Can't set tx state to %d\n", txsig); } - } else if (mod->type == MOD_TYPE_FXS) { + } else if (mod->type == FXS) { wctdm_fxs_hooksig(wc, chan->chanpos - 1, txsig); } return 0; @@ -3528,14 +3531,14 @@ static void wctdm_dacs_connect(struct wctdm *wc, int srccard, int dstcard) return; } type = wc->mods[srccard].type; - if ((type == MOD_TYPE_FXS) || (type == MOD_TYPE_FXO)) { + if ((type == FXS) || (type == FXO)) { dev_notice(&wc->vb.pdev->dev, "wctdm_dacs_connect: Unsupported modtype for " "card %d\n", srccard); return; } type = wc->mods[dstcard].type; - if ((type != MOD_TYPE_FXS) && (type != MOD_TYPE_FXO)) { + if ((type != FXS) && (type != FXO)) { dev_notice(&wc->vb.pdev->dev, "wctdm_dacs_connect: Unsupported modtype " "for card %d\n", dstcard); @@ -3546,22 +3549,22 @@ static void wctdm_dacs_connect(struct wctdm *wc, int srccard, int dstcard) wc->mods[dstcard].dacssrc = srccard; /* make srccard transmit to srccard+24 on the TDM bus */ - if (wc->mods[srccard].type == MOD_TYPE_FXS) { + if (wc->mods[srccard].type == FXS) { /* proslic */ wctdm_setreg(wc, srccard, PCM_XMIT_START_COUNT_LSB, ((srccard+24) * 8) & 0xff); wctdm_setreg(wc, srccard, PCM_XMIT_START_COUNT_MSB, ((srccard+24) * 8) >> 8); - } else if (wc->mods[srccard].type == MOD_TYPE_FXO) { + } else if (wc->mods[srccard].type == FXO) { /* daa */ wctdm_setreg(wc, srccard, 34, ((srccard+24) * 8) & 0xff); /* TX */ wctdm_setreg(wc, srccard, 35, ((srccard+24) * 8) >> 8); /* TX */ } /* have dstcard receive from srccard+24 on the TDM bus */ - if (wc->mods[dstcard].type == MOD_TYPE_FXS) { + if (wc->mods[dstcard].type == FXS) { /* proslic */ wctdm_setreg(wc, dstcard, PCM_RCV_START_COUNT_LSB, ((srccard+24) * 8) & 0xff); wctdm_setreg(wc, dstcard, PCM_RCV_START_COUNT_MSB, ((srccard+24) * 8) >> 8); - } else if (wc->mods[dstcard].type == MOD_TYPE_FXO) { + } else if (wc->mods[dstcard].type == FXO) { /* daa */ wctdm_setreg(wc, dstcard, 36, ((srccard+24) * 8) & 0xff); /* RX */ wctdm_setreg(wc, dstcard, 37, ((srccard+24) * 8) >> 8); /* RX */ @@ -3581,12 +3584,12 @@ static void wctdm_dacs_disconnect(struct wctdm *wc, int card) } /* restore TX (source card) */ - if (wc->mods[mod->dacssrc].type == MOD_TYPE_FXS) { + if (wc->mods[mod->dacssrc].type == FXS) { wctdm_setreg(wc, mod->dacssrc, PCM_XMIT_START_COUNT_LSB, (wc->mods[card].dacssrc * 8) & 0xff); wctdm_setreg(wc, mod->dacssrc, PCM_XMIT_START_COUNT_MSB, (wc->mods[card].dacssrc * 8) >> 8); - } else if (wc->mods[mod->dacssrc].type == MOD_TYPE_FXO) { + } else if (wc->mods[mod->dacssrc].type == FXO) { wctdm_setreg(wc, card, 34, (card * 8) & 0xff); wctdm_setreg(wc, card, 35, (card * 8) >> 8); } else { @@ -3594,10 +3597,10 @@ static void wctdm_dacs_disconnect(struct wctdm *wc, int card) } /* restore RX (this card) */ - if (MOD_TYPE_FXS == mod->type) { + if (FXS == mod->type) { wctdm_setreg(wc, card, PCM_RCV_START_COUNT_LSB, (card * 8) & 0xff); wctdm_setreg(wc, card, PCM_RCV_START_COUNT_MSB, (card * 8) >> 8); - } else if (MOD_TYPE_FXO == mod->type) { + } else if (FXO == mod->type) { wctdm_setreg(wc, card, 36, (card * 8) & 0xff); wctdm_setreg(wc, card, 37, (card * 8) >> 8); } else { @@ -3825,7 +3828,7 @@ static void wctdm_fixup_analog_span(struct wctdm *wc, int spanno) "s->chans[%d]=%p\n", x, y, mod->type, y, s->chans[y]); } - if (mod->type == MOD_TYPE_FXO) { + if (mod->type == FXO) { int val; s->chans[y++]->sigcap = DAHDI_SIG_FXSKS | DAHDI_SIG_FXSLS | DAHDI_SIG_SF | DAHDI_SIG_CLEAR; val = should_set_alaw(wc) ? 0x20 : 0x28; @@ -3833,11 +3836,11 @@ static void wctdm_fixup_analog_span(struct wctdm *wc, int spanno) val = (digitalloopback) ? 0x30 : val; #endif wctdm_setreg(wc, x, 33, val); - } else if (mod->type == MOD_TYPE_FXS) { + } else if (mod->type == FXS) { s->chans[y++]->sigcap = DAHDI_SIG_FXOKS | DAHDI_SIG_FXOLS | DAHDI_SIG_FXOGS | DAHDI_SIG_SF | DAHDI_SIG_EM | DAHDI_SIG_CLEAR; wctdm_setreg(wc, x, 1, (should_set_alaw(wc) ? 0x20 : 0x28)); - } else if (mod->type == MOD_TYPE_QRV) { + } else if (mod->type == QRV) { s->chans[y++]->sigcap = DAHDI_SIG_SF | DAHDI_SIG_EM | DAHDI_SIG_CLEAR; } else { s->chans[y++]->sigcap = 0; @@ -3926,7 +3929,7 @@ static int wctdm_identify_modules(struct wctdm *wc) * The FXS modules come out of reset in a two-byte, non-chainable SPI mode. * This is currently incompatible with how we do things, so we need to set * them to a chained, 3-byte command mode. This is done by setting the module - * type to MOD_TYPE_FXSINIT for a little while so that cmd_dequeue will + * type to FXSINIT for a little while so that cmd_dequeue will * initialize the SLIC into the appropriate mode. * * This "go to 3-byte chained mode" command, however, wreaks havoc with HybridBRI. @@ -3934,13 +3937,13 @@ static int wctdm_identify_modules(struct wctdm *wc) * The solution: * Since HybridBRI is only designed to work in an 8-port card, and since the single-port * modules "show up" in SPI slots >= 8 in these cards, we only set SPI slots 8-23 to - * MOD_TYPE_FXSINIT. The HybridBRI will never see the command that causes it to freak + * FXSINIT. The HybridBRI will never see the command that causes it to freak * out and the single-port FXS cards get what they need so that when we probe with altcs * we see them. */ for (x = 0; x < wc->mods_per_board; x++) - wc->mods[x].type = MOD_TYPE_FXSINIT; + wc->mods[x].type = FXSINIT; spin_unlock_irqrestore(&wc->reglock, flags); @@ -4006,13 +4009,13 @@ retry: wc->mods[x+2].altcs = 3; } - mod->type = MOD_TYPE_FXSINIT; + mod->type = FXSINIT; spin_unlock_irqrestore(&wc->reglock, flags); msleep(20); spin_lock_irqsave(&wc->reglock, flags); - mod->type = MOD_TYPE_FXS; + mod->type = FXS; spin_unlock_irqrestore(&wc->reglock, flags); if (debug & DEBUG_CARD) @@ -4023,7 +4026,7 @@ retry: dev_info(&wc->vb.pdev->dev, "Port %d: Not installed\n", x + 1); - mod->type = MOD_TYPE_NONE; + mod->type = NONE; } } } @@ -4582,7 +4585,7 @@ static void wctdm_set_tdm410_leds(struct wctdm *wc) wc->tdm410leds = 0; /* all on by default */ for (i = 0; i < wc->desc->ports; ++i) { /* Turn off the LED for any module that isn't installed. */ - if (MOD_TYPE_NONE == wc->mods[i].type) + if (NONE == wc->mods[i].type) wc->tdm410leds |= (1 << i); } } @@ -4748,10 +4751,10 @@ __wctdm_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) struct wctdm_module *const mod = &wc->mods[i]; struct b400m *b4; - if (mod->type == MOD_TYPE_NONE) { + if (mod->type == NONE) { ++curspan; continue; - } else if (mod->type == MOD_TYPE_BRI) { + } else if (mod->type == BRI) { if (!is_hx8(wc)) { dev_info(&wc->vb.pdev->dev, "Digital modules " "detected on a non-hybrid card. " @@ -4811,13 +4814,13 @@ __wctdm_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) for (i = 0; i < wc->mods_per_board; i++) { struct wctdm_module *const mod = &wc->mods[i]; switch (mod->type) { - case MOD_TYPE_FXS: + case FXS: wctdm_proslic_set_ts(wc, i, (digimods * 12) + i); break; - case MOD_TYPE_FXO: + case FXO: wctdm_voicedaa_set_ts(wc, i, (digimods * 12) + i); break; - case MOD_TYPE_QRV: + case QRV: wctdm_qrvdri_set_ts(wc, i, (digimods * 12) + i); break; default: @@ -4937,7 +4940,7 @@ static void __devexit wctdm_remove_one(struct pci_dev *pdev) /* shut down any BRI modules */ for (i = 0; i < wc->mods_per_board; i += 4) { - if (wc->mods[i].type == MOD_TYPE_BRI) + if (wc->mods[i].type == BRI) wctdm_unload_b400m(wc, i); } diff --git a/drivers/dahdi/wctdm24xxp/wctdm24xxp.h b/drivers/dahdi/wctdm24xxp/wctdm24xxp.h index 05fd394..252f6b4 100644 --- a/drivers/dahdi/wctdm24xxp/wctdm24xxp.h +++ b/drivers/dahdi/wctdm24xxp/wctdm24xxp.h @@ -59,13 +59,6 @@ #define MAX_ALARMS 10 -#define MOD_TYPE_NONE 0 -#define MOD_TYPE_FXS 1 -#define MOD_TYPE_FXO 2 -#define MOD_TYPE_FXSINIT 3 -#define MOD_TYPE_QRV 5 -#define MOD_TYPE_BRI 7 - #define MINPEGTIME 10 * 8 /* 30 ms peak to peak gets us no more than 100 Hz */ #define PEGTIME 50 * 8 /* 50ms peak to peak gets us rings of 10 Hz or more */ #define PEGCOUNT 5 /* 5 cycles of pegging means RING */ @@ -212,6 +205,15 @@ struct qrv { signed short txgain; }; +enum module_type { + NONE = 0, + FXS, + FXO, + FXSINIT, + QRV, + BRI, +}; + struct wctdm_module { union { struct fxo fxo; @@ -222,7 +224,7 @@ struct wctdm_module { struct cmdq cmdq; - int type; /* type of module (FXO/FXS/QRV/etc.) */ + enum module_type type; int sethook; /* pending hook state command */ int dacssrc; int flags; /* bitmap of board-specific + module-specific flags */ diff --git a/drivers/dahdi/wctdm24xxp/xhfc.c b/drivers/dahdi/wctdm24xxp/xhfc.c index 187f7cf..aa090ac 100644 --- a/drivers/dahdi/wctdm24xxp/xhfc.c +++ b/drivers/dahdi/wctdm24xxp/xhfc.c @@ -2093,7 +2093,7 @@ static void b400m_enable_workqueues(struct wctdm *wc) spin_lock_irqsave(&wc->reglock, flags); for (i = 0; i < wc->mods_per_board; i += 4) { - if (wc->mods[i].type == MOD_TYPE_BRI) + if (wc->mods[i].type == BRI) b4s[numb4s++] = wc->mods[i].mod.bri; } spin_unlock_irqrestore(&wc->reglock, flags); @@ -2113,7 +2113,7 @@ static void b400m_disable_workqueues(struct wctdm *wc) spin_lock_irqsave(&wc->reglock, flags); for (i = 0; i < wc->mods_per_board; i += 4) { - if (wc->mods[i].type == MOD_TYPE_BRI) + if (wc->mods[i].type == BRI) b4s[numb4s++] = wc->mods[i].mod.bri; } spin_unlock_irqrestore(&wc->reglock, flags); @@ -2572,7 +2572,7 @@ static int b400m_probe(struct wctdm *wc, int modpos) /* which B400M in the system is this one? count all of them found so * far */ for (x = 0; x < modpos; x += 4) { - if (wc->mods[x].type == MOD_TYPE_BRI) + if (wc->mods[x].type == BRI) ++b4->b400m_no; } @@ -2630,32 +2630,32 @@ int wctdm_init_b400m(struct wctdm *wc, int card) int ret = 0; unsigned long flags; - if (wc->mods[card & 0xfc].type == MOD_TYPE_QRV) + if (wc->mods[card & 0xfc].type == QRV) return -2; if (!(card & 0x03)) { /* only init if at lowest port in module */ spin_lock_irqsave(&wc->reglock, flags); - wc->mods[card + 0].type = MOD_TYPE_BRI; - wc->mods[card + 1].type = MOD_TYPE_BRI; - wc->mods[card + 2].type = MOD_TYPE_BRI; - wc->mods[card + 3].type = MOD_TYPE_BRI; + wc->mods[card + 0].type = BRI; + wc->mods[card + 1].type = BRI; + wc->mods[card + 2].type = BRI; + wc->mods[card + 3].type = BRI; spin_unlock_irqrestore(&wc->reglock, flags); msleep(20); if (b400m_probe(wc, card) != 0) { spin_lock_irqsave(&wc->reglock, flags); - wc->mods[card + 0].type = MOD_TYPE_NONE; - wc->mods[card + 1].type = MOD_TYPE_NONE; - wc->mods[card + 2].type = MOD_TYPE_NONE; - wc->mods[card + 3].type = MOD_TYPE_NONE; + wc->mods[card + 0].type = NONE; + wc->mods[card + 1].type = NONE; + wc->mods[card + 2].type = NONE; + wc->mods[card + 3].type = NONE; spin_unlock_irqrestore(&wc->reglock, flags); ret = -2; } } else { /* for the "sub-cards" */ - if (wc->mods[card & 0xfc].type == MOD_TYPE_BRI) { + if (wc->mods[card & 0xfc].type == BRI) { spin_lock_irqsave(&wc->reglock, flags); - wc->mods[card].type = MOD_TYPE_BRI; + wc->mods[card].type = BRI; wc->mods[card].mod.bri = wc->mods[card & 0xfc].mod.bri; spin_unlock_irqrestore(&wc->reglock, flags); } else { @@ -2734,12 +2734,12 @@ void wctdm_unload_b400m(struct wctdm *wc, int card) destroy_workqueue(b4->xhfc_ws); - /* Set these to MOD_TYPE_NONE to ensure that our checkisr + /* Set these to NONE to ensure that our checkisr * routines are not entered */ - wc->mods[card].type = MOD_TYPE_NONE; - wc->mods[card + 1].type = MOD_TYPE_NONE; - wc->mods[card + 2].type = MOD_TYPE_NONE; - wc->mods[card + 3].type = MOD_TYPE_NONE; + wc->mods[card].type = NONE; + wc->mods[card + 1].type = NONE; + wc->mods[card + 2].type = NONE; + wc->mods[card + 3].type = NONE; wc->mods[card].mod.bri = NULL; wc->mods[card + 1].mod.bri = NULL; -- cgit v1.2.3