Lines Matching refs:cs

31 NETjet_ReadIC(struct IsdnCardState *cs, u_char offset)  in NETjet_ReadIC()  argument
35 cs->hw.njet.auxd &= 0xfc; in NETjet_ReadIC()
36 cs->hw.njet.auxd |= (offset >> 4) & 3; in NETjet_ReadIC()
37 byteout(cs->hw.njet.auxa, cs->hw.njet.auxd); in NETjet_ReadIC()
38 ret = bytein(cs->hw.njet.isac + ((offset & 0xf) << 2)); in NETjet_ReadIC()
43 NETjet_WriteIC(struct IsdnCardState *cs, u_char offset, u_char value) in NETjet_WriteIC() argument
45 cs->hw.njet.auxd &= 0xfc; in NETjet_WriteIC()
46 cs->hw.njet.auxd |= (offset >> 4) & 3; in NETjet_WriteIC()
47 byteout(cs->hw.njet.auxa, cs->hw.njet.auxd); in NETjet_WriteIC()
48 byteout(cs->hw.njet.isac + ((offset & 0xf) << 2), value); in NETjet_WriteIC()
52 NETjet_ReadICfifo(struct IsdnCardState *cs, u_char *data, int size) in NETjet_ReadICfifo() argument
54 cs->hw.njet.auxd &= 0xfc; in NETjet_ReadICfifo()
55 byteout(cs->hw.njet.auxa, cs->hw.njet.auxd); in NETjet_ReadICfifo()
56 insb(cs->hw.njet.isac, data, size); in NETjet_ReadICfifo()
60 NETjet_WriteICfifo(struct IsdnCardState *cs, u_char *data, int size) in NETjet_WriteICfifo() argument
62 cs->hw.njet.auxd &= 0xfc; in NETjet_WriteICfifo()
63 byteout(cs->hw.njet.auxa, cs->hw.njet.auxd); in NETjet_WriteICfifo()
64 outsb(cs->hw.njet.isac, data, size); in NETjet_WriteICfifo()
89 struct IsdnCardState *cs = bcs->cs; in mode_tiger() local
92 if (cs->debug & L1_DEB_HSCX) in mode_tiger()
93 debugl1(cs, "Tiger mode %d bchan %d/%d", in mode_tiger()
101 if (cs->debug & L1_DEB_HSCX) in mode_tiger()
102 debugl1(cs, "Tiger stat rec %d/%d send %d", in mode_tiger()
105 if ((cs->bcs[0].mode == L1_MODE_NULL) && in mode_tiger()
106 (cs->bcs[1].mode == L1_MODE_NULL)) { in mode_tiger()
107 cs->hw.njet.dmactrl = 0; in mode_tiger()
108 byteout(cs->hw.njet.base + NETJET_DMACTRL, in mode_tiger()
109 cs->hw.njet.dmactrl); in mode_tiger()
110 byteout(cs->hw.njet.base + NETJET_IRQMASK0, 0); in mode_tiger()
112 if (cs->typ == ISDN_CTYPE_NETJET_S) in mode_tiger()
118 cs->hw.njet.auxd &= led; in mode_tiger()
119 byteout(cs->hw.njet.auxa, cs->hw.njet.auxd); in mode_tiger()
134 if (!cs->hw.njet.dmactrl) { in mode_tiger()
137 cs->hw.njet.dmactrl = 1; in mode_tiger()
138 byteout(cs->hw.njet.base + NETJET_DMACTRL, in mode_tiger()
139 cs->hw.njet.dmactrl); in mode_tiger()
140 byteout(cs->hw.njet.base + NETJET_IRQMASK0, 0x0f); in mode_tiger()
146 if (cs->typ == ISDN_CTYPE_NETJET_S) in mode_tiger()
151 cs->hw.njet.auxd |= led; in mode_tiger()
152 byteout(cs->hw.njet.auxa, cs->hw.njet.auxd); in mode_tiger()
156 if (cs->debug & L1_DEB_HSCX) in mode_tiger()
157 debugl1(cs, "tiger: set %x %x %x %x/%x pulse=%d", in mode_tiger()
158 bytein(cs->hw.njet.base + NETJET_DMACTRL), in mode_tiger()
159 bytein(cs->hw.njet.base + NETJET_IRQMASK0), in mode_tiger()
160 bytein(cs->hw.njet.base + NETJET_IRQSTAT0), in mode_tiger()
161 inl(cs->hw.njet.base + NETJET_DMA_READ_ADR), in mode_tiger()
162 inl(cs->hw.njet.base + NETJET_DMA_WRITE_ADR), in mode_tiger()
163 bytein(cs->hw.njet.base + NETJET_PULSE_CNT)); in mode_tiger()
166 static void printframe(struct IsdnCardState *cs, u_char *buf, int count, char *s) { in printframe() argument
179 debugl1(cs, "%s", tmp); in printframe()
227 debugl1(bcs->cs, "tiger make_raw: NULL skb"); in make_raw_data()
256 if (bcs->cs->debug & L1_DEB_HSCX) in make_raw_data()
257 debugl1(bcs->cs, "tiger make_raw: in %u out %d.%d", in make_raw_data()
317 debugl1(bcs->cs, "tiger make_raw_56k: NULL skb"); in make_raw_data_56k()
363 if (bcs->cs->debug & L1_DEB_HSCX) in make_raw_data_56k()
364 debugl1(bcs->cs, "tiger make_raw_56k: in %u out %d.%d", in make_raw_data_56k()
392 if (bcs->cs->debug & L1_DEB_RECEIVE_FRAME) in got_frame()
393 printframe(bcs->cs, bcs->hw.tiger.rcvbuf, count, "rec"); in got_frame()
438 if (bcs->cs->debug & L1_DEB_HSCX) in read_raw()
439 debugl1(bcs->cs, "tiger read_raw: zBit(%d,%d,%d) %x", in read_raw()
453 if (bcs->cs->debug & L1_DEB_HSCX) in read_raw()
454 debugl1(bcs->cs, "tiger read_raw: flag(%d,%d,%d) %x", in read_raw()
489 if (bcs->cs->debug & L1_DEB_HSCX) in read_raw()
490 debugl1(bcs->cs, "tiger read_raw: byte1(%d,%d,%d) rval %x val %x i %x", in read_raw()
492 bcs->cs->hw.njet.irqstat0); in read_raw()
511 debugl1(bcs->cs, "tiger: frame not byte aligned"); in read_raw()
518 if (bcs->cs->debug & L1_DEB_HSCX) in read_raw()
519 debugl1(bcs->cs, "tiger frame end(%d,%d): fcs(%x) i %x", in read_raw()
520 i, j, bcs->hw.tiger.r_fcs, bcs->cs->hw.njet.irqstat0); in read_raw()
524 if (bcs->cs->debug) { in read_raw()
525 debugl1(bcs->cs, "tiger FCS error"); in read_raw()
526 printframe(bcs->cs, bcs->hw.tiger.rcvbuf, in read_raw()
551 debugl1(bcs->cs, "tiger: frame too big"); in read_raw()
575 void read_tiger(struct IsdnCardState *cs) { in read_tiger() argument
579 if ((cs->hw.njet.irqstat0 & cs->hw.njet.last_is0) & NETJET_IRQM0_READ) { in read_tiger()
580 debugl1(cs, "tiger warn read double dma %x/%x", in read_tiger()
581 cs->hw.njet.irqstat0, cs->hw.njet.last_is0); in read_tiger()
583 if (cs->bcs[0].mode) in read_tiger()
584 cs->bcs[0].err_rdo++; in read_tiger()
585 if (cs->bcs[1].mode) in read_tiger()
586 cs->bcs[1].err_rdo++; in read_tiger()
590 cs->hw.njet.last_is0 &= ~NETJET_IRQM0_READ; in read_tiger()
591 cs->hw.njet.last_is0 |= (cs->hw.njet.irqstat0 & NETJET_IRQM0_READ); in read_tiger()
593 if (cs->hw.njet.irqstat0 & NETJET_IRQM0_READ_1) in read_tiger()
594 p = cs->bcs[0].hw.tiger.rec + NETJET_DMA_RXSIZE - 1; in read_tiger()
596 p = cs->bcs[0].hw.tiger.rec + cnt - 1; in read_tiger()
597 if ((cs->bcs[0].mode == L1_MODE_HDLC) || (cs->bcs[0].mode == L1_MODE_HDLC_56K)) in read_tiger()
598 read_raw(cs->bcs, p, cnt); in read_tiger()
600 if ((cs->bcs[1].mode == L1_MODE_HDLC) || (cs->bcs[1].mode == L1_MODE_HDLC_56K)) in read_tiger()
601 read_raw(cs->bcs + 1, p, cnt); in read_tiger()
602 cs->hw.njet.irqstat0 &= ~NETJET_IRQM0_READ; in read_tiger()
614 if (bcs->cs->debug & L1_DEB_HSCX) in netjet_fill_dma()
615 debugl1(bcs->cs, "tiger fill_dma1: c%d %4lx", bcs->channel, in netjet_fill_dma()
627 if (bcs->cs->debug & L1_DEB_HSCX) in netjet_fill_dma()
628 debugl1(bcs->cs, "tiger fill_dma2: c%d %4lx", bcs->channel, in netjet_fill_dma()
633 p = bus_to_virt(inl(bcs->cs->hw.njet.base + NETJET_DMA_READ_ADR)); in netjet_fill_dma()
654 p = bus_to_virt(inl(bcs->cs->hw.njet.base + NETJET_DMA_READ_ADR)); in netjet_fill_dma()
669 if (bcs->cs->debug & L1_DEB_HSCX) in netjet_fill_dma()
670 debugl1(bcs->cs, "tiger fill_dma3: c%d %4lx", bcs->channel, in netjet_fill_dma()
701 if (bcs->cs->debug & L1_DEB_HSCX) in write_raw()
702 debugl1(bcs->cs, "tiger write_raw: c%d %p-%p %d/%d %d %x", bcs->channel, in write_raw()
704 bcs->hw.tiger.sendcnt, bcs->cs->hw.njet.irqstat0); in write_raw()
705 if (bcs->cs->debug & L1_DEB_HSCX_FIFO) in write_raw()
706 printframe(bcs->cs, bcs->hw.tiger.sp, s_cnt, "snd"); in write_raw()
711 debugl1(bcs->cs, "tiger write_raw: NULL skb s_cnt %d", s_cnt); in write_raw()
742 if (bcs->cs->debug & L1_DEB_HSCX) in write_raw()
743 debugl1(bcs->cs, "tiger write_raw: fill rest %d", in write_raw()
754 if (bcs->cs->debug & L1_DEB_HSCX) in write_raw()
755 debugl1(bcs->cs, "tiger write_raw: fill half"); in write_raw()
759 if (bcs->cs->debug & L1_DEB_HSCX) in write_raw()
760 debugl1(bcs->cs, "tiger write_raw: fill full"); in write_raw()
764 void write_tiger(struct IsdnCardState *cs) { in write_tiger() argument
767 if ((cs->hw.njet.irqstat0 & cs->hw.njet.last_is0) & NETJET_IRQM0_WRITE) { in write_tiger()
768 debugl1(cs, "tiger warn write double dma %x/%x", in write_tiger()
769 cs->hw.njet.irqstat0, cs->hw.njet.last_is0); in write_tiger()
771 if (cs->bcs[0].mode) in write_tiger()
772 cs->bcs[0].err_tx++; in write_tiger()
773 if (cs->bcs[1].mode) in write_tiger()
774 cs->bcs[1].err_tx++; in write_tiger()
778 cs->hw.njet.last_is0 &= ~NETJET_IRQM0_WRITE; in write_tiger()
779 cs->hw.njet.last_is0 |= (cs->hw.njet.irqstat0 & NETJET_IRQM0_WRITE); in write_tiger()
781 if (cs->hw.njet.irqstat0 & NETJET_IRQM0_WRITE_1) in write_tiger()
782 p = cs->bcs[0].hw.tiger.send + NETJET_DMA_TXSIZE - 1; in write_tiger()
784 p = cs->bcs[0].hw.tiger.send + cnt - 1; in write_tiger()
785 if ((cs->bcs[0].mode == L1_MODE_HDLC) || (cs->bcs[0].mode == L1_MODE_HDLC_56K)) in write_tiger()
786 write_raw(cs->bcs, p, cnt); in write_tiger()
787 if ((cs->bcs[1].mode == L1_MODE_HDLC) || (cs->bcs[1].mode == L1_MODE_HDLC_56K)) in write_tiger()
788 write_raw(cs->bcs + 1, p, cnt); in write_tiger()
789 cs->hw.njet.irqstat0 &= ~NETJET_IRQM0_WRITE; in write_tiger()
801 spin_lock_irqsave(&bcs->cs->lock, flags); in tiger_l2l1()
806 bcs->cs->BC_Send_Data(bcs); in tiger_l2l1()
808 spin_unlock_irqrestore(&bcs->cs->lock, flags); in tiger_l2l1()
811 spin_lock_irqsave(&bcs->cs->lock, flags); in tiger_l2l1()
816 bcs->cs->BC_Send_Data(bcs); in tiger_l2l1()
818 spin_unlock_irqrestore(&bcs->cs->lock, flags); in tiger_l2l1()
828 spin_lock_irqsave(&bcs->cs->lock, flags); in tiger_l2l1()
832 spin_unlock_irqrestore(&bcs->cs->lock, flags); in tiger_l2l1()
833 bcs->cs->cardmsg(bcs->cs, MDL_BC_ASSIGN, (void *)(&st->l1.bc)); in tiger_l2l1()
838 bcs->cs->cardmsg(bcs->cs, MDL_BC_RELEASE, (void *)(&st->l1.bc)); in tiger_l2l1()
842 spin_lock_irqsave(&bcs->cs->lock, flags); in tiger_l2l1()
846 spin_unlock_irqrestore(&bcs->cs->lock, flags); in tiger_l2l1()
873 open_tigerstate(struct IsdnCardState *cs, struct BCState *bcs) in open_tigerstate() argument
913 inittiger(struct IsdnCardState *cs) in inittiger() argument
915 if (!(cs->bcs[0].hw.tiger.send = kmalloc(NETJET_DMA_TXSIZE * sizeof(unsigned int), in inittiger()
921 cs->bcs[0].hw.tiger.s_irq = cs->bcs[0].hw.tiger.send + NETJET_DMA_TXSIZE / 2 - 1; in inittiger()
922 cs->bcs[0].hw.tiger.s_end = cs->bcs[0].hw.tiger.send + NETJET_DMA_TXSIZE - 1; in inittiger()
923 cs->bcs[1].hw.tiger.send = cs->bcs[0].hw.tiger.send; in inittiger()
924 cs->bcs[1].hw.tiger.s_irq = cs->bcs[0].hw.tiger.s_irq; in inittiger()
925 cs->bcs[1].hw.tiger.s_end = cs->bcs[0].hw.tiger.s_end; in inittiger()
927 memset(cs->bcs[0].hw.tiger.send, 0xff, NETJET_DMA_TXSIZE * sizeof(unsigned int)); in inittiger()
928 debugl1(cs, "tiger: send buf %p - %p", cs->bcs[0].hw.tiger.send, in inittiger()
929 cs->bcs[0].hw.tiger.send + NETJET_DMA_TXSIZE - 1); in inittiger()
930 outl(virt_to_bus(cs->bcs[0].hw.tiger.send), in inittiger()
931 cs->hw.njet.base + NETJET_DMA_READ_START); in inittiger()
932 outl(virt_to_bus(cs->bcs[0].hw.tiger.s_irq), in inittiger()
933 cs->hw.njet.base + NETJET_DMA_READ_IRQ); in inittiger()
934 outl(virt_to_bus(cs->bcs[0].hw.tiger.s_end), in inittiger()
935 cs->hw.njet.base + NETJET_DMA_READ_END); in inittiger()
936 if (!(cs->bcs[0].hw.tiger.rec = kmalloc(NETJET_DMA_RXSIZE * sizeof(unsigned int), in inittiger()
942 debugl1(cs, "tiger: rec buf %p - %p", cs->bcs[0].hw.tiger.rec, in inittiger()
943 cs->bcs[0].hw.tiger.rec + NETJET_DMA_RXSIZE - 1); in inittiger()
944 cs->bcs[1].hw.tiger.rec = cs->bcs[0].hw.tiger.rec; in inittiger()
945 memset(cs->bcs[0].hw.tiger.rec, 0xff, NETJET_DMA_RXSIZE * sizeof(unsigned int)); in inittiger()
946 outl(virt_to_bus(cs->bcs[0].hw.tiger.rec), in inittiger()
947 cs->hw.njet.base + NETJET_DMA_WRITE_START); in inittiger()
948 outl(virt_to_bus(cs->bcs[0].hw.tiger.rec + NETJET_DMA_RXSIZE / 2 - 1), in inittiger()
949 cs->hw.njet.base + NETJET_DMA_WRITE_IRQ); in inittiger()
950 outl(virt_to_bus(cs->bcs[0].hw.tiger.rec + NETJET_DMA_RXSIZE - 1), in inittiger()
951 cs->hw.njet.base + NETJET_DMA_WRITE_END); in inittiger()
952 debugl1(cs, "tiger: dmacfg %x/%x pulse=%d", in inittiger()
953 inl(cs->hw.njet.base + NETJET_DMA_WRITE_ADR), in inittiger()
954 inl(cs->hw.njet.base + NETJET_DMA_READ_ADR), in inittiger()
955 bytein(cs->hw.njet.base + NETJET_PULSE_CNT)); in inittiger()
956 cs->hw.njet.last_is0 = 0; in inittiger()
957 cs->bcs[0].BC_SetStack = setstack_tiger; in inittiger()
958 cs->bcs[1].BC_SetStack = setstack_tiger; in inittiger()
959 cs->bcs[0].BC_Close = close_tigerstate; in inittiger()
960 cs->bcs[1].BC_Close = close_tigerstate; in inittiger()
964 releasetiger(struct IsdnCardState *cs) in releasetiger() argument
966 kfree(cs->bcs[0].hw.tiger.send); in releasetiger()
967 cs->bcs[0].hw.tiger.send = NULL; in releasetiger()
968 cs->bcs[1].hw.tiger.send = NULL; in releasetiger()
969 kfree(cs->bcs[0].hw.tiger.rec); in releasetiger()
970 cs->bcs[0].hw.tiger.rec = NULL; in releasetiger()
971 cs->bcs[1].hw.tiger.rec = NULL; in releasetiger()
975 release_io_netjet(struct IsdnCardState *cs) in release_io_netjet() argument
977 byteout(cs->hw.njet.base + NETJET_IRQMASK0, 0); in release_io_netjet()
978 byteout(cs->hw.njet.base + NETJET_IRQMASK1, 0); in release_io_netjet()
979 releasetiger(cs); in release_io_netjet()
980 release_region(cs->hw.njet.base, 256); in release_io_netjet()