Searched refs:isar (Results 1 - 11 of 11) sorted by relevance

/linux-4.4.14/drivers/isdn/hardware/mISDN/
H A DmISDNisar.c33 #include "isar.h"
51 waitforHIA(struct isar_hw *isar, int timeout) waitforHIA() argument
54 u8 val = isar->read_reg(isar->hw, ISAR_HIA); waitforHIA()
59 val = isar->read_reg(isar->hw, ISAR_HIA); waitforHIA()
61 pr_debug("%s: HIA after %dus\n", isar->name, timeout - t); waitforHIA()
67 * if msg is NULL use isar->buf
70 send_mbox(struct isar_hw *isar, u8 his, u8 creg, u8 len, u8 *msg) send_mbox() argument
72 if (!waitforHIA(isar, 1000)) send_mbox()
75 isar->write_reg(isar->hw, ISAR_CTRL_H, creg); send_mbox()
76 isar->write_reg(isar->hw, ISAR_CTRL_L, len); send_mbox()
77 isar->write_reg(isar->hw, ISAR_WADR, 0); send_mbox()
79 msg = isar->buf; send_mbox()
81 isar->write_fifo(isar->hw, ISAR_MBOX, msg, len); send_mbox()
82 if (isar->ch[0].bch.debug & DEBUG_HW_BFIFO) { send_mbox()
87 isar->log, 256, 1); send_mbox()
88 pr_debug("%s: %s %02x: %s\n", isar->name, send_mbox()
89 __func__, l, isar->log); send_mbox()
94 isar->write_reg(isar->hw, ISAR_HIS, his); send_mbox()
95 waitforHIA(isar, 1000); send_mbox()
101 * if msg is NULL use isar->buf
104 rcv_mbox(struct isar_hw *isar, u8 *msg) rcv_mbox() argument
107 msg = isar->buf; rcv_mbox()
108 isar->write_reg(isar->hw, ISAR_RADR, 0); rcv_mbox()
109 if (msg && isar->clsb) { rcv_mbox()
110 isar->read_fifo(isar->hw, ISAR_MBOX, msg, isar->clsb); rcv_mbox()
111 if (isar->ch[0].bch.debug & DEBUG_HW_BFIFO) { rcv_mbox()
114 while (l < (int)isar->clsb) { rcv_mbox()
115 hex_dump_to_buffer(msg + l, isar->clsb - l, 32, rcv_mbox()
116 1, isar->log, 256, 1); rcv_mbox()
117 pr_debug("%s: %s %02x: %s\n", isar->name, rcv_mbox()
118 __func__, l, isar->log); rcv_mbox()
123 isar->write_reg(isar->hw, ISAR_IIA, 0); rcv_mbox()
127 get_irq_infos(struct isar_hw *isar) get_irq_infos() argument
129 isar->iis = isar->read_reg(isar->hw, ISAR_IIS); get_irq_infos()
130 isar->cmsb = isar->read_reg(isar->hw, ISAR_CTRL_H); get_irq_infos()
131 isar->clsb = isar->read_reg(isar->hw, ISAR_CTRL_L); get_irq_infos()
132 pr_debug("%s: rcv_mbox(%02x,%02x,%d)\n", isar->name, get_irq_infos()
133 isar->iis, isar->cmsb, isar->clsb); get_irq_infos()
142 poll_mbox(struct isar_hw *isar, int maxdelay) poll_mbox() argument
147 irq = isar->read_reg(isar->hw, ISAR_IRQBIT); poll_mbox()
153 get_irq_infos(isar); poll_mbox()
154 rcv_mbox(isar, NULL); poll_mbox()
157 isar->name, isar->clsb, maxdelay - t); poll_mbox()
162 ISARVersion(struct isar_hw *isar) ISARVersion() argument
167 isar->write_reg(isar->hw, ISAR_IRQBIT, 0); ISARVersion()
168 isar->buf[0] = ISAR_MSG_HWVER; ISARVersion()
169 isar->buf[1] = 0; ISARVersion()
170 isar->buf[2] = 1; ISARVersion()
171 if (!send_mbox(isar, ISAR_HIS_VNR, 0, 3, NULL)) ISARVersion()
173 if (!poll_mbox(isar, 1000)) ISARVersion()
175 if (isar->iis == ISAR_IIS_VNR) { ISARVersion()
176 if (isar->clsb == 1) { ISARVersion()
177 ver = isar->buf[0] & 0xf; ISARVersion()
186 load_firmware(struct isar_hw *isar, const u8 *buf, int size) load_firmware() argument
188 u32 saved_debug = isar->ch[0].bch.debug; load_firmware()
201 if (1 != isar->version) { load_firmware()
203 isar->name, isar->version); load_firmware()
207 isar->ch[0].bch.debug &= ~DEBUG_HW_BFIFO; load_firmware()
209 isar->name, size / 2, size); load_firmware()
213 spin_lock_irqsave(isar->hwlock, flags); load_firmware()
214 isar->write_reg(isar->hw, ISAR_IRQBIT, 0); load_firmware()
215 spin_unlock_irqrestore(isar->hwlock, flags); load_firmware()
226 isar->name, size, cnt + left); load_firmware()
230 spin_lock_irqsave(isar->hwlock, flags); load_firmware()
231 if (!send_mbox(isar, ISAR_HIS_DKEY, blk_head.d_key & 0xff, load_firmware()
237 if (!poll_mbox(isar, 1000)) { load_firmware()
242 spin_unlock_irqrestore(isar->hwlock, flags); load_firmware()
243 if ((isar->iis != ISAR_IIS_DKEY) || isar->cmsb || isar->clsb) { load_firmware()
245 isar->iis, isar->cmsb, isar->clsb); load_firmware()
255 mp = isar->buf; load_firmware()
262 pr_debug("%s: load %3d words at %04x\n", isar->name, load_firmware()
271 spin_lock_irqsave(isar->hwlock, flags); load_firmware()
272 if (!send_mbox(isar, ISAR_HIS_FIRM, 0, nom, NULL)) { load_firmware()
277 if (!poll_mbox(isar, 1000)) { load_firmware()
282 spin_unlock_irqrestore(isar->hwlock, flags); load_firmware()
283 if ((isar->iis != ISAR_IIS_FIRM) || load_firmware()
284 isar->cmsb || isar->clsb) { load_firmware()
286 isar->iis, isar->cmsb, isar->clsb); load_firmware()
292 isar->name, blk_head.len); load_firmware()
294 isar->ch[0].bch.debug = saved_debug; load_firmware()
299 isar->buf[0] = 0xff; load_firmware()
300 isar->buf[1] = 0xfe; load_firmware()
301 isar->bstat = 0; load_firmware()
302 spin_lock_irqsave(isar->hwlock, flags); load_firmware()
303 if (!send_mbox(isar, ISAR_HIS_STDSP, 0, 2, NULL)) { load_firmware()
308 if (!poll_mbox(isar, 1000)) { load_firmware()
313 if ((isar->iis != ISAR_IIS_STDSP) || isar->cmsb || isar->clsb) { load_firmware()
315 isar->iis, isar->cmsb, isar->clsb); load_firmware()
319 pr_debug("%s: ISAR start dsp success\n", isar->name); load_firmware()
323 isar->write_reg(isar->hw, ISAR_IRQBIT, ISAR_IRQSTA); load_firmware()
324 spin_unlock_irqrestore(isar->hwlock, flags); load_firmware()
326 while ((!isar->bstat) && cnt) { load_firmware()
336 isar->name, isar->bstat); load_firmware()
341 isar->iis = 0; load_firmware()
342 spin_lock_irqsave(isar->hwlock, flags); load_firmware()
343 if (!send_mbox(isar, ISAR_HIS_DIAG, ISAR_CTRL_STST, 0, NULL)) { load_firmware()
348 spin_unlock_irqrestore(isar->hwlock, flags); load_firmware()
350 while ((isar->iis != ISAR_IIS_DIAG) && cnt) { load_firmware()
360 if ((isar->cmsb == ISAR_CTRL_STST) && (isar->clsb == 1) load_firmware()
361 && (isar->buf[0] == 0)) load_firmware()
362 pr_debug("%s: ISAR selftest OK\n", isar->name); load_firmware()
365 isar->cmsb, isar->clsb, isar->buf[0]); load_firmware()
369 spin_lock_irqsave(isar->hwlock, flags); load_firmware()
370 isar->iis = 0; load_firmware()
371 if (!send_mbox(isar, ISAR_HIS_DIAG, ISAR_CTRL_SWVER, 0, NULL)) { load_firmware()
376 spin_unlock_irqrestore(isar->hwlock, flags); load_firmware()
378 while ((isar->iis != ISAR_IIS_DIAG) && cnt) { load_firmware()
388 if ((isar->cmsb == ISAR_CTRL_SWVER) && (isar->clsb == 1)) { load_firmware()
390 isar->name, isar->buf[0]); load_firmware()
393 " cnt(%d)\n", isar->name, isar->cmsb, load_firmware()
394 isar->clsb, cnt); load_firmware()
399 spin_lock_irqsave(isar->hwlock, flags); load_firmware()
400 isar_setup(isar); load_firmware()
401 spin_unlock_irqrestore(isar->hwlock, flags); load_firmware()
404 spin_lock_irqsave(isar->hwlock, flags); load_firmware()
406 isar->ch[0].bch.debug = saved_debug; load_firmware()
409 isar->write_reg(isar->hw, ISAR_IRQBIT, 0); load_firmware()
410 spin_unlock_irqrestore(isar->hwlock, flags); load_firmware()
673 sel_bch_isar(struct isar_hw *isar, u8 dpath) sel_bch_isar() argument
675 struct isar_ch *base = &isar->ch[0]; sel_bch_isar()
734 check_send(struct isar_hw *isar, u8 rdm) check_send() argument
738 pr_debug("%s: rdm %x\n", isar->name, rdm); check_send()
740 ch = sel_bch_isar(isar, 1); check_send()
750 ch = sel_bch_isar(isar, 2); check_send()
1050 mISDNisar_irq(struct isar_hw *isar) mISDNisar_irq() argument
1054 get_irq_infos(isar); mISDNisar_irq()
1055 switch (isar->iis & ISAR_IIS_MSCMSD) { mISDNisar_irq()
1057 ch = sel_bch_isar(isar, isar->iis >> 6); mISDNisar_irq()
1062 isar->name, isar->iis, isar->cmsb, mISDNisar_irq()
1063 isar->clsb); mISDNisar_irq()
1064 isar->write_reg(isar->hw, ISAR_IIA, 0); mISDNisar_irq()
1068 isar->write_reg(isar->hw, ISAR_IIA, 0); mISDNisar_irq()
1069 isar->bstat |= isar->cmsb; mISDNisar_irq()
1070 check_send(isar, isar->cmsb); mISDNisar_irq()
1074 ch = sel_bch_isar(isar, isar->iis >> 6); mISDNisar_irq()
1076 if (isar->cmsb == BSTEV_TBO) mISDNisar_irq()
1078 if (isar->cmsb == BSTEV_RBO) mISDNisar_irq()
1083 isar->name, isar->iis >> 6, isar->cmsb); mISDNisar_irq()
1084 isar->write_reg(isar->hw, ISAR_IIA, 0); mISDNisar_irq()
1087 ch = sel_bch_isar(isar, isar->iis >> 6); mISDNisar_irq()
1089 rcv_mbox(isar, NULL); mISDNisar_irq()
1091 isar_pump_statev_modem(ch, isar->cmsb); mISDNisar_irq()
1093 isar_pump_statev_fax(ch, isar->cmsb); mISDNisar_irq()
1096 tt = isar->cmsb | 0x30; mISDNisar_irq()
1109 isar->name, ch->bch.state, mISDNisar_irq()
1110 isar->cmsb); mISDNisar_irq()
1113 isar->name, isar->iis, isar->cmsb, mISDNisar_irq()
1114 isar->clsb); mISDNisar_irq()
1115 isar->write_reg(isar->hw, ISAR_IIA, 0); mISDNisar_irq()
1119 ch = sel_bch_isar(isar, isar->iis >> 6); mISDNisar_irq()
1121 rcv_mbox(isar, NULL); mISDNisar_irq()
1125 isar->name, isar->iis, isar->cmsb, mISDNisar_irq()
1126 isar->clsb); mISDNisar_irq()
1127 isar->write_reg(isar->hw, ISAR_IIA, 0); mISDNisar_irq()
1133 rcv_mbox(isar, NULL); mISDNisar_irq()
1136 rcv_mbox(isar, NULL); mISDNisar_irq()
1137 pr_debug("%s: invalid msg his:%x\n", isar->name, isar->cmsb); mISDNisar_irq()
1140 rcv_mbox(isar, NULL); mISDNisar_irq()
1142 isar->name, isar->iis, isar->cmsb, isar->clsb); mISDNisar_irq()
1459 isar_setup(struct isar_hw *isar) isar_setup() argument
1468 send_mbox(isar, (i ? ISAR_HIS_DPS2 : ISAR_HIS_DPS1) | isar_setup()
1470 isar->ch[i].mml = msg; isar_setup()
1471 isar->ch[i].bch.state = 0; isar_setup()
1472 isar->ch[i].dpath = i + 1; isar_setup()
1473 modeisar(&isar->ch[i], ISDN_P_NONE); isar_setup()
1548 pr_debug("%s: isar: new mod\n", ich->is->name); isar_l2l1()
1612 free_isar(struct isar_hw *isar) free_isar() argument
1614 modeisar(&isar->ch[0], ISDN_P_NONE); free_isar()
1615 modeisar(&isar->ch[1], ISDN_P_NONE); free_isar()
1616 del_timer(&isar->ch[0].ftimer); free_isar()
1617 del_timer(&isar->ch[1].ftimer); free_isar()
1618 test_and_clear_bit(FLG_INITIALIZED, &isar->ch[0].bch.Flags); free_isar()
1619 test_and_clear_bit(FLG_INITIALIZED, &isar->ch[1].bch.Flags); free_isar()
1623 init_isar(struct isar_hw *isar) init_isar() argument
1628 isar->version = ISARVersion(isar); init_isar()
1629 if (isar->ch[0].bch.debug & DEBUG_HW) init_isar()
1631 isar->name, isar->version, 3 - cnt); init_isar()
1632 if (isar->version == 1) init_isar()
1634 isar->ctrl(isar->hw, HW_RESET_REQ, 0); init_isar()
1636 if (isar->version != 1) init_isar()
1638 isar->ch[0].ftimer.function = &ftimer_handler; init_isar()
1639 isar->ch[0].ftimer.data = (long)&isar->ch[0]; init_isar()
1640 init_timer(&isar->ch[0].ftimer); init_isar()
1641 test_and_set_bit(FLG_INITIALIZED, &isar->ch[0].bch.Flags); init_isar()
1642 isar->ch[1].ftimer.function = &ftimer_handler; init_isar()
1643 isar->ch[1].ftimer.data = (long)&isar->ch[1]; init_isar()
1644 init_timer(&isar->ch[1].ftimer); init_isar()
1645 test_and_set_bit(FLG_INITIALIZED, &isar->ch[1].bch.Flags); init_isar()
1650 isar_open(struct isar_hw *isar, struct channel_req *rq) isar_open() argument
1658 bch = &isar->ch[rq->adr.channel - 1].bch; isar_open()
1667 mISDNisar_init(struct isar_hw *isar, void *hw) mISDNisar_init() argument
1671 isar->hw = hw; mISDNisar_init()
1673 isar->ch[i].bch.nr = i + 1; mISDNisar_init()
1674 mISDN_initbchannel(&isar->ch[i].bch, MAX_DATA_MEM, 32); mISDNisar_init()
1675 isar->ch[i].bch.ch.nr = i + 1; mISDNisar_init()
1676 isar->ch[i].bch.ch.send = &isar_l2l1; mISDNisar_init()
1677 isar->ch[i].bch.ch.ctrl = isar_bctrl; mISDNisar_init()
1678 isar->ch[i].bch.hw = hw; mISDNisar_init()
1679 isar->ch[i].is = isar; mISDNisar_init()
1682 isar->init = &init_isar; mISDNisar_init()
1683 isar->release = &free_isar; mISDNisar_init()
1684 isar->firmware = &load_firmware; mISDNisar_init()
1685 isar->open = &isar_open; mISDNisar_init()
H A Dspeedfax.c33 #include "isar.h"
82 struct isar_hw isar; member in struct:sfax_hw
92 card->isar.ch[0].bch.debug = debug; _set_debug()
93 card->isar.ch[1].bch.debug = debug; _set_debug()
141 mISDNisar_irq(&sf->isar); speedfax_irq()
264 err = sf->isar.open(&sf->isar, rq); sfax_dctrl()
345 ASSIGN_FUNC(IND, ISAR, sf->isar); setup_speedfax()
362 card->isar.release(&card->isar); release_card()
388 card->isar.hwlock = &card->lock; setup_instance()
389 card->isar.ctrl = (void *)&sfax_ctrl; setup_instance()
391 card->isar.name = card->name; setup_instance()
392 card->isar.owner = THIS_MODULE; setup_instance()
408 mISDNisar_init(&card->isar, card); setup_instance()
411 list_add(&card->isar.ch[i].bch.ch.list, setup_instance()
418 err = card->isar.init(&card->isar); setup_instance()
428 err = card->isar.firmware(&card->isar, firmware->data, firmware->size); setup_instance()
443 card->isar.release(&card->isar); setup_instance()
H A Disar.h3 * isar.h ISAR (Siemens PSB 7110) specific defines
/linux-4.4.14/drivers/isdn/hisax/
H A Disar.c1 /* $Id: isar.c,v 1.22.2.6 2004/02/11 13:21:34 keil Exp $
3 * isar.c ISAR (Siemens PSB 7110) specific routines
13 #include "isar.h"
136 struct isar_reg *ir = cs->bcs[0].hw.isar.reg; waitrecmsg()
143 printk(KERN_WARNING"isar recmsg IRQSTA timeout\n"); waitrecmsg()
177 if (cs->bcs[0].hw.isar.reg->iis == ISAR_IIS_VNR) { ISARVersion()
198 struct isar_reg *ireg = cs->bcs[0].hw.isar.reg; isar_load_firmware()
207 printk(KERN_ERR"isar_load_firmware wrong isar version %d\n", ret); isar_load_firmware()
253 printk(KERN_DEBUG"isar firmware block (%#x,%5d,%#x)\n", isar_load_firmware()
259 printk(KERN_ERR"isar sendmsg dkey failed\n"); isar_load_firmware()
263 printk(KERN_ERR"isar waitrecmsg dkey failed\n"); isar_load_firmware()
267 printk(KERN_ERR"isar wrong dkey response (%x,%x,%x)\n", isar_load_firmware()
292 printk(KERN_DEBUG"isar: load %3d words at %04x left %d\n", isar_load_firmware()
309 printk(KERN_ERR"isar sendmsg prog failed\n"); isar_load_firmware()
313 printk(KERN_ERR"isar waitrecmsg prog failed\n"); isar_load_firmware()
317 printk(KERN_ERR"isar wrong prog response (%x,%x,%x)\n", isar_load_firmware()
323 printk(KERN_DEBUG"isar firmware block %5d words loaded\n", isar_load_firmware()
335 printk(KERN_ERR"isar sendmsg start dsp failed\n"); isar_load_firmware()
339 printk(KERN_ERR"isar waitrecmsg start dsp failed\n"); isar_load_firmware()
343 printk(KERN_ERR"isar wrong start dsp response (%x,%x,%x)\n", isar_load_firmware()
347 printk(KERN_DEBUG"isar start dsp success\n"); isar_load_firmware()
358 printk(KERN_ERR"isar no general status event received\n"); isar_load_firmware()
361 printk(KERN_DEBUG"isar general status event %x\n", isar_load_firmware()
371 printk(KERN_ERR"isar sendmsg self tst failed\n"); isar_load_firmware()
382 printk(KERN_ERR"isar no self tst response\n"); isar_load_firmware()
387 printk(KERN_DEBUG"isar selftest OK\n"); isar_load_firmware()
389 printk(KERN_DEBUG"isar selftest not OK %x/%x/%x\n", isar_load_firmware()
396 printk(KERN_ERR"isar RQST SVN failed\n"); isar_load_firmware()
407 printk(KERN_ERR"isar no SVN response\n"); isar_load_firmware()
411 printk(KERN_DEBUG"isar software version %#x\n", isar_load_firmware()
414 printk(KERN_ERR"isar wrong swver response (%x,%x) cnt(%d)\n", isar_load_firmware()
495 struct isar_reg *ireg = bcs->hw.isar.reg; isar_rcv_frame()
498 debugl1(cs, "isar zero len frame"); isar_rcv_frame()
504 debugl1(cs, "isar mode 0 spurious IIS_RDATA %x/%x/%x", isar_rcv_frame()
506 printk(KERN_WARNING"isar mode 0 spurious IIS_RDATA %x/%x/%x\n", isar_rcv_frame()
522 if ((bcs->hw.isar.rcvidx + ireg->clsb) > HSCX_BUFMAX) { isar_rcv_frame()
526 bcs->hw.isar.rcvidx = 0; isar_rcv_frame()
529 debugl1(cs, "isar frame error %x len %d", isar_rcv_frame()
537 bcs->hw.isar.rcvidx = 0; isar_rcv_frame()
541 bcs->hw.isar.rcvidx = 0; isar_rcv_frame()
542 ptr = bcs->hw.isar.rcvbuf + bcs->hw.isar.rcvidx; isar_rcv_frame()
543 bcs->hw.isar.rcvidx += ireg->clsb; isar_rcv_frame()
546 if (bcs->hw.isar.rcvidx < 3) { /* last 2 bytes are the FCS */ isar_rcv_frame()
548 debugl1(cs, "isar frame to short %d", isar_rcv_frame()
549 bcs->hw.isar.rcvidx); isar_rcv_frame()
550 } else if (!(skb = dev_alloc_skb(bcs->hw.isar.rcvidx - 2))) { isar_rcv_frame()
553 memcpy(skb_put(skb, bcs->hw.isar.rcvidx - 2), isar_rcv_frame()
554 bcs->hw.isar.rcvbuf, bcs->hw.isar.rcvidx - 2); isar_rcv_frame()
558 bcs->hw.isar.rcvidx = 0; isar_rcv_frame()
563 if (bcs->hw.isar.state != STFAX_ACTIV) { isar_rcv_frame()
567 bcs->hw.isar.rcvidx = 0; isar_rcv_frame()
570 if (bcs->hw.isar.cmd == PCTRL_CMD_FRM) { isar_rcv_frame()
571 rcv_mbox(cs, ireg, bcs->hw.isar.rcvbuf); isar_rcv_frame()
572 bcs->hw.isar.rcvidx = ireg->clsb + isar_rcv_frame()
573 dle_count(bcs->hw.isar.rcvbuf, ireg->clsb); isar_rcv_frame()
576 ireg->clsb, bcs->hw.isar.rcvidx); isar_rcv_frame()
577 if ((skb = dev_alloc_skb(bcs->hw.isar.rcvidx))) { isar_rcv_frame()
578 insert_dle((u_char *)skb_put(skb, bcs->hw.isar.rcvidx), isar_rcv_frame()
579 bcs->hw.isar.rcvbuf, ireg->clsb); isar_rcv_frame()
585 bcs->hw.isar.rcvidx = 0; isar_rcv_frame()
587 sendmsg(cs, SET_DPS(bcs->hw.isar.dpath) | isar_rcv_frame()
590 bcs->hw.isar.state = STFAX_ESCAPE; isar_rcv_frame()
598 if (bcs->hw.isar.cmd != PCTRL_CMD_FRH) { isar_rcv_frame()
601 bcs->hw.isar.cmd); isar_rcv_frame()
603 bcs->hw.isar.rcvidx = 0; isar_rcv_frame()
607 if ((bcs->hw.isar.rcvidx + ireg->clsb) > HSCX_BUFMAX) { isar_rcv_frame()
611 bcs->hw.isar.rcvidx = 0; isar_rcv_frame()
614 debugl1(cs, "isar frame error %x len %d", isar_rcv_frame()
616 bcs->hw.isar.rcvidx = 0; isar_rcv_frame()
620 bcs->hw.isar.rcvidx = 0; isar_rcv_frame()
622 ptr = bcs->hw.isar.rcvbuf + bcs->hw.isar.rcvidx; isar_rcv_frame()
623 bcs->hw.isar.rcvidx += ireg->clsb; isar_rcv_frame()
626 int len = bcs->hw.isar.rcvidx + isar_rcv_frame()
627 dle_count(bcs->hw.isar.rcvbuf, bcs->hw.isar.rcvidx); isar_rcv_frame()
628 if (bcs->hw.isar.rcvidx < 3) { /* last 2 bytes are the FCS */ isar_rcv_frame()
630 debugl1(cs, "isar frame to short %d", isar_rcv_frame()
631 bcs->hw.isar.rcvidx); isar_rcv_frame()
633 bcs->hw.isar.rcvidx); isar_rcv_frame()
638 bcs->hw.isar.rcvbuf, isar_rcv_frame()
639 bcs->hw.isar.rcvidx); isar_rcv_frame()
646 bcs->hw.isar.rcvidx = 0; isar_rcv_frame()
652 bcs->hw.isar.rcvidx = 0; isar_rcv_frame()
653 sendmsg(cs, SET_DPS(bcs->hw.isar.dpath) | isar_rcv_frame()
655 bcs->hw.isar.state = STFAX_ESCAPE; isar_rcv_frame()
683 if (!(bcs->hw.isar.reg->bstat & isar_fill_fifo()
684 (bcs->hw.isar.dpath == 1 ? BSTAT_RDM1 : BSTAT_RDM2))) isar_fill_fifo()
686 if (bcs->tx_skb->len > bcs->hw.isar.mml) { isar_fill_fifo()
688 count = bcs->hw.isar.mml; isar_fill_fifo()
694 if (!bcs->hw.isar.txcnt) { isar_fill_fifo()
697 (bcs->hw.isar.cmd == PCTRL_CMD_FTH)) { isar_fill_fifo()
708 bcs->hw.isar.txcnt += count; isar_fill_fifo()
715 sendmsg(cs, SET_DPS(bcs->hw.isar.dpath) | ISAR_HIS_SDATA, isar_fill_fifo()
719 sendmsg(cs, SET_DPS(bcs->hw.isar.dpath) | ISAR_HIS_SDATA, isar_fill_fifo()
723 if (bcs->hw.isar.state != STFAX_ACTIV) { isar_fill_fifo()
726 } else if (bcs->hw.isar.cmd == PCTRL_CMD_FTH) { isar_fill_fifo()
727 sendmsg(cs, SET_DPS(bcs->hw.isar.dpath) | ISAR_HIS_SDATA, isar_fill_fifo()
729 } else if (bcs->hw.isar.cmd == PCTRL_CMD_FTM) { isar_fill_fifo()
730 sendmsg(cs, SET_DPS(bcs->hw.isar.dpath) | ISAR_HIS_SDATA, isar_fill_fifo()
750 if (cs->bcs[0].hw.isar.dpath == dpath) sel_bcs_isar()
752 if (cs->bcs[1].hw.isar.dpath == dpath) sel_bcs_isar()
769 bcs->ackcnt += bcs->hw.isar.txcnt; send_frames()
774 if (bcs->hw.isar.cmd == PCTRL_CMD_FTH) { send_frames()
778 } else if (bcs->hw.isar.cmd == PCTRL_CMD_FTM) { send_frames()
786 bcs->hw.isar.txcnt = 0; send_frames()
791 bcs->hw.isar.txcnt = 0; send_frames()
799 sendmsg(bcs->cs, SET_DPS(bcs->hw.isar.dpath) | send_frames()
848 if (!test_and_clear_bit(ISAR_RATE_REQ, &bcs->hw.isar.reg->Flags)) isar_pump_status_rsp()
890 sprintf(bcs->hw.isar.conmsg, "%s %s", dmril[ril], dmrim[rim]); isar_pump_status_rsp()
891 bcs->conmsg = bcs->hw.isar.conmsg; isar_pump_status_rsp()
899 u_char dps = SET_DPS(bcs->hw.isar.dpath); isar_pump_statev_modem()
932 test_and_set_bit(ISAR_RATE_REQ, &bcs->hw.isar.reg->Flags); isar_pump_statev_modem()
984 u_char dps = SET_DPS(bcs->hw.isar.dpath); isar_pump_statev_fax()
995 bcs->hw.isar.state = STFAX_READY; isar_pump_statev_fax()
1004 if (bcs->hw.isar.state == STFAX_LINE) { isar_pump_statev_fax()
1007 bcs->hw.isar.state = STFAX_CONT; isar_pump_statev_fax()
1012 bcs->hw.isar.state); isar_pump_statev_fax()
1016 if (bcs->hw.isar.state == STFAX_LINE) { isar_pump_statev_fax()
1019 bcs->hw.isar.state = STFAX_CONT; isar_pump_statev_fax()
1024 bcs->hw.isar.state); isar_pump_statev_fax()
1028 if (bcs->hw.isar.state == STFAX_LINE) { isar_pump_statev_fax()
1031 bcs->hw.isar.state = STFAX_CONT; isar_pump_statev_fax()
1036 bcs->hw.isar.state); isar_pump_statev_fax()
1040 if (bcs->hw.isar.state == STFAX_LINE) { isar_pump_statev_fax()
1043 bcs->hw.isar.state = STFAX_CONT; isar_pump_statev_fax()
1048 bcs->hw.isar.state); isar_pump_statev_fax()
1052 if (bcs->hw.isar.state == STFAX_CONT) { isar_pump_statev_fax()
1055 bcs->hw.isar.state = STFAX_ACTIV; isar_pump_statev_fax()
1056 test_and_set_bit(ISAR_RATE_REQ, &bcs->hw.isar.reg->Flags); isar_pump_statev_fax()
1058 if (bcs->hw.isar.cmd == PCTRL_CMD_FTH) { isar_pump_statev_fax()
1061 del_timer(&bcs->hw.isar.ftimer); isar_pump_statev_fax()
1063 bcs->hw.isar.ftimer.expires = isar_pump_statev_fax()
1067 add_timer(&bcs->hw.isar.ftimer); isar_pump_statev_fax()
1074 bcs->hw.isar.state); isar_pump_statev_fax()
1084 if (bcs->hw.isar.state == STFAX_ESCAPE) { isar_pump_statev_fax()
1086 switch (bcs->hw.isar.newcmd) { isar_pump_statev_fax()
1088 bcs->hw.isar.state = STFAX_READY; isar_pump_statev_fax()
1095 bcs->hw.isar.state = STFAX_SILDET; isar_pump_statev_fax()
1101 p1 = bcs->hw.isar.mod = bcs->hw.isar.newmod; isar_pump_statev_fax()
1102 bcs->hw.isar.newmod = 0; isar_pump_statev_fax()
1103 bcs->hw.isar.cmd = bcs->hw.isar.newcmd; isar_pump_statev_fax()
1104 bcs->hw.isar.newcmd = 0; isar_pump_statev_fax()
1106 bcs->hw.isar.cmd, 1, &p1); isar_pump_statev_fax()
1107 bcs->hw.isar.state = STFAX_LINE; isar_pump_statev_fax()
1108 bcs->hw.isar.try_mod = 3; isar_pump_statev_fax()
1112 debugl1(cs, "RSP_DISC unknown newcmd %x", bcs->hw.isar.newcmd); isar_pump_statev_fax()
1115 } else if (bcs->hw.isar.state == STFAX_ACTIV) { isar_pump_statev_fax()
1118 } else if (bcs->hw.isar.cmd == PCTRL_CMD_FRM) { isar_pump_statev_fax()
1124 bcs->hw.isar.state = STFAX_READY; isar_pump_statev_fax()
1126 bcs->hw.isar.state = STFAX_READY; isar_pump_statev_fax()
1133 if (bcs->hw.isar.state == STFAX_SILDET) { isar_pump_statev_fax()
1134 p1 = bcs->hw.isar.mod = bcs->hw.isar.newmod; isar_pump_statev_fax()
1135 bcs->hw.isar.newmod = 0; isar_pump_statev_fax()
1136 bcs->hw.isar.cmd = bcs->hw.isar.newcmd; isar_pump_statev_fax()
1137 bcs->hw.isar.newcmd = 0; isar_pump_statev_fax()
1139 bcs->hw.isar.cmd, 1, &p1); isar_pump_statev_fax()
1140 bcs->hw.isar.state = STFAX_LINE; isar_pump_statev_fax()
1141 bcs->hw.isar.try_mod = 3; isar_pump_statev_fax()
1149 if (bcs->hw.isar.state == STFAX_LINE) { isar_pump_statev_fax()
1152 bcs->hw.isar.try_mod); isar_pump_statev_fax()
1153 if (bcs->hw.isar.try_mod--) { isar_pump_statev_fax()
1155 bcs->hw.isar.cmd, 1, isar_pump_statev_fax()
1156 &bcs->hw.isar.mod); isar_pump_statev_fax()
1162 bcs->hw.isar.state = STFAX_ESCAPE; isar_pump_statev_fax()
1176 struct isar_reg *ireg = cs->bcs[0].hw.isar.reg; isar_int_main()
1185 debugl1(cs, "isar spurious IIS_RDATA %x/%x/%x", isar_int_main()
1221 debugl1(cs, "isar IIS_PSTEV pmode %d stat %x", isar_int_main()
1225 debugl1(cs, "isar spurious IIS_PSTEV %x/%x/%x", isar_int_main()
1235 debugl1(cs, "isar spurious IIS_PSTRSP %x/%x/%x", isar_int_main()
1286 u_char dps = SET_DPS(bcs->hw.isar.dpath); setup_pump()
1321 bcs->hw.isar.state = STFAX_NULL; setup_pump()
1322 bcs->hw.isar.newcmd = 0; setup_pump()
1323 bcs->hw.isar.newmod = 0; setup_pump()
1335 u_char dps = SET_DPS(bcs->hw.isar.dpath); setup_sart()
1371 u_char dps = SET_DPS(bcs->hw.isar.dpath); setup_iom2()
1380 msg[1] = msg[3] = bcs->hw.isar.dpath + 2; setup_iom2()
1406 if (!bcs->hw.isar.dpath) modeisar()
1414 &bcs->hw.isar.reg->Flags)) modeisar()
1415 bcs->hw.isar.dpath = 2; modeisar()
1417 &bcs->hw.isar.reg->Flags)) modeisar()
1418 bcs->hw.isar.dpath = 1; modeisar()
1420 printk(KERN_WARNING"isar modeisar both paths in use\n"); modeisar()
1428 &bcs->hw.isar.reg->Flags)) modeisar()
1429 bcs->hw.isar.dpath = 1; modeisar()
1431 printk(KERN_WARNING"isar modeisar analog functions only with DP1\n"); modeisar()
1432 debugl1(cs, "isar modeisar analog functions only with DP1"); modeisar()
1439 debugl1(cs, "isar dp%d mode %d->%d ichan %d", modeisar()
1440 bcs->hw.isar.dpath, bcs->mode, mode, bc); modeisar()
1447 if (bcs->hw.isar.dpath == 1) modeisar()
1448 test_and_clear_bit(ISAR_DP1_USE, &bcs->hw.isar.reg->Flags); modeisar()
1449 else if (bcs->hw.isar.dpath == 2) modeisar()
1450 test_and_clear_bit(ISAR_DP2_USE, &bcs->hw.isar.reg->Flags); modeisar()
1451 bcs->hw.isar.dpath = 0; modeisar()
1460 u_char dps = SET_DPS(bcs->hw.isar.dpath); isar_pump_cmd()
1466 if (bcs->hw.isar.state == STFAX_READY) { isar_pump_cmd()
1470 bcs->hw.isar.state = STFAX_LINE; isar_pump_cmd()
1471 bcs->hw.isar.cmd = ctrl; isar_pump_cmd()
1472 bcs->hw.isar.mod = para; isar_pump_cmd()
1473 bcs->hw.isar.newmod = 0; isar_pump_cmd()
1474 bcs->hw.isar.newcmd = 0; isar_pump_cmd()
1475 bcs->hw.isar.try_mod = 3; isar_pump_cmd()
1476 } else if ((bcs->hw.isar.state == STFAX_ACTIV) && isar_pump_cmd()
1477 (bcs->hw.isar.cmd == PCTRL_CMD_FTM) && isar_pump_cmd()
1478 (bcs->hw.isar.mod == para)) { isar_pump_cmd()
1481 bcs->hw.isar.newmod = para; isar_pump_cmd()
1482 bcs->hw.isar.newcmd = PCTRL_CMD_FTM; isar_pump_cmd()
1485 bcs->hw.isar.state = STFAX_ESCAPE; isar_pump_cmd()
1490 if (bcs->hw.isar.state == STFAX_READY) { isar_pump_cmd()
1494 bcs->hw.isar.state = STFAX_LINE; isar_pump_cmd()
1495 bcs->hw.isar.cmd = ctrl; isar_pump_cmd()
1496 bcs->hw.isar.mod = para; isar_pump_cmd()
1497 bcs->hw.isar.newmod = 0; isar_pump_cmd()
1498 bcs->hw.isar.newcmd = 0; isar_pump_cmd()
1499 bcs->hw.isar.try_mod = 3; isar_pump_cmd()
1500 } else if ((bcs->hw.isar.state == STFAX_ACTIV) && isar_pump_cmd()
1501 (bcs->hw.isar.cmd == PCTRL_CMD_FTH) && isar_pump_cmd()
1502 (bcs->hw.isar.mod == para)) { isar_pump_cmd()
1505 bcs->hw.isar.newmod = para; isar_pump_cmd()
1506 bcs->hw.isar.newcmd = PCTRL_CMD_FTH; isar_pump_cmd()
1509 bcs->hw.isar.state = STFAX_ESCAPE; isar_pump_cmd()
1514 if (bcs->hw.isar.state == STFAX_READY) { isar_pump_cmd()
1518 bcs->hw.isar.state = STFAX_LINE; isar_pump_cmd()
1519 bcs->hw.isar.cmd = ctrl; isar_pump_cmd()
1520 bcs->hw.isar.mod = para; isar_pump_cmd()
1521 bcs->hw.isar.newmod = 0; isar_pump_cmd()
1522 bcs->hw.isar.newcmd = 0; isar_pump_cmd()
1523 bcs->hw.isar.try_mod = 3; isar_pump_cmd()
1524 } else if ((bcs->hw.isar.state == STFAX_ACTIV) && isar_pump_cmd()
1525 (bcs->hw.isar.cmd == PCTRL_CMD_FRM) && isar_pump_cmd()
1526 (bcs->hw.isar.mod == para)) { isar_pump_cmd()
1529 bcs->hw.isar.newmod = para; isar_pump_cmd()
1530 bcs->hw.isar.newcmd = PCTRL_CMD_FRM; isar_pump_cmd()
1533 bcs->hw.isar.state = STFAX_ESCAPE; isar_pump_cmd()
1538 if (bcs->hw.isar.state == STFAX_READY) { isar_pump_cmd()
1542 bcs->hw.isar.state = STFAX_LINE; isar_pump_cmd()
1543 bcs->hw.isar.cmd = ctrl; isar_pump_cmd()
1544 bcs->hw.isar.mod = para; isar_pump_cmd()
1545 bcs->hw.isar.newmod = 0; isar_pump_cmd()
1546 bcs->hw.isar.newcmd = 0; isar_pump_cmd()
1547 bcs->hw.isar.try_mod = 3; isar_pump_cmd()
1548 } else if ((bcs->hw.isar.state == STFAX_ACTIV) && isar_pump_cmd()
1549 (bcs->hw.isar.cmd == PCTRL_CMD_FRH) && isar_pump_cmd()
1550 (bcs->hw.isar.mod == para)) { isar_pump_cmd()
1553 bcs->hw.isar.newmod = para; isar_pump_cmd()
1554 bcs->hw.isar.newcmd = PCTRL_CMD_FRH; isar_pump_cmd()
1557 bcs->hw.isar.state = STFAX_ESCAPE; isar_pump_cmd()
1561 bcs->hw.isar.state = STFAX_NULL; isar_pump_cmd()
1582 cs->bcs[i].hw.isar.mml = msg; isar_setup()
1584 cs->bcs[i].hw.isar.dpath = i + 1; isar_setup()
1608 bcs->hw.isar.txcnt = 0; isar_l2l1()
1622 bcs->hw.isar.txcnt = 0; isar_l2l1()
1637 bcs->hw.isar.conmsg[0] = 0; isar_l2l1()
1694 kfree(bcs->hw.isar.rcvbuf); close_isarstate()
1695 bcs->hw.isar.rcvbuf = NULL; close_isarstate()
1706 del_timer(&bcs->hw.isar.ftimer); close_isarstate()
1713 if (!(bcs->hw.isar.rcvbuf = kmalloc(HSCX_BUFMAX, GFP_ATOMIC))) { open_isarstate()
1715 "HiSax: No memory for isar.rcvbuf\n"); open_isarstate()
1726 bcs->hw.isar.rcvidx = 0; open_isarstate()
1781 if (bcs->hw.isar.state == STFAX_READY) { isar_auxcmd()
1790 bcs->hw.isar.ftimer.expires = isar_auxcmd()
1793 add_timer(&bcs->hw.isar.ftimer); isar_auxcmd()
1797 debugl1(cs, "isar FTS=%d and FTI busy", isar_auxcmd()
1802 debugl1(cs, "isar FTS=%d and isar.state not ready(%x)", isar_auxcmd()
1803 ic->parm.aux.para[0], bcs->hw.isar.state); isar_auxcmd()
1816 "%d", bcs->hw.isar.mod); isar_auxcmd()
1905 cs->bcs[0].hw.isar.ftimer.function = (void *) ftimer_handler; initisar()
1906 cs->bcs[0].hw.isar.ftimer.data = (long) &cs->bcs[0]; initisar()
1907 init_timer(&cs->bcs[0].hw.isar.ftimer); initisar()
1908 cs->bcs[1].hw.isar.ftimer.function = (void *) ftimer_handler; initisar()
1909 cs->bcs[1].hw.isar.ftimer.data = (long) &cs->bcs[1]; initisar()
1910 init_timer(&cs->bcs[1].hw.isar.ftimer); initisar()
H A Disurf.c16 #include "isar.h"
74 return (readb(cs->hw.isurf.isar + offset)); ReadISAR()
80 writeb(value, cs->hw.isurf.isar + offset); mb(); WriteISAR()
92 val = readb(cs->hw.isurf.isar + ISAR_IRQBIT); isurf_interrupt()
100 val = readb(cs->hw.isurf.isar + ISAR_IRQBIT); isurf_interrupt()
115 writeb(0, cs->hw.isurf.isar + ISAR_IRQBIT); mb(); isurf_interrupt()
118 writeb(ISAR_IRQMSK, cs->hw.isurf.isar + ISAR_IRQBIT); mb(); isurf_interrupt()
127 iounmap(cs->hw.isurf.isar); release_io_isurf()
160 writeb(0, cs->hw.isurf.isar + ISAR_IRQBIT); mb(); ISurf_card_msg()
274 cs->hw.isurf.isar = ioremap(cs->hw.isurf.phymem, ISURF_IOMEM_SIZE); setup_isurf()
275 cs->hw.isurf.isac = cs->hw.isurf.isar + ISURF_ISAC_OFFSET; setup_isurf()
290 cs->bcs[0].hw.isar.reg = &cs->hw.isurf.isar_r; setup_isurf()
291 cs->bcs[1].hw.isar.reg = &cs->hw.isurf.isar_r; setup_isurf()
H A DMakefile43 isar.o
52 hisax-$(CONFIG_HISAX_ISURF) += isurf.o isac.o arcofi.o isar.o
H A Disar.h1 /* $Id: isar.h,v 1.11.2.2 2004/01/12 22:52:27 keil Exp $
H A Dsedlbauer.c46 #include "isar.h"
822 cs->bcs[0].hw.isar.reg = &cs->hw.sedl.isar; setup_sedlbauer()
823 cs->bcs[1].hw.isar.reg = &cs->hw.sedl.isar; setup_sedlbauer()
H A Dhisax.h525 struct isar_hw isar; member in union:BCState::__anon5631
654 struct isar_reg isar; member in struct:sedl_hw
763 void __iomem *isar; member in struct:isurf_hw
/linux-4.4.14/include/linux/
H A DmISDNhw.h64 /* isar specific */
/linux-4.4.14/drivers/i2c/busses/
H A Di2c-pxa.c48 u32 isar; member in struct:pxa_reg_layout
69 .isar = 0x20,
76 .isar = 0x10,
83 /* no isar register */
90 .isar = 0x20,
1238 i2c->reg_isar = i2c->reg_base + pxa_reg_layout[i2c_type].isar; i2c_pxa_probe()

Completed in 255 milliseconds