Lines Matching refs:cs
19 static u_char dummyrr(struct IsdnCardState *cs, int chan, u_char off) in dummyrr() argument
24 static void dummywr(struct IsdnCardState *cs, int chan, u_char off, u_char value) in dummywr() argument
31 struct IsdnCardState *cs = dev_id; in netjet_u_interrupt() local
35 spin_lock_irqsave(&cs->lock, flags); in netjet_u_interrupt()
36 if (!((sval = bytein(cs->hw.njet.base + NETJET_IRQSTAT1)) & in netjet_u_interrupt()
38 val = NETjet_ReadIC(cs, ICC_ISTA); in netjet_u_interrupt()
39 if (cs->debug & L1_DEB_ISAC) in netjet_u_interrupt()
40 debugl1(cs, "tiger: i1 %x %x", sval, val); in netjet_u_interrupt()
42 icc_interrupt(cs, val); in netjet_u_interrupt()
43 NETjet_WriteIC(cs, ICC_MASK, 0xFF); in netjet_u_interrupt()
44 NETjet_WriteIC(cs, ICC_MASK, 0x0); in netjet_u_interrupt()
49 if (inl(cs->hw.njet.base + NETJET_DMA_WRITE_ADR) < in netjet_u_interrupt()
50 inl(cs->hw.njet.base + NETJET_DMA_WRITE_IRQ)) in netjet_u_interrupt()
55 if (inl(cs->hw.njet.base + NETJET_DMA_READ_ADR) < in netjet_u_interrupt()
56 inl(cs->hw.njet.base + NETJET_DMA_READ_IRQ)) in netjet_u_interrupt()
61 if (sval != cs->hw.njet.last_is0) /* we have a DMA interrupt */ in netjet_u_interrupt()
63 if (test_and_set_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags)) { in netjet_u_interrupt()
64 spin_unlock_irqrestore(&cs->lock, flags); in netjet_u_interrupt()
67 cs->hw.njet.irqstat0 = sval; in netjet_u_interrupt()
68 if ((cs->hw.njet.irqstat0 & NETJET_IRQM0_READ) != in netjet_u_interrupt()
69 (cs->hw.njet.last_is0 & NETJET_IRQM0_READ)) in netjet_u_interrupt()
71 read_tiger(cs); in netjet_u_interrupt()
72 if ((cs->hw.njet.irqstat0 & NETJET_IRQM0_WRITE) != in netjet_u_interrupt()
73 (cs->hw.njet.last_is0 & NETJET_IRQM0_WRITE)) in netjet_u_interrupt()
75 write_tiger(cs); in netjet_u_interrupt()
77 test_and_clear_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags); in netjet_u_interrupt()
79 spin_unlock_irqrestore(&cs->lock, flags); in netjet_u_interrupt()
84 reset_netjet_u(struct IsdnCardState *cs) in reset_netjet_u() argument
86 cs->hw.njet.ctrl_reg = 0xff; /* Reset On */ in reset_netjet_u()
87 byteout(cs->hw.njet.base + NETJET_CTRL, cs->hw.njet.ctrl_reg); in reset_netjet_u()
89 cs->hw.njet.ctrl_reg = 0x40; /* Reset Off and status read clear */ in reset_netjet_u()
91 byteout(cs->hw.njet.base + NETJET_CTRL, cs->hw.njet.ctrl_reg); in reset_netjet_u()
93 cs->hw.njet.auxd = 0xC0; in reset_netjet_u()
94 cs->hw.njet.dmactrl = 0; in reset_netjet_u()
95 byteout(cs->hw.njet.auxa, 0); in reset_netjet_u()
96 byteout(cs->hw.njet.base + NETJET_AUXCTRL, ~NETJET_ISACIRQ); in reset_netjet_u()
97 byteout(cs->hw.njet.base + NETJET_IRQMASK1, NETJET_ISACIRQ); in reset_netjet_u()
98 byteout(cs->hw.njet.auxa, cs->hw.njet.auxd); in reset_netjet_u()
102 NETjet_U_card_msg(struct IsdnCardState *cs, int mt, void *arg) in NETjet_U_card_msg() argument
108 spin_lock_irqsave(&cs->lock, flags); in NETjet_U_card_msg()
109 reset_netjet_u(cs); in NETjet_U_card_msg()
110 spin_unlock_irqrestore(&cs->lock, flags); in NETjet_U_card_msg()
113 release_io_netjet(cs); in NETjet_U_card_msg()
116 spin_lock_irqsave(&cs->lock, flags); in NETjet_U_card_msg()
117 inittiger(cs); in NETjet_U_card_msg()
118 reset_netjet_u(cs); in NETjet_U_card_msg()
119 clear_pending_icc_ints(cs); in NETjet_U_card_msg()
120 initicc(cs); in NETjet_U_card_msg()
122 cs->writeisac(cs, ICC_MASK, 0); in NETjet_U_card_msg()
123 spin_unlock_irqrestore(&cs->lock, flags); in NETjet_U_card_msg()
131 static int nju_pci_probe(struct pci_dev *dev_netjet, struct IsdnCardState *cs) in nju_pci_probe() argument
136 cs->irq = dev_netjet->irq; in nju_pci_probe()
137 if (!cs->irq) { in nju_pci_probe()
141 cs->hw.njet.base = pci_resource_start(dev_netjet, 0); in nju_pci_probe()
142 if (!cs->hw.njet.base) { in nju_pci_probe()
150 static int nju_cs_init(struct IsdnCard *card, struct IsdnCardState *cs) in nju_cs_init() argument
152 cs->hw.njet.auxa = cs->hw.njet.base + NETJET_AUXDATA; in nju_cs_init()
153 cs->hw.njet.isac = cs->hw.njet.base | NETJET_ISAC_OFF; in nju_cs_init()
156 cs->hw.njet.ctrl_reg = 0xff; /* Reset On */ in nju_cs_init()
157 byteout(cs->hw.njet.base + NETJET_CTRL, cs->hw.njet.ctrl_reg); in nju_cs_init()
160 cs->hw.njet.ctrl_reg = 0x00; /* Reset Off and status read clear */ in nju_cs_init()
161 byteout(cs->hw.njet.base + NETJET_CTRL, cs->hw.njet.ctrl_reg); in nju_cs_init()
164 cs->hw.njet.auxd = 0xC0; in nju_cs_init()
165 cs->hw.njet.dmactrl = 0; in nju_cs_init()
167 byteout(cs->hw.njet.auxa, 0); in nju_cs_init()
168 byteout(cs->hw.njet.base + NETJET_AUXCTRL, ~NETJET_ISACIRQ); in nju_cs_init()
169 byteout(cs->hw.njet.base + NETJET_IRQMASK1, NETJET_ISACIRQ); in nju_cs_init()
170 byteout(cs->hw.njet.auxa, cs->hw.njet.auxd); in nju_cs_init()
172 switch (((NETjet_ReadIC(cs, ICC_RBCH) >> 5) & 3)) in nju_cs_init()
188 static int nju_cs_init_rest(struct IsdnCard *card, struct IsdnCardState *cs) in nju_cs_init_rest() argument
194 cs->hw.njet.base, cs->irq); in nju_cs_init_rest()
195 if (!request_region(cs->hw.njet.base, bytecnt, "netspider-u isdn")) { in nju_cs_init_rest()
199 cs->hw.njet.base, in nju_cs_init_rest()
200 cs->hw.njet.base + bytecnt); in nju_cs_init_rest()
203 setup_icc(cs); in nju_cs_init_rest()
204 cs->readisac = &NETjet_ReadIC; in nju_cs_init_rest()
205 cs->writeisac = &NETjet_WriteIC; in nju_cs_init_rest()
206 cs->readisacfifo = &NETjet_ReadICfifo; in nju_cs_init_rest()
207 cs->writeisacfifo = &NETjet_WriteICfifo; in nju_cs_init_rest()
208 cs->BC_Read_Reg = &dummyrr; in nju_cs_init_rest()
209 cs->BC_Write_Reg = &dummywr; in nju_cs_init_rest()
210 cs->BC_Send_Data = &netjet_fill_dma; in nju_cs_init_rest()
211 cs->cardmsg = &NETjet_U_card_msg; in nju_cs_init_rest()
212 cs->irq_func = &netjet_u_interrupt; in nju_cs_init_rest()
213 cs->irq_flags |= IRQF_SHARED; in nju_cs_init_rest()
214 ICCVersion(cs, "NETspider-U:"); in nju_cs_init_rest()
224 struct IsdnCardState *cs = card->cs; in setup_netjet_u() local
233 if (cs->typ != ISDN_CTYPE_NETJET_U) in setup_netjet_u()
235 test_and_clear_bit(FLG_LOCK_ATOMIC, &cs->HW_Flags); in setup_netjet_u()
241 ret = nju_pci_probe(dev_netjet, cs); in setup_netjet_u()
249 ret = nju_cs_init(card, cs); in setup_netjet_u()
257 return nju_cs_init_rest(card, cs); in setup_netjet_u()