diff options
-rw-r--r-- | drivers/dahdi/wctdm24xxp/base.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/dahdi/wctdm24xxp/base.c b/drivers/dahdi/wctdm24xxp/base.c index 0b7d6aa..2fc07b4 100644 --- a/drivers/dahdi/wctdm24xxp/base.c +++ b/drivers/dahdi/wctdm24xxp/base.c @@ -197,7 +197,6 @@ static int _opermode = 0; static char *opermode = "FCC"; static int fxshonormode = 0; static int alawoverride = 0; -static int fxo_addrs[4] = { 0x00, 0x08, 0x04, 0x0c }; static int fxotxgain = 0; static int fxorxgain = 0; static int fxstxgain = 0; @@ -637,10 +636,12 @@ static inline void cmd_dequeue(struct wctdm *wc, unsigned char *writechunk, int writechunk[CMD_BYTE(card, 1, wc->altcs[card])] = 0x80 | ((curcmd >> 8) & 0x7f); writechunk[CMD_BYTE(card, 2, wc->altcs[card])] = curcmd & 0xff; } else if (wc->modtype[card] == MOD_TYPE_FXO) { + const int FXO_ADDRS[4] = { 0x00, 0x08, 0x04, 0x0c }; + int idx = CMD_BYTE(card, 0, wc->altcs[card]); if (curcmd & __CMD_WR) - writechunk[CMD_BYTE(card, 0, wc->altcs[card])] = 0x20 | fxo_addrs[subaddr]; + writechunk[idx] = 0x20 | FXO_ADDRS[subaddr]; else - writechunk[CMD_BYTE(card, 0, wc->altcs[card])] = 0x60 | fxo_addrs[subaddr]; + writechunk[idx] = 0x60 | FXO_ADDRS[subaddr]; writechunk[CMD_BYTE(card, 1, wc->altcs[card])] = (curcmd >> 8) & 0xff; writechunk[CMD_BYTE(card, 2, wc->altcs[card])] = curcmd & 0xff; } else if (wc->modtype[card] == MOD_TYPE_FXSINIT) { |