diff options
author | tzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb> | 2006-09-04 21:58:47 +0000 |
---|---|---|
committer | tzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb> | 2006-09-04 21:58:47 +0000 |
commit | fa2e39e7130a75e0a446095ff0a55cd003a0c165 (patch) | |
tree | e0f2709b7a8d976eab36dbde7f339c8ce46b723a /xpp/card_fxo.c | |
parent | 4d1a1aac91bcb80a42ccefa2b6ae50a00a2585a3 (diff) |
Minor code cleanup: No more SETHOOK method. It's only used in FXO, so
now it's an internal function: __do_sethook()
git-svn-id: http://svn.digium.com/svn/zaptel/trunk@1383 5390a7c7-147a-4af0-8ec9-7488f05a26cb
Diffstat (limited to 'xpp/card_fxo.c')
-rw-r--r-- | xpp/card_fxo.c | 58 |
1 files changed, 28 insertions, 30 deletions
diff --git a/xpp/card_fxo.c b/xpp/card_fxo.c index 4bd9221..1b3e6cc 100644 --- a/xpp/card_fxo.c +++ b/xpp/card_fxo.c @@ -59,7 +59,6 @@ enum fxo_leds { static /* 0x0F */ DECLARE_CMD(FXO, CHAN_ENABLE, xpp_line_t lines, bool on); static /* 0x0F */ DECLARE_CMD(FXO, CHAN_CID, int pos); static /* 0x0F */ DECLARE_CMD(FXO, RING, int pos, bool on); -static /* 0x0F */ DECLARE_CMD(FXO, SETHOOK, int pos, bool offhook); static /* 0x0F */ DECLARE_CMD(FXO, RELAY_OUT, byte which, bool on); static /* 0x0F */ DECLARE_CMD(FXO, DAA_QUERY, int pos, byte reg_num); @@ -212,6 +211,33 @@ static void mark_ring(xpd_t *xpd, lineno_t pos, bool on) } } +static __do_sethook(xbus_t *xbus, xpd_t *xpd, int pos, bool offhook) +{ + int ret = 0; + xpacket_t *pack; + slic_cmd_t *sc; + int len; + bool value; + struct FXO_priv_data *priv; + + BUG_ON(!xbus); + BUG_ON(!xpd); + priv = (struct FXO_priv_data*)xpd->priv; + value = (offhook) ? 0x09 : 0x08; + // value |= BIT(3); /* Bit 3 is for CID */ + DBG("%s/%s/%d: SETHOOK: value=0x%02X %s\n", xbus->busname, xpd->xpdname, pos, value, (offhook)?"OFFHOOK":"ONHOOK"); + MARK_LED(xpd, pos, LED_GREEN, (offhook)?LED_ON:LED_OFF); + XPACKET_NEW(pack, xbus, FXO, DAA_WRITE, xpd->id); + sc = &RPACKET_FIELD(pack, FXO, DAA_WRITE, slic_cmd); + len = slic_cmd_direct_write(sc, BIT(pos), 0x05, value); + pack->datalen = len; + packet_send(xbus, pack); + if(!offhook) + mark_ring(xpd, pos, 0); // No more rings + priv->ring_sig[pos] = 0; + return ret; +} + static void do_sethook(xpd_t *xpd, int pos, bool offhook) { unsigned long flags; @@ -227,7 +253,7 @@ static void do_sethook(xpd_t *xpd, int pos, bool offhook) spin_lock_irqsave(&xpd->lock, flags); mark_ring(xpd, pos, 0); // No more rings priv->ring_sig[pos] = 0; - CALL_XMETHOD(SETHOOK, xpd->xbus, xpd, pos, offhook); + __do_sethook(xpd->xbus, xpd, pos, offhook); if(offhook) { BIT_SET(xpd->hookstate, pos); } else { @@ -604,33 +630,6 @@ static /* 0x0F */ HOSTCMD(FXO, RING, int pos, bool on) return ret; } -static /* 0x0F */ HOSTCMD(FXO, SETHOOK, int pos, bool offhook) -{ - int ret = 0; - xpacket_t *pack; - slic_cmd_t *sc; - int len; - bool value; - struct FXO_priv_data *priv; - - BUG_ON(!xbus); - BUG_ON(!xpd); - priv = (struct FXO_priv_data*)xpd->priv; - value = (offhook) ? 0x09 : 0x08; - // value |= BIT(3); /* Bit 3 is for CID */ - DBG("%s/%s/%d: SETHOOK: value=0x%02X %s\n", xbus->busname, xpd->xpdname, pos, value, (offhook)?"OFFHOOK":"ONHOOK"); - MARK_LED(xpd, pos, LED_GREEN, (offhook)?LED_ON:LED_OFF); - XPACKET_NEW(pack, xbus, FXO, DAA_WRITE, xpd->id); - sc = &RPACKET_FIELD(pack, FXO, DAA_WRITE, slic_cmd); - len = slic_cmd_direct_write(sc, BIT(pos), 0x05, value); - pack->datalen = len; - packet_send(xbus, pack); - if(!offhook) - mark_ring(xpd, pos, 0); // No more rings - priv->ring_sig[pos] = 0; - return ret; -} - static /* 0x0F */ HOSTCMD(FXO, RELAY_OUT, byte which, bool on) { return -ENOSYS; @@ -806,7 +805,6 @@ xproto_table_t PROTO_TABLE(FXO) = { .card_ioctl = FXO_card_ioctl, .RING = XPROTO_CALLER(FXO, RING), - .SETHOOK = XPROTO_CALLER(FXO, SETHOOK), .RELAY_OUT = XPROTO_CALLER(FXO, RELAY_OUT), .CHAN_ENABLE = XPROTO_CALLER(FXO, CHAN_ENABLE), .CHAN_CID = XPROTO_CALLER(FXO, CHAN_CID), |