• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/isdn/hardware/mISDN/

Lines Matching refs:hx

878 waitforCEC(struct hscx_hw *hx)
883 starb = ReadHSCX(hx, IPAC_STARB);
890 pr_debug("%s: B%1d CEC %d us\n", hx->ip->name, hx->bch.nr,
893 pr_info("%s: B%1d CEC timeout\n", hx->ip->name, hx->bch.nr);
898 waitforXFW(struct hscx_hw *hx)
903 starb = ReadHSCX(hx, IPAC_STARB);
910 pr_debug("%s: B%1d XFW %d us\n", hx->ip->name, hx->bch.nr,
913 pr_info("%s: B%1d XFW timeout\n", hx->ip->name, hx->bch.nr);
917 hscx_cmdr(struct hscx_hw *hx, u8 cmd)
919 if (hx->ip->type & IPAC_TYPE_IPACX)
920 WriteHSCX(hx, IPACX_CMDRB, cmd);
922 waitforCEC(hx);
923 WriteHSCX(hx, IPAC_CMDRB, cmd);
1007 hscx_xpr(struct hscx_hw *hx)
1009 if (hx->bch.tx_skb && hx->bch.tx_idx < hx->bch.tx_skb->len)
1010 hscx_fill_fifo(hx);
1012 if (hx->bch.tx_skb) {
1014 if (test_bit(FLG_TRANSPARENT, &hx->bch.Flags))
1015 confirm_Bsend(&hx->bch);
1016 dev_kfree_skb(hx->bch.tx_skb);
1018 if (get_next_bframe(&hx->bch))
1019 hscx_fill_fifo(hx);
1024 ipac_rme(struct hscx_hw *hx)
1029 if (hx->ip->type & IPAC_TYPE_IPACX)
1030 rstab = ReadHSCX(hx, IPACX_RSTAB);
1032 rstab = ReadHSCX(hx, IPAC_RSTAB);
1033 pr_debug("%s: B%1d RSTAB %02x\n", hx->ip->name, hx->bch.nr, rstab);
1037 if (hx->bch.debug & DEBUG_HW_BCHANNEL)
1039 hx->ip->name, hx->bch.nr);
1042 if (hx->bch.debug & DEBUG_HW_BCHANNEL)
1044 hx->ip->name, hx->bch.nr,
1045 hx->bch.state);
1048 if (hx->bch.debug & DEBUG_HW_BCHANNEL)
1050 hx->ip->name, hx->bch.nr);
1052 hscx_cmdr(hx, 0x80); /* Do RMC */
1055 if (hx->ip->type & IPAC_TYPE_IPACX)
1056 count = ReadHSCX(hx, IPACX_RBCLB);
1058 count = ReadHSCX(hx, IPAC_RBCLB);
1059 count &= (hx->fifo_size - 1);
1061 count = hx->fifo_size;
1062 hscx_empty_fifo(hx, count);
1063 if (!hx->bch.rx_skb)
1065 if (hx->bch.rx_skb->len < 2) {
1067 hx->ip->name, hx->bch.nr, hx->bch.rx_skb->len);
1068 skb_trim(hx->bch.rx_skb, 0);
1070 skb_trim(hx->bch.rx_skb, hx->bch.rx_skb->len - 1);
1071 recv_Bchannel(&hx->bch, 0);
1076 ipac_irq(struct hscx_hw *hx, u8 ista)
1080 if (hx->ip->type & IPAC_TYPE_IPACX)
1081 istab = ReadHSCX(hx, IPACX_ISTAB);
1082 else if (hx->ip->type & IPAC_TYPE_IPAC) {
1083 istab = ReadHSCX(hx, IPAC_ISTAB);
1084 m = (hx->bch.nr & 1) ? IPAC__EXA : IPAC__EXB;
1086 exirb = ReadHSCX(hx, IPAC_EXIRB);
1087 pr_debug("%s: B%1d EXIRB %02x\n", hx->ip->name,
1088 hx->bch.nr, exirb);
1090 } else if (hx->bch.nr & 2) { /* HSCX B */
1092 ipac_irq(&hx->ip->hscx[0], ista);
1094 exirb = ReadHSCX(hx, IPAC_EXIRB);
1095 pr_debug("%s: B%1d EXIRB %02x\n", hx->ip->name,
1096 hx->bch.nr, exirb);
1100 istab = ReadHSCX(hx, IPAC_ISTAB);
1102 exirb = ReadHSCX(hx, IPAC_EXIRB);
1103 pr_debug("%s: B%1d EXIRB %02x\n", hx->ip->name,
1104 hx->bch.nr, exirb);
1112 pr_debug("%s: B%1d ISTAB %02x\n", hx->ip->name, hx->bch.nr, istab);
1114 if (!test_bit(FLG_ACTIVE, &hx->bch.Flags))
1118 ipac_rme(hx);
1121 hscx_empty_fifo(hx, hx->fifo_size);
1122 if (test_bit(FLG_TRANSPARENT, &hx->bch.Flags)) {
1124 if (hx->bch.rx_skb)
1125 recv_Bchannel(&hx->bch, 0);
1130 pr_debug("%s: B%1d RFO error\n", hx->ip->name, hx->bch.nr);
1131 hscx_cmdr(hx, 0x40); /* RRES */
1135 hscx_xpr(hx);
1138 if (test_bit(FLG_TRANSPARENT, &hx->bch.Flags)) {
1139 hscx_fill_fifo(hx);
1142 pr_debug("%s: B%1d XDU error at len %d\n", hx->ip->name,
1143 hx->bch.nr, hx->bch.tx_idx);
1144 hx->bch.tx_idx = 0;
1145 hscx_cmdr(hx, 0x01); /* XRES */
1337 struct hscx_hw *hx = container_of(bch, struct hscx_hw, bch);
1345 spin_lock_irqsave(hx->ip->hwlock, flags);
1350 hscx_fill_fifo(hx);
1351 spin_unlock_irqrestore(hx->ip->hwlock, flags);
1355 spin_unlock_irqrestore(hx->ip->hwlock, flags);
1358 spin_lock_irqsave(hx->ip->hwlock, flags);
1360 ret = hscx_mode(hx, ch->protocol);
1363 spin_unlock_irqrestore(hx->ip->hwlock, flags);
1369 spin_lock_irqsave(hx->ip->hwlock, flags);
1371 hscx_mode(hx, ISDN_P_NONE);
1372 spin_unlock_irqrestore(hx->ip->hwlock, flags);
1379 hx->ip->name, __func__, hh->prim, hh->id);
1410 struct hscx_hw *hx = container_of(bch, struct hscx_hw, bch);
1414 pr_debug("%s: %s cmd:%x %p\n", hx->ip->name, __func__, cmd, arg);
1419 spin_lock_irqsave(hx->ip->hwlock, flags);
1421 hscx_mode(hx, ISDN_P_NONE);
1422 spin_unlock_irqrestore(hx->ip->hwlock, flags);
1429 module_put(hx->ip->owner);
1437 hx->ip->name, __func__, cmd);
1455 hscx_init(struct hscx_hw *hx)
1459 WriteHSCX(hx, IPAC_RAH2, 0xFF);
1460 WriteHSCX(hx, IPAC_XBCH, 0x00);
1461 WriteHSCX(hx, IPAC_RLCR, 0x00);
1463 if (hx->ip->type & IPAC_TYPE_HSCX) {
1464 WriteHSCX(hx, IPAC_CCR1, 0x85);
1465 val = ReadHSCX(hx, HSCX_VSTR);
1466 pr_debug("%s: HSCX VSTR %02x\n", hx->ip->name, val);
1467 if (hx->bch.debug & DEBUG_HW)
1468 pr_notice("%s: HSCX version %s\n", hx->ip->name,
1471 WriteHSCX(hx, IPAC_CCR1, 0x82);
1472 WriteHSCX(hx, IPAC_CCR2, 0x30);
1473 WriteHSCX(hx, IPAC_XCCR, 0x07);
1474 WriteHSCX(hx, IPAC_RCCR, 0x07);