Lines Matching refs:ch

854 vpm_echocan_on(struct hfc_multi *hc, int ch, int taps)  in vpm_echocan_on()  argument
858 struct bchannel *bch = hc->chan[ch].bch; in vpm_echocan_on()
863 if (hc->chan[ch].protocol != ISDN_P_B_RAW) in vpm_echocan_on()
876 timeslot = ((ch / 4) * 8) + ((ch % 4) * 4) + 1; in vpm_echocan_on()
877 unit = ch % 4; in vpm_echocan_on()
886 vpm_echocan_off(struct hfc_multi *hc, int ch) in vpm_echocan_off() argument
890 struct bchannel *bch = hc->chan[ch].bch; in vpm_echocan_off()
896 if (hc->chan[ch].protocol != ISDN_P_B_RAW) in vpm_echocan_off()
909 timeslot = ((ch / 4) * 8) + ((ch % 4) * 4) + 1; in vpm_echocan_off()
910 unit = ch % 4; in vpm_echocan_off()
1843 int co, ch; in hfcmulti_dtmf() local
1854 for (ch = 0; ch <= 31; ch++) { in hfcmulti_dtmf()
1856 bch = hc->chan[ch].bch; in hfcmulti_dtmf()
1859 if (!hc->created[hc->chan[ch].port]) in hfcmulti_dtmf()
1865 __func__, ch); in hfcmulti_dtmf()
1866 coeff = &(hc->chan[ch].coeff[hc->chan[ch].coeff_count * 16]); in hfcmulti_dtmf()
1870 addr = hc->DTMFbase + ((co << 7) | (ch << 2)); in hfcmulti_dtmf()
1917 hc->chan[ch].coeff_count++; in hfcmulti_dtmf()
1918 if (hc->chan[ch].coeff_count == 8) { in hfcmulti_dtmf()
1919 hc->chan[ch].coeff_count = 0; in hfcmulti_dtmf()
1929 memcpy(skb_put(skb, 512), hc->chan[ch].coeff, 512); in hfcmulti_dtmf()
1946 hfcmulti_tx(struct hfc_multi *hc, int ch) in hfcmulti_tx() argument
1958 bch = hc->chan[ch].bch; in hfcmulti_tx()
1959 dch = hc->chan[ch].dch; in hfcmulti_tx()
1963 txpending = &hc->chan[ch].txpending; in hfcmulti_tx()
1964 slot_tx = hc->chan[ch].slot_tx; in hfcmulti_tx()
1983 (hc->chan[ch].protocol == ISDN_P_B_RAW) && in hfcmulti_tx()
1984 (hc->chan[ch].slot_rx < 0) && in hfcmulti_tx()
1985 (hc->chan[ch].slot_tx < 0)) in hfcmulti_tx()
1986 HFC_outb_nodebug(hc, R_FIFO, 0x20 | (ch << 1)); in hfcmulti_tx()
1988 HFC_outb_nodebug(hc, R_FIFO, ch << 1); in hfcmulti_tx()
2041 hc->chan[ch].Zfill = z1 - z2; in hfcmulti_tx()
2042 if (hc->chan[ch].Zfill < 0) in hfcmulti_tx()
2043 hc->chan[ch].Zfill += hc->Zlen; in hfcmulti_tx()
2065 __func__, ch, slot_tx); in hfcmulti_tx()
2074 HFC_outb_nodebug(hc, R_FIFO, ch << 1 | 1); in hfcmulti_tx()
2083 HFC_outb_nodebug(hc, R_FIFO, ch << 1); in hfcmulti_tx()
2108 __func__, ch, slot_tx); in hfcmulti_tx()
2117 HFC_outb_nodebug(hc, R_FIFO, ch << 1 | 1); in hfcmulti_tx()
2126 HFC_outb_nodebug(hc, R_FIFO, ch << 1); in hfcmulti_tx()
2133 hc->activity_tx |= 1 << hc->chan[ch].port; in hfcmulti_tx()
2148 __func__, hc->id + 1, ch, Zspace, z1, z2, ii-i, len-i, in hfcmulti_tx()
2153 hc->chan[ch].Zfill += ii - i; in hfcmulti_tx()
2192 hfcmulti_rx(struct hfc_multi *hc, int ch) in hfcmulti_rx() argument
2203 bch = hc->chan[ch].bch; in hfcmulti_rx()
2207 } else if (hc->chan[ch].dch) { in hfcmulti_rx()
2208 dch = hc->chan[ch].dch; in hfcmulti_rx()
2218 (hc->chan[ch].protocol == ISDN_P_B_RAW) && in hfcmulti_rx()
2219 (hc->chan[ch].slot_rx < 0) && in hfcmulti_rx()
2220 (hc->chan[ch].slot_tx < 0)) in hfcmulti_rx()
2221 HFC_outb_nodebug(hc, R_FIFO, 0x20 | (ch << 1) | 1); in hfcmulti_rx()
2223 HFC_outb_nodebug(hc, R_FIFO, (ch << 1) | 1); in hfcmulti_rx()
2227 if (hc->chan[ch].rx_off) { in hfcmulti_rx()
2285 hc->activity_rx |= 1 << hc->chan[ch].port; in hfcmulti_rx()
2292 "got=%d (again %d)\n", __func__, hc->id + 1, ch, in hfcmulti_rx()
2371 __func__, hc->id + 1, ch, Zsize, z1, z2); in hfcmulti_rx()
2373 recv_Bchannel(bch, hc->chan[ch].Zfill, false); in hfcmulti_rx()
2402 int ch, temp; in handle_timer_irq() local
2438 for (ch = 0; ch <= 31; ch++) { in handle_timer_irq()
2439 if (hc->created[hc->chan[ch].port]) { in handle_timer_irq()
2440 hfcmulti_tx(hc, ch); in handle_timer_irq()
2442 hfcmulti_rx(hc, ch); in handle_timer_irq()
2443 if (hc->chan[ch].dch && in handle_timer_irq()
2444 hc->chan[ch].nt_timer > -1) { in handle_timer_irq()
2445 dch = hc->chan[ch].dch; in handle_timer_irq()
2446 if (!(--hc->chan[ch].nt_timer)) { in handle_timer_irq()
2580 int ch; in ph_state_irq() local
2585 for (ch = 0; ch <= 31; ch++) { in ph_state_irq()
2586 if (hc->chan[ch].dch) { in ph_state_irq()
2587 dch = hc->chan[ch].dch; in ph_state_irq()
2590 hc->chan[ch].port); in ph_state_irq()
2610 (1 << hc->chan[ch].port); in ph_state_irq()
2613 ~(1 << hc->chan[ch].port); in ph_state_irq()
2622 (ch << 1) | 1); in ph_state_irq()
2634 hc->chan[ch].port); in ph_state_irq()
2646 int ch, j; in fifo_irq() local
2654 ch = (block << 2) + (j >> 1); in fifo_irq()
2655 dch = hc->chan[ch].dch; in fifo_irq()
2656 bch = hc->chan[ch].bch; in fifo_irq()
2657 if (((!dch) && (!bch)) || (!hc->created[hc->chan[ch].port])) { in fifo_irq()
2663 hfcmulti_tx(hc, ch); in fifo_irq()
2670 hfcmulti_tx(hc, ch); in fifo_irq()
2678 hfcmulti_rx(hc, ch); in fifo_irq()
2682 hfcmulti_rx(hc, ch); in fifo_irq()
2874 mode_hfcmulti(struct hfc_multi *hc, int ch, int protocol, int slot_tx, in mode_hfcmulti() argument
2881 if (ch < 0 || ch > 31) in mode_hfcmulti()
2883 oslot_tx = hc->chan[ch].slot_tx; in mode_hfcmulti()
2884 oslot_rx = hc->chan[ch].slot_rx; in mode_hfcmulti()
2885 conf = hc->chan[ch].conf; in mode_hfcmulti()
2891 __func__, hc->id, ch, protocol, oslot_tx, slot_tx, in mode_hfcmulti()
2899 if (hc->slot_owner[oslot_tx << 1] == ch) { in mode_hfcmulti()
2920 if (hc->slot_owner[(oslot_rx << 1) | 1] == ch) { in mode_hfcmulti()
2937 hc->chan[ch].slot_tx = -1; in mode_hfcmulti()
2938 hc->chan[ch].bank_tx = 0; in mode_hfcmulti()
2941 if (hc->chan[ch].txpending) in mode_hfcmulti()
2952 __func__, ch, slot_tx, bank_tx, in mode_hfcmulti()
2955 HFC_outb(hc, A_SL_CFG, (ch << 1) | routing); in mode_hfcmulti()
2959 hc->slot_owner[slot_tx << 1] = ch; in mode_hfcmulti()
2960 hc->chan[ch].slot_tx = slot_tx; in mode_hfcmulti()
2961 hc->chan[ch].bank_tx = bank_tx; in mode_hfcmulti()
2966 hc->chan[ch].slot_rx = -1; in mode_hfcmulti()
2967 hc->chan[ch].bank_rx = 0; in mode_hfcmulti()
2970 if (hc->chan[ch].txpending) in mode_hfcmulti()
2981 __func__, ch, slot_rx, bank_rx, in mode_hfcmulti()
2984 HFC_outb(hc, A_SL_CFG, (ch << 1) | V_CH_DIR | routing); in mode_hfcmulti()
2985 hc->slot_owner[(slot_rx << 1) | 1] = ch; in mode_hfcmulti()
2986 hc->chan[ch].slot_rx = slot_rx; in mode_hfcmulti()
2987 hc->chan[ch].bank_rx = bank_rx; in mode_hfcmulti()
2993 HFC_outb(hc, R_FIFO, ch << 1); in mode_hfcmulti()
3001 HFC_outb(hc, R_FIFO, (ch << 1) | 1); in mode_hfcmulti()
3008 if (hc->chan[ch].bch && hc->ctype != HFC_TYPE_E1) { in mode_hfcmulti()
3009 hc->hw.a_st_ctrl0[hc->chan[ch].port] &= in mode_hfcmulti()
3010 ((ch & 0x3) == 0) ? ~V_B1_EN : ~V_B2_EN; in mode_hfcmulti()
3011 HFC_outb(hc, R_ST_SEL, hc->chan[ch].port); in mode_hfcmulti()
3015 hc->hw.a_st_ctrl0[hc->chan[ch].port]); in mode_hfcmulti()
3017 if (hc->chan[ch].bch) { in mode_hfcmulti()
3018 test_and_clear_bit(FLG_HDLC, &hc->chan[ch].bch->Flags); in mode_hfcmulti()
3020 &hc->chan[ch].bch->Flags); in mode_hfcmulti()
3026 (hc->chan[ch].slot_rx < 0) && in mode_hfcmulti()
3027 (hc->chan[ch].slot_tx < 0)) { in mode_hfcmulti()
3031 "state on PCM slot %d\n", ch, in mode_hfcmulti()
3032 ((ch / 4) * 8) + ((ch % 4) * 4) + 1); in mode_hfcmulti()
3035 vpm_out(hc, ch, ((ch / 4) * 8) + in mode_hfcmulti()
3036 ((ch % 4) * 4) + 1, 0x01); in mode_hfcmulti()
3039 HFC_outb(hc, R_FIFO, (ch << 1)); in mode_hfcmulti()
3042 HFC_outb(hc, R_SLOT, (((ch / 4) * 8) + in mode_hfcmulti()
3043 ((ch % 4) * 4) + 1) << 1); in mode_hfcmulti()
3044 HFC_outb(hc, A_SL_CFG, 0x80 | (ch << 1)); in mode_hfcmulti()
3047 HFC_outb(hc, R_FIFO, 0x20 | (ch << 1) | 1); in mode_hfcmulti()
3052 if (hc->chan[ch].protocol != protocol) { in mode_hfcmulti()
3056 HFC_outb(hc, R_SLOT, ((((ch / 4) * 8) + in mode_hfcmulti()
3057 ((ch % 4) * 4) + 1) << 1) | 1); in mode_hfcmulti()
3058 HFC_outb(hc, A_SL_CFG, 0x80 | 0x20 | (ch << 1) | 1); in mode_hfcmulti()
3062 HFC_outb(hc, R_FIFO, (ch << 1) | 1); in mode_hfcmulti()
3065 HFC_outb(hc, R_SLOT, ((((ch / 4) * 8) + in mode_hfcmulti()
3066 ((ch % 4) * 4)) << 1) | 1); in mode_hfcmulti()
3067 HFC_outb(hc, A_SL_CFG, 0x80 | 0x40 | (ch << 1) | 1); in mode_hfcmulti()
3070 HFC_outb(hc, R_FIFO, 0x20 | (ch << 1)); in mode_hfcmulti()
3075 if (hc->chan[ch].protocol != protocol) { in mode_hfcmulti()
3081 HFC_outb(hc, R_SLOT, (((ch / 4) * 8) + in mode_hfcmulti()
3082 ((ch % 4) * 4)) << 1); in mode_hfcmulti()
3083 HFC_outb(hc, A_SL_CFG, 0x80 | 0x20 | (ch << 1)); in mode_hfcmulti()
3086 HFC_outb(hc, R_FIFO, ch << 1); in mode_hfcmulti()
3097 if (hc->chan[ch].protocol != protocol) { in mode_hfcmulti()
3104 HFC_outb(hc, R_FIFO, (ch << 1) | 1); in mode_hfcmulti()
3115 if (hc->chan[ch].protocol != protocol) { in mode_hfcmulti()
3121 hc->hw.a_st_ctrl0[hc->chan[ch].port] |= in mode_hfcmulti()
3122 ((ch & 0x3) == 0) ? V_B1_EN : V_B2_EN; in mode_hfcmulti()
3123 HFC_outb(hc, R_ST_SEL, hc->chan[ch].port); in mode_hfcmulti()
3127 hc->hw.a_st_ctrl0[hc->chan[ch].port]); in mode_hfcmulti()
3129 if (hc->chan[ch].bch) in mode_hfcmulti()
3131 &hc->chan[ch].bch->Flags); in mode_hfcmulti()
3139 HFC_outb(hc, R_FIFO, ch << 1); in mode_hfcmulti()
3141 if (hc->ctype == HFC_TYPE_E1 || hc->chan[ch].bch) { in mode_hfcmulti()
3154 HFC_outb(hc, R_FIFO, (ch << 1) | 1); in mode_hfcmulti()
3157 if (hc->ctype == HFC_TYPE_E1 || hc->chan[ch].bch) in mode_hfcmulti()
3164 if (hc->chan[ch].bch) { in mode_hfcmulti()
3165 test_and_set_bit(FLG_HDLC, &hc->chan[ch].bch->Flags); in mode_hfcmulti()
3167 hc->hw.a_st_ctrl0[hc->chan[ch].port] |= in mode_hfcmulti()
3168 ((ch & 0x3) == 0) ? V_B1_EN : V_B2_EN; in mode_hfcmulti()
3169 HFC_outb(hc, R_ST_SEL, hc->chan[ch].port); in mode_hfcmulti()
3173 hc->hw.a_st_ctrl0[hc->chan[ch].port]); in mode_hfcmulti()
3180 hc->chan[ch].protocol = ISDN_P_NONE; in mode_hfcmulti()
3183 hc->chan[ch].protocol = protocol; in mode_hfcmulti()
3193 hfcmulti_pcm(struct hfc_multi *hc, int ch, int slot_tx, int bank_tx, in hfcmulti_pcm() argument
3198 mode_hfcmulti(hc, ch, hc->chan[ch].protocol, -1, 0, -1, 0); in hfcmulti_pcm()
3203 mode_hfcmulti(hc, ch, hc->chan[ch].protocol, slot_tx, bank_tx, in hfcmulti_pcm()
3212 hfcmulti_conf(struct hfc_multi *hc, int ch, int num) in hfcmulti_conf() argument
3215 hc->chan[ch].conf = num; in hfcmulti_conf()
3217 hc->chan[ch].conf = -1; in hfcmulti_conf()
3218 mode_hfcmulti(hc, ch, hc->chan[ch].protocol, hc->chan[ch].slot_tx, in hfcmulti_conf()
3219 hc->chan[ch].bank_tx, hc->chan[ch].slot_rx, in hfcmulti_conf()
3220 hc->chan[ch].bank_rx); in hfcmulti_conf()
3340 handle_dmsg(struct mISDNchannel *ch, struct sk_buff *skb) in handle_dmsg() argument
3342 struct mISDNdevice *dev = container_of(ch, struct mISDNdevice, D); in handle_dmsg()
3364 queue_ch_frame(ch, PH_DATA_CNF, id, NULL); in handle_dmsg()
3469 handle_bmsg(struct mISDNchannel *ch, struct sk_buff *skb) in handle_bmsg() argument
3471 struct bchannel *bch = container_of(ch, struct bchannel, ch); in handle_bmsg()
3501 ch->protocol, in handle_bmsg()
3507 if (ch->protocol == ISDN_P_B_RAW && !hc->dtmf in handle_bmsg()
3523 _queue_data(ch, PH_ACTIVATE_IND, MISDN_ID_ANY, 0, NULL, in handle_bmsg()
3552 _queue_data(ch, PH_DEACTIVATE_IND, MISDN_ID_ANY, 0, NULL, in handle_bmsg()
3696 hfcm_bctrl(struct mISDNchannel *ch, u_int cmd, void *arg) in hfcm_bctrl() argument
3698 struct bchannel *bch = container_of(ch, struct bchannel, ch); in hfcm_bctrl()
3710 ch->protocol = ISDN_P_NONE; in hfcm_bctrl()
3711 ch->peer = NULL; in hfcm_bctrl()
3736 int ch, i; in ph_state_change() local
3743 ch = dch->slot; in ph_state_change()
3813 if (hc->chan[ch].nt_timer == 0) { in ph_state_change()
3814 hc->chan[ch].nt_timer = -1; in ph_state_change()
3816 hc->chan[ch].port); in ph_state_change()
3826 hc->chan[ch].nt_timer = in ph_state_change()
3829 hc->chan[ch].port); in ph_state_change()
3838 hc->chan[ch].nt_timer = -1; in ph_state_change()
3844 hc->chan[ch].nt_timer = -1; in ph_state_change()
3847 hc->chan[ch].nt_timer = -1; in ph_state_change()
4094 rq->ch = &dch->dev.D; in open_dchannel()
4105 int ch; in open_bchannel() local
4112 ch = rq->adr.channel; in open_bchannel()
4114 ch = (rq->adr.channel - 1) + (dch->slot - 2); in open_bchannel()
4115 bch = hc->chan[ch].bch; in open_bchannel()
4118 __func__, ch); in open_bchannel()
4123 bch->ch.protocol = rq->protocol; in open_bchannel()
4124 hc->chan[ch].rx_off = 0; in open_bchannel()
4125 rq->ch = &bch->ch; in open_bchannel()
4186 hfcm_dctrl(struct mISDNchannel *ch, u_int cmd, void *arg) in hfcm_dctrl() argument
4188 struct mISDNdevice *dev = container_of(ch, struct mISDNdevice, D); in hfcm_dctrl()
4649 int ch; in release_card() local
4677 for (ch = 0; ch <= 31; ch++) { in release_card()
4678 if (hc->chan[ch].dch) in release_card()
4679 release_port(hc, hc->chan[ch].dch); in release_card()
4818 int ch, ret = 0; in init_e1_port() local
4837 for (ch = 1; ch <= 31; ch++) { in init_e1_port()
4838 if (!((1 << ch) & hc->bmask[pt])) /* skip unused channel */ in init_e1_port()
4847 hc->chan[ch].coeff = kzalloc(512, GFP_KERNEL); in init_e1_port()
4848 if (!hc->chan[ch].coeff) { in init_e1_port()
4855 bch->nr = ch; in init_e1_port()
4856 bch->slot = ch; in init_e1_port()
4860 bch->ch.send = handle_bmsg; in init_e1_port()
4861 bch->ch.ctrl = hfcm_bctrl; in init_e1_port()
4862 bch->ch.nr = ch; in init_e1_port()
4863 list_add(&bch->ch.list, &dch->dev.bchannels); in init_e1_port()
4864 hc->chan[ch].bch = bch; in init_e1_port()
4865 hc->chan[ch].port = pt; in init_e1_port()
4892 int ch, i, ret = 0; in init_multi_port() local
4912 for (ch = 0; ch < dch->dev.nrbchan; ch++) { in init_multi_port()
4920 hc->chan[i + ch].coeff = kzalloc(512, GFP_KERNEL); in init_multi_port()
4921 if (!hc->chan[i + ch].coeff) { in init_multi_port()
4928 bch->nr = ch + 1; in init_multi_port()
4929 bch->slot = i + ch; in init_multi_port()
4933 bch->ch.send = handle_bmsg; in init_multi_port()
4934 bch->ch.ctrl = hfcm_bctrl; in init_multi_port()
4935 bch->ch.nr = ch + 1; in init_multi_port()
4936 list_add(&bch->ch.list, &dch->dev.bchannels); in init_multi_port()
4937 hc->chan[i + ch].bch = bch; in init_multi_port()
4938 hc->chan[i + ch].port = pt; in init_multi_port()
5013 int i, ch; in hfcmulti_init() local
5052 for (ch = 0; ch <= 31; ch++) { in hfcmulti_init()
5053 if (!((1 << ch) & dmask[E1_cnt])) in hfcmulti_init()
5055 hc->dnum[pt] = ch; in hfcmulti_init()
5068 E1_cnt + 1, ch, hc->bmask[pt]); in hfcmulti_init()