Lines Matching refs:cs

31 static void isar_setup(struct IsdnCardState *cs);
36 waitforHIA(struct IsdnCardState *cs, int timeout) in waitforHIA() argument
39 while ((cs->BC_Read_Reg(cs, 0, ISAR_HIA) & 1) && timeout) { in waitforHIA()
50 sendmsg(struct IsdnCardState *cs, u_char his, u_char creg, u_char len, in sendmsg() argument
55 if (!waitforHIA(cs, 4000)) in sendmsg()
58 if (cs->debug & L1_DEB_HSCX) in sendmsg()
59 debugl1(cs, "sendmsg(%02x,%02x,%d)", his, creg, len); in sendmsg()
61 cs->BC_Write_Reg(cs, 0, ISAR_CTRL_H, creg); in sendmsg()
62 cs->BC_Write_Reg(cs, 0, ISAR_CTRL_L, len); in sendmsg()
63 cs->BC_Write_Reg(cs, 0, ISAR_WADR, 0); in sendmsg()
65 cs->BC_Write_Reg(cs, 1, ISAR_MBOX, msg[0]); in sendmsg()
67 cs->BC_Write_Reg(cs, 2, ISAR_MBOX, msg[i]); in sendmsg()
69 if (cs->debug & L1_DEB_HSCX_FIFO) { in sendmsg()
77 debugl1(cs, "%s", tmp); in sendmsg()
83 cs->BC_Write_Reg(cs, 1, ISAR_HIS, his); in sendmsg()
84 waitforHIA(cs, 10000); in sendmsg()
90 rcv_mbox(struct IsdnCardState *cs, struct isar_reg *ireg, u_char *msg) in rcv_mbox() argument
94 cs->BC_Write_Reg(cs, 1, ISAR_RADR, 0); in rcv_mbox()
96 msg[0] = cs->BC_Read_Reg(cs, 1, ISAR_MBOX); in rcv_mbox()
98 msg[i] = cs->BC_Read_Reg(cs, 2, ISAR_MBOX); in rcv_mbox()
100 if (cs->debug & L1_DEB_HSCX_FIFO) { in rcv_mbox()
108 debugl1(cs, "%s", tmp); in rcv_mbox()
114 cs->BC_Write_Reg(cs, 1, ISAR_IIA, 0); in rcv_mbox()
119 get_irq_infos(struct IsdnCardState *cs, struct isar_reg *ireg) in get_irq_infos() argument
121 ireg->iis = cs->BC_Read_Reg(cs, 1, ISAR_IIS); in get_irq_infos()
122 ireg->cmsb = cs->BC_Read_Reg(cs, 1, ISAR_CTRL_H); in get_irq_infos()
123 ireg->clsb = cs->BC_Read_Reg(cs, 1, ISAR_CTRL_L); in get_irq_infos()
125 if (cs->debug & L1_DEB_HSCX) in get_irq_infos()
126 debugl1(cs, "irq_stat(%02x,%02x,%d)", ireg->iis, ireg->cmsb, in get_irq_infos()
132 waitrecmsg(struct IsdnCardState *cs, u_char *len, in waitrecmsg() argument
136 struct isar_reg *ir = cs->bcs[0].hw.isar.reg; in waitrecmsg()
139 while ((!(cs->BC_Read_Reg(cs, 0, ISAR_IRQBIT) & ISAR_IRQSTA)) && in waitrecmsg()
146 get_irq_infos(cs, ir); in waitrecmsg()
147 rcv_mbox(cs, ir, msg); in waitrecmsg()
153 ISARVersion(struct IsdnCardState *cs, char *s) in ISARVersion() argument
162 cs->cardmsg(cs, CARD_RESET, NULL); in ISARVersion()
163 spin_lock_irqsave(&cs->lock, flags); in ISARVersion()
165 cs->BC_Write_Reg(cs, 0, ISAR_IRQBIT, 0); in ISARVersion()
166 debug = cs->debug; in ISARVersion()
167 cs->debug &= ~(L1_DEB_HSCX | L1_DEB_HSCX_FIFO); in ISARVersion()
168 if (!sendmsg(cs, ISAR_HIS_VNR, 0, 3, msg)) { in ISARVersion()
169 spin_unlock_irqrestore(&cs->lock, flags); in ISARVersion()
172 if (!waitrecmsg(cs, &len, tmp, 100000)) { in ISARVersion()
173 spin_unlock_irqrestore(&cs->lock, flags); in ISARVersion()
176 cs->debug = debug; in ISARVersion()
177 if (cs->bcs[0].hw.isar.reg->iis == ISAR_IIS_VNR) { in ISARVersion()
185 spin_unlock_irqrestore(&cs->lock, flags); in ISARVersion()
190 isar_load_firmware(struct IsdnCardState *cs, u_char __user *buf) in isar_load_firmware() argument
198 struct isar_reg *ireg = cs->bcs[0].hw.isar.reg; in isar_load_firmware()
206 if (1 != (ret = ISARVersion(cs, "Testing"))) { in isar_load_firmware()
210 debug = cs->debug; in isar_load_firmware()
212 cs->debug &= ~(L1_DEB_HSCX | L1_DEB_HSCX_FIFO); in isar_load_firmware()
224 cs->BC_Write_Reg(cs, 0, ISAR_IRQBIT, 0); in isar_load_firmware()
234 spin_lock_irqsave(&cs->lock, flags); in isar_load_firmware()
236 cs->BC_Write_Reg(cs, 0, ISAR_IRQBIT, 0); in isar_load_firmware()
237 spin_unlock_irqrestore(&cs->lock, flags); in isar_load_firmware()
257 spin_lock_irqsave(&cs->lock, flags); in isar_load_firmware()
258 if (!sendmsg(cs, ISAR_HIS_DKEY, blk_head.d_key & 0xff, 0, NULL)) { in isar_load_firmware()
262 if (!waitrecmsg(cs, &len, tmp, 100000)) { in isar_load_firmware()
271 spin_unlock_irqrestore(&cs->lock, flags); in isar_load_firmware()
307 spin_lock_irqsave(&cs->lock, flags); in isar_load_firmware()
308 if (!sendmsg(cs, ISAR_HIS_FIRM, 0, nom, msg)) { in isar_load_firmware()
312 if (!waitrecmsg(cs, &len, tmp, 100000)) { in isar_load_firmware()
321 spin_unlock_irqrestore(&cs->lock, flags); in isar_load_firmware()
333 spin_lock_irqsave(&cs->lock, flags); in isar_load_firmware()
334 if (!sendmsg(cs, ISAR_HIS_STDSP, 0, 2, msg)) { in isar_load_firmware()
338 if (!waitrecmsg(cs, &len, tmp, 100000)) { in isar_load_firmware()
350 cs->BC_Write_Reg(cs, 0, ISAR_IRQBIT, ISAR_IRQSTA); in isar_load_firmware()
351 spin_unlock_irqrestore(&cs->lock, flags); in isar_load_firmware()
368 spin_lock_irqsave(&cs->lock, flags); in isar_load_firmware()
370 if (!sendmsg(cs, ISAR_HIS_DIAG, ISAR_CTRL_STST, 0, NULL)) { in isar_load_firmware()
375 spin_unlock_irqrestore(&cs->lock, flags); in isar_load_firmware()
393 spin_lock_irqsave(&cs->lock, flags); in isar_load_firmware()
395 if (!sendmsg(cs, ISAR_HIS_DIAG, ISAR_CTRL_SWVER, 0, NULL)) { in isar_load_firmware()
399 spin_unlock_irqrestore(&cs->lock, flags); in isar_load_firmware()
419 spin_lock_irqsave(&cs->lock, flags); in isar_load_firmware()
420 cs->debug = debug; in isar_load_firmware()
421 isar_setup(cs); in isar_load_firmware()
425 spin_unlock_irqrestore(&cs->lock, flags); in isar_load_firmware()
427 cs->debug = debug; in isar_load_firmware()
430 cs->BC_Write_Reg(cs, 0, ISAR_IRQBIT, 0); in isar_load_firmware()
491 isar_rcv_frame(struct IsdnCardState *cs, struct BCState *bcs) in isar_rcv_frame() argument
498 debugl1(cs, "isar zero len frame"); in isar_rcv_frame()
499 cs->BC_Write_Reg(cs, 1, ISAR_IIA, 0); in isar_rcv_frame()
504 debugl1(cs, "isar mode 0 spurious IIS_RDATA %x/%x/%x", in isar_rcv_frame()
508 cs->BC_Write_Reg(cs, 1, ISAR_IIA, 0); in isar_rcv_frame()
513 rcv_mbox(cs, ireg, (u_char *)skb_put(skb, ireg->clsb)); in isar_rcv_frame()
518 cs->BC_Write_Reg(cs, 1, ISAR_IIA, 0); in isar_rcv_frame()
523 if (cs->debug & L1_DEB_WARN) in isar_rcv_frame()
524 debugl1(cs, "isar_rcv_frame: incoming packet too large"); in isar_rcv_frame()
525 cs->BC_Write_Reg(cs, 1, ISAR_IIA, 0); in isar_rcv_frame()
528 if (cs->debug & L1_DEB_WARN) in isar_rcv_frame()
529 debugl1(cs, "isar frame error %x len %d", in isar_rcv_frame()
538 cs->BC_Write_Reg(cs, 1, ISAR_IIA, 0); in isar_rcv_frame()
544 rcv_mbox(cs, ireg, ptr); in isar_rcv_frame()
547 if (cs->debug & L1_DEB_WARN) in isar_rcv_frame()
548 debugl1(cs, "isar frame to short %d", in isar_rcv_frame()
564 if (cs->debug & L1_DEB_WARN) in isar_rcv_frame()
565 debugl1(cs, "isar_rcv_frame: not ACTIV"); in isar_rcv_frame()
566 cs->BC_Write_Reg(cs, 1, ISAR_IIA, 0); in isar_rcv_frame()
571 rcv_mbox(cs, ireg, bcs->hw.isar.rcvbuf); in isar_rcv_frame()
574 if (cs->debug & L1_DEB_HSCX) in isar_rcv_frame()
575 debugl1(cs, "isar_rcv_frame: raw(%d) dle(%d)", in isar_rcv_frame()
583 if (cs->debug & L1_DEB_WARN) in isar_rcv_frame()
584 debugl1(cs, "isar_rcv_frame: no more data"); in isar_rcv_frame()
587 sendmsg(cs, SET_DPS(bcs->hw.isar.dpath) | in isar_rcv_frame()
599 if (cs->debug & L1_DEB_WARN) in isar_rcv_frame()
600 debugl1(cs, "isar_rcv_frame: unknown fax mode %x", in isar_rcv_frame()
602 cs->BC_Write_Reg(cs, 1, ISAR_IIA, 0); in isar_rcv_frame()
608 if (cs->debug & L1_DEB_WARN) in isar_rcv_frame()
609 debugl1(cs, "isar_rcv_frame: incoming packet too large"); in isar_rcv_frame()
610 cs->BC_Write_Reg(cs, 1, ISAR_IIA, 0); in isar_rcv_frame()
613 if (cs->debug & L1_DEB_WARN) in isar_rcv_frame()
614 debugl1(cs, "isar frame error %x len %d", in isar_rcv_frame()
617 cs->BC_Write_Reg(cs, 1, ISAR_IIA, 0); in isar_rcv_frame()
624 rcv_mbox(cs, ireg, ptr); in isar_rcv_frame()
629 if (cs->debug & L1_DEB_WARN) in isar_rcv_frame()
630 debugl1(cs, "isar frame to short %d", in isar_rcv_frame()
650 if (cs->debug & L1_DEB_WARN) in isar_rcv_frame()
651 debugl1(cs, "isar_rcv_frame: no more data"); in isar_rcv_frame()
653 sendmsg(cs, SET_DPS(bcs->hw.isar.dpath) | in isar_rcv_frame()
664 cs->BC_Write_Reg(cs, 1, ISAR_IIA, 0); in isar_rcv_frame()
672 struct IsdnCardState *cs = bcs->cs; in isar_fill_fifo() local
677 if ((cs->debug & L1_DEB_HSCX) && !(cs->debug & L1_DEB_HSCX_FIFO)) in isar_fill_fifo()
678 debugl1(cs, "isar_fill_fifo"); in isar_fill_fifo()
715 sendmsg(cs, SET_DPS(bcs->hw.isar.dpath) | ISAR_HIS_SDATA, in isar_fill_fifo()
719 sendmsg(cs, SET_DPS(bcs->hw.isar.dpath) | ISAR_HIS_SDATA, in isar_fill_fifo()
724 if (cs->debug & L1_DEB_WARN) in isar_fill_fifo()
725 debugl1(cs, "isar_fill_fifo: not ACTIV"); in isar_fill_fifo()
727 sendmsg(cs, SET_DPS(bcs->hw.isar.dpath) | ISAR_HIS_SDATA, in isar_fill_fifo()
730 sendmsg(cs, SET_DPS(bcs->hw.isar.dpath) | ISAR_HIS_SDATA, in isar_fill_fifo()
733 if (cs->debug & L1_DEB_WARN) in isar_fill_fifo()
734 debugl1(cs, "isar_fill_fifo: not FTH/FTM"); in isar_fill_fifo()
738 if (cs->debug) in isar_fill_fifo()
739 debugl1(cs, "isar_fill_fifo mode(%x) error", bcs->mode); in isar_fill_fifo()
746 struct BCState *sel_bcs_isar(struct IsdnCardState *cs, u_char dpath) in sel_bcs_isar() argument
750 if (cs->bcs[0].hw.isar.dpath == dpath) in sel_bcs_isar()
751 return (&cs->bcs[0]); in sel_bcs_isar()
752 if (cs->bcs[1].hw.isar.dpath == dpath) in sel_bcs_isar()
753 return (&cs->bcs[1]); in sel_bcs_isar()
799 sendmsg(bcs->cs, SET_DPS(bcs->hw.isar.dpath) | in send_frames()
813 check_send(struct IsdnCardState *cs, u_char rdm) in check_send() argument
818 if ((bcs = sel_bcs_isar(cs, 1))) { in check_send()
825 if ((bcs = sel_bcs_isar(cs, 2))) { in check_send()
844 struct IsdnCardState *cs = bcs->cs; in isar_pump_status_rsp() local
851 if (cs->debug & L1_DEB_WARN) in isar_pump_status_rsp()
852 debugl1(cs, "wrong pstrsp ril=%d", ril); in isar_pump_status_rsp()
892 if (cs->debug & L1_DEB_HSCX) in isar_pump_status_rsp()
893 debugl1(cs, "pump strsp %s", bcs->conmsg); in isar_pump_status_rsp()
898 struct IsdnCardState *cs = bcs->cs; in isar_pump_statev_modem() local
903 if (cs->debug & L1_DEB_HSCX) in isar_pump_statev_modem()
904 debugl1(cs, "pump stev TIMER"); in isar_pump_statev_modem()
907 if (cs->debug & L1_DEB_HSCX) in isar_pump_statev_modem()
908 debugl1(cs, "pump stev CONNECT"); in isar_pump_statev_modem()
912 if (cs->debug & L1_DEB_HSCX) in isar_pump_statev_modem()
913 debugl1(cs, "pump stev NO CONNECT"); in isar_pump_statev_modem()
914 sendmsg(cs, dps | ISAR_HIS_PSTREQ, 0, 0, NULL); in isar_pump_statev_modem()
918 if (cs->debug & L1_DEB_HSCX) in isar_pump_statev_modem()
919 debugl1(cs, "pump stev V24 OFF"); in isar_pump_statev_modem()
922 if (cs->debug & L1_DEB_HSCX) in isar_pump_statev_modem()
923 debugl1(cs, "pump stev CTS ON"); in isar_pump_statev_modem()
926 if (cs->debug & L1_DEB_HSCX) in isar_pump_statev_modem()
927 debugl1(cs, "pump stev CTS OFF"); in isar_pump_statev_modem()
930 if (cs->debug & L1_DEB_HSCX) in isar_pump_statev_modem()
931 debugl1(cs, "pump stev CARRIER ON"); in isar_pump_statev_modem()
933 sendmsg(cs, dps | ISAR_HIS_PSTREQ, 0, 0, NULL); in isar_pump_statev_modem()
936 if (cs->debug & L1_DEB_HSCX) in isar_pump_statev_modem()
937 debugl1(cs, "pump stev CARRIER OFF"); in isar_pump_statev_modem()
940 if (cs->debug & L1_DEB_HSCX) in isar_pump_statev_modem()
941 debugl1(cs, "pump stev DSR ON"); in isar_pump_statev_modem()
944 if (cs->debug & L1_DEB_HSCX) in isar_pump_statev_modem()
945 debugl1(cs, "pump stev DSR_OFF"); in isar_pump_statev_modem()
948 if (cs->debug & L1_DEB_HSCX) in isar_pump_statev_modem()
949 debugl1(cs, "pump stev REMOTE RETRAIN"); in isar_pump_statev_modem()
952 if (cs->debug & L1_DEB_HSCX) in isar_pump_statev_modem()
953 debugl1(cs, "pump stev REMOTE RENEGOTIATE"); in isar_pump_statev_modem()
956 if (cs->debug & L1_DEB_HSCX) in isar_pump_statev_modem()
957 debugl1(cs, "pump stev GSTN CLEAR"); in isar_pump_statev_modem()
960 if (cs->debug & L1_DEB_HSCX) in isar_pump_statev_modem()
961 debugl1(cs, "unknown pump stev %x", devt); in isar_pump_statev_modem()
972 if (bcs->cs->debug & L1_DEB_HSCX) in ll_deliver_faxstat()
973 debugl1(bcs->cs, "HL->LL FAXIND %x", status); in ll_deliver_faxstat()
974 ic.driver = bcs->cs->myid; in ll_deliver_faxstat()
978 bcs->cs->iif.statcallb(&ic); in ll_deliver_faxstat()
983 struct IsdnCardState *cs = bcs->cs; in isar_pump_statev_fax() local
989 if (cs->debug & L1_DEB_HSCX) in isar_pump_statev_fax()
990 debugl1(cs, "pump stev TIMER"); in isar_pump_statev_fax()
993 if (cs->debug & L1_DEB_HSCX) in isar_pump_statev_fax()
994 debugl1(cs, "pump stev RSP_READY"); in isar_pump_statev_fax()
1005 if (cs->debug & L1_DEB_HSCX) in isar_pump_statev_fax()
1006 debugl1(cs, "pump stev LINE_TX_H"); in isar_pump_statev_fax()
1008 sendmsg(cs, dps | ISAR_HIS_PUMPCTRL, PCTRL_CMD_CONT, 0, NULL); in isar_pump_statev_fax()
1010 if (cs->debug & L1_DEB_WARN) in isar_pump_statev_fax()
1011 debugl1(cs, "pump stev LINE_TX_H wrong st %x", in isar_pump_statev_fax()
1017 if (cs->debug & L1_DEB_HSCX) in isar_pump_statev_fax()
1018 debugl1(cs, "pump stev LINE_RX_H"); in isar_pump_statev_fax()
1020 sendmsg(cs, dps | ISAR_HIS_PUMPCTRL, PCTRL_CMD_CONT, 0, NULL); in isar_pump_statev_fax()
1022 if (cs->debug & L1_DEB_WARN) in isar_pump_statev_fax()
1023 debugl1(cs, "pump stev LINE_RX_H wrong st %x", in isar_pump_statev_fax()
1029 if (cs->debug & L1_DEB_HSCX) in isar_pump_statev_fax()
1030 debugl1(cs, "pump stev LINE_TX_B"); in isar_pump_statev_fax()
1032 sendmsg(cs, dps | ISAR_HIS_PUMPCTRL, PCTRL_CMD_CONT, 0, NULL); in isar_pump_statev_fax()
1034 if (cs->debug & L1_DEB_WARN) in isar_pump_statev_fax()
1035 debugl1(cs, "pump stev LINE_TX_B wrong st %x", in isar_pump_statev_fax()
1041 if (cs->debug & L1_DEB_HSCX) in isar_pump_statev_fax()
1042 debugl1(cs, "pump stev LINE_RX_B"); in isar_pump_statev_fax()
1044 sendmsg(cs, dps | ISAR_HIS_PUMPCTRL, PCTRL_CMD_CONT, 0, NULL); in isar_pump_statev_fax()
1046 if (cs->debug & L1_DEB_WARN) in isar_pump_statev_fax()
1047 debugl1(cs, "pump stev LINE_RX_B wrong st %x", in isar_pump_statev_fax()
1053 if (cs->debug & L1_DEB_HSCX) in isar_pump_statev_fax()
1054 debugl1(cs, "pump stev RSP_CONN"); in isar_pump_statev_fax()
1057 sendmsg(cs, dps | ISAR_HIS_PSTREQ, 0, 0, NULL); in isar_pump_statev_fax()
1072 if (cs->debug & L1_DEB_WARN) in isar_pump_statev_fax()
1073 debugl1(cs, "pump stev RSP_CONN wrong st %x", in isar_pump_statev_fax()
1078 if (cs->debug & L1_DEB_HSCX) in isar_pump_statev_fax()
1079 debugl1(cs, "pump stev FLAGS_DET"); in isar_pump_statev_fax()
1082 if (cs->debug & L1_DEB_HSCX) in isar_pump_statev_fax()
1083 debugl1(cs, "pump stev RSP_DISC"); in isar_pump_statev_fax()
1093 sendmsg(cs, dps | ISAR_HIS_PUMPCTRL, in isar_pump_statev_fax()
1105 sendmsg(cs, dps | ISAR_HIS_PUMPCTRL, in isar_pump_statev_fax()
1111 if (cs->debug & L1_DEB_HSCX) in isar_pump_statev_fax()
1112 debugl1(cs, "RSP_DISC unknown newcmd %x", bcs->hw.isar.newcmd); in isar_pump_statev_fax()
1131 if (cs->debug & L1_DEB_HSCX) in isar_pump_statev_fax()
1132 debugl1(cs, "pump stev RSP_SILDET"); in isar_pump_statev_fax()
1138 sendmsg(cs, dps | ISAR_HIS_PUMPCTRL, in isar_pump_statev_fax()
1145 if (cs->debug & L1_DEB_HSCX) in isar_pump_statev_fax()
1146 debugl1(cs, "pump stev RSP_SILOFF"); in isar_pump_statev_fax()
1150 if (cs->debug & L1_DEB_HSCX) in isar_pump_statev_fax()
1151 debugl1(cs, "pump stev RSP_FCERR try %d", in isar_pump_statev_fax()
1154 sendmsg(cs, dps | ISAR_HIS_PUMPCTRL, in isar_pump_statev_fax()
1160 if (cs->debug & L1_DEB_HSCX) in isar_pump_statev_fax()
1161 debugl1(cs, "pump stev RSP_FCERR"); in isar_pump_statev_fax()
1163 sendmsg(cs, dps | ISAR_HIS_PUMPCTRL, PCTRL_CMD_ESC, 0, NULL); in isar_pump_statev_fax()
1174 isar_int_main(struct IsdnCardState *cs) in isar_int_main() argument
1176 struct isar_reg *ireg = cs->bcs[0].hw.isar.reg; in isar_int_main()
1179 get_irq_infos(cs, ireg); in isar_int_main()
1182 if ((bcs = sel_bcs_isar(cs, ireg->iis >> 6))) { in isar_int_main()
1183 isar_rcv_frame(cs, bcs); in isar_int_main()
1185 debugl1(cs, "isar spurious IIS_RDATA %x/%x/%x", in isar_int_main()
1187 cs->BC_Write_Reg(cs, 1, ISAR_IIA, 0); in isar_int_main()
1191 cs->BC_Write_Reg(cs, 1, ISAR_IIA, 0); in isar_int_main()
1193 check_send(cs, ireg->cmsb); in isar_int_main()
1197 if ((bcs = sel_bcs_isar(cs, ireg->iis >> 6))) { in isar_int_main()
1204 if (cs->debug & L1_DEB_WARN) in isar_int_main()
1205 debugl1(cs, "Buffer STEV dpath%d msb(%x)", in isar_int_main()
1207 cs->BC_Write_Reg(cs, 1, ISAR_IIA, 0); in isar_int_main()
1210 if ((bcs = sel_bcs_isar(cs, ireg->iis >> 6))) { in isar_int_main()
1211 rcv_mbox(cs, ireg, (u_char *)ireg->par); in isar_int_main()
1217 if (cs->debug & L1_DEB_HSCX) in isar_int_main()
1218 debugl1(cs, "pump stev TIMER"); in isar_int_main()
1220 if (cs->debug & L1_DEB_WARN) in isar_int_main()
1221 debugl1(cs, "isar IIS_PSTEV pmode %d stat %x", in isar_int_main()
1225 debugl1(cs, "isar spurious IIS_PSTEV %x/%x/%x", in isar_int_main()
1227 cs->BC_Write_Reg(cs, 1, ISAR_IIA, 0); in isar_int_main()
1231 if ((bcs = sel_bcs_isar(cs, ireg->iis >> 6))) { in isar_int_main()
1232 rcv_mbox(cs, ireg, (u_char *)ireg->par); in isar_int_main()
1235 debugl1(cs, "isar spurious IIS_PSTRSP %x/%x/%x", in isar_int_main()
1237 cs->BC_Write_Reg(cs, 1, ISAR_IIA, 0); in isar_int_main()
1243 rcv_mbox(cs, ireg, (u_char *)ireg->par); in isar_int_main()
1244 if ((cs->debug & (L1_DEB_HSCX | L1_DEB_HSCX_FIFO)) in isar_int_main()
1251 debugl1(cs, "%s", debbuf); in isar_int_main()
1255 rcv_mbox(cs, ireg, debbuf); in isar_int_main()
1256 if (cs->debug & L1_DEB_WARN) in isar_int_main()
1257 debugl1(cs, "invalid msg his:%x", in isar_int_main()
1261 rcv_mbox(cs, ireg, debbuf); in isar_int_main()
1262 if (cs->debug & L1_DEB_WARN) in isar_int_main()
1263 debugl1(cs, "unhandled msg iis(%x) ctrl(%x/%x)", in isar_int_main()
1271 if (bcs->cs->debug) in ftimer_handler()
1272 debugl1(bcs->cs, "ftimer flags %04lx", in ftimer_handler()
1285 struct IsdnCardState *cs = bcs->cs; in setup_pump() local
1293 sendmsg(cs, dps | ISAR_HIS_PUMPCFG, PMOD_BYPASS, 0, NULL); in setup_pump()
1309 sendmsg(cs, dps | ISAR_HIS_PUMPCFG, ctrl, 6, param); in setup_pump()
1320 sendmsg(cs, dps | ISAR_HIS_PUMPCFG, ctrl, 2, param); in setup_pump()
1328 sendmsg(cs, dps | ISAR_HIS_PSTREQ, 0, 0, NULL); in setup_pump()
1334 struct IsdnCardState *cs = bcs->cs; in setup_sart() local
1340 sendmsg(cs, dps | ISAR_HIS_SARTCFG, SMODE_DISABLE, 0, in setup_sart()
1344 sendmsg(cs, dps | ISAR_HIS_SARTCFG, SMODE_BINARY, 2, in setup_sart()
1349 sendmsg(cs, dps | ISAR_HIS_SARTCFG, SMODE_HDLC, 1, in setup_sart()
1356 sendmsg(cs, dps | ISAR_HIS_SARTCFG, ctrl, 2, in setup_sart()
1364 sendmsg(cs, dps | ISAR_HIS_BSTREQ, 0, 0, NULL); in setup_sart()
1370 struct IsdnCardState *cs = bcs->cs; in setup_iom2() local
1390 sendmsg(cs, dps | ISAR_HIS_IOM2CFG, cmsb, 5, msg); in setup_iom2()
1392 sendmsg(cs, dps | ISAR_HIS_IOM2REQ, 0, 0, NULL); in setup_iom2()
1399 struct IsdnCardState *cs = bcs->cs; in modeisar() local
1432 debugl1(cs, "isar modeisar analog functions only with DP1"); in modeisar()
1438 if (cs->debug & L1_DEB_HSCX) in modeisar()
1439 debugl1(cs, "isar dp%d mode %d->%d ichan %d", in modeisar()
1459 struct IsdnCardState *cs = bcs->cs; in isar_pump_cmd() local
1567 sendmsg(cs, dps | ISAR_HIS_PUMPCTRL, ctrl, nom, &p1); in isar_pump_cmd()
1571 isar_setup(struct IsdnCardState *cs) in isar_setup() argument
1580 sendmsg(cs, (i ? ISAR_HIS_DPS2 : ISAR_HIS_DPS1) | in isar_setup()
1582 cs->bcs[i].hw.isar.mml = msg; in isar_setup()
1583 cs->bcs[i].mode = 0; in isar_setup()
1584 cs->bcs[i].hw.isar.dpath = i + 1; in isar_setup()
1585 modeisar(&cs->bcs[i], 0, 0); in isar_setup()
1586 INIT_WORK(&cs->bcs[i].tqueue, isar_bh); in isar_setup()
1600 spin_lock_irqsave(&bcs->cs->lock, flags); in isar_l2l1()
1606 if (bcs->cs->debug & L1_DEB_HSCX) in isar_l2l1()
1607 debugl1(bcs->cs, "DRQ set BC_FLG_BUSY"); in isar_l2l1()
1609 bcs->cs->BC_Send_Data(bcs); in isar_l2l1()
1611 spin_unlock_irqrestore(&bcs->cs->lock, flags); in isar_l2l1()
1614 spin_lock_irqsave(&bcs->cs->lock, flags); in isar_l2l1()
1619 if (bcs->cs->debug & L1_DEB_HSCX) in isar_l2l1()
1620 debugl1(bcs->cs, "PUI set BC_FLG_BUSY"); in isar_l2l1()
1623 bcs->cs->BC_Send_Data(bcs); in isar_l2l1()
1625 spin_unlock_irqrestore(&bcs->cs->lock, flags); in isar_l2l1()
1635 spin_lock_irqsave(&bcs->cs->lock, flags); in isar_l2l1()
1646 spin_unlock_irqrestore(&bcs->cs->lock, flags); in isar_l2l1()
1655 spin_unlock_irqrestore(&bcs->cs->lock, flags); in isar_l2l1()
1660 spin_unlock_irqrestore(&bcs->cs->lock, flags); in isar_l2l1()
1668 spin_lock_irqsave(&bcs->cs->lock, flags); in isar_l2l1()
1680 if (bcs->cs->debug & L1_DEB_HSCX) in isar_l2l1()
1681 debugl1(bcs->cs, "PDAC clear BC_FLG_BUSY"); in isar_l2l1()
1683 spin_unlock_irqrestore(&bcs->cs->lock, flags); in isar_l2l1()
1702 if (bcs->cs->debug & L1_DEB_HSCX) in close_isarstate()
1703 debugl1(bcs->cs, "closeisar clear BC_FLG_BUSY"); in close_isarstate()
1710 open_isarstate(struct IsdnCardState *cs, struct BCState *bcs) in open_isarstate() argument
1723 if (cs->debug & L1_DEB_HSCX) in open_isarstate()
1724 debugl1(cs, "openisar clear BC_FLG_BUSY"); in open_isarstate()
1746 isar_auxcmd(struct IsdnCardState *cs, isdn_ctrl *ic) { in isar_auxcmd() argument
1751 if (cs->debug & L1_DEB_HSCX) in isar_auxcmd()
1752 debugl1(cs, "isar_auxcmd cmd/ch %x/%ld", ic->command, ic->arg); in isar_auxcmd()
1755 bcs = cs->channel[ic->arg].bcs; in isar_auxcmd()
1756 if (cs->debug & L1_DEB_HSCX) in isar_auxcmd()
1757 debugl1(cs, "isar_auxcmd cmd/subcmd %d/%d", in isar_auxcmd()
1769 cs->iif.statcallb(ic); in isar_auxcmd()
1775 cs->iif.statcallb(ic); in isar_auxcmd()
1778 if (cs->debug & L1_DEB_HSCX) in isar_auxcmd()
1779 debugl1(cs, "isar_auxcmd %s=%d", in isar_auxcmd()
1785 cs->iif.statcallb(ic); in isar_auxcmd()
1796 if (cs->debug) in isar_auxcmd()
1797 debugl1(cs, "isar FTS=%d and FTI busy", in isar_auxcmd()
1801 if (cs->debug) in isar_auxcmd()
1802 debugl1(cs, "isar FTS=%d and isar.state not ready(%x)", in isar_auxcmd()
1807 cs->iif.statcallb(ic); in isar_auxcmd()
1819 cs->iif.statcallb(ic); in isar_auxcmd()
1830 cs->iif.statcallb(ic); in isar_auxcmd()
1833 if (cs->debug & L1_DEB_HSCX) in isar_auxcmd()
1834 debugl1(cs, "isar_auxcmd %s=%d", in isar_auxcmd()
1852 cs->iif.statcallb(ic); in isar_auxcmd()
1862 if (isar_load_firmware(cs, (u_char __user *)adr)) in isar_auxcmd()
1865 ll_run(cs, features); in isar_auxcmd()
1899 void initisar(struct IsdnCardState *cs) in initisar() argument
1901 cs->bcs[0].BC_SetStack = setstack_isar; in initisar()
1902 cs->bcs[1].BC_SetStack = setstack_isar; in initisar()
1903 cs->bcs[0].BC_Close = close_isarstate; in initisar()
1904 cs->bcs[1].BC_Close = close_isarstate; in initisar()
1905 cs->bcs[0].hw.isar.ftimer.function = (void *) ftimer_handler; in initisar()
1906 cs->bcs[0].hw.isar.ftimer.data = (long) &cs->bcs[0]; in initisar()
1907 init_timer(&cs->bcs[0].hw.isar.ftimer); in initisar()
1908 cs->bcs[1].hw.isar.ftimer.function = (void *) ftimer_handler; in initisar()
1909 cs->bcs[1].hw.isar.ftimer.data = (long) &cs->bcs[1]; in initisar()
1910 init_timer(&cs->bcs[1].hw.isar.ftimer); in initisar()