Lines Matching refs:cs
78 ReadISAC(struct IsdnCardState *cs, u_char offset) in ReadISAC() argument
80 return (readreg(cs->hw.asus.adr, cs->hw.asus.isac, offset)); in ReadISAC()
84 WriteISAC(struct IsdnCardState *cs, u_char offset, u_char value) in WriteISAC() argument
86 writereg(cs->hw.asus.adr, cs->hw.asus.isac, offset, value); in WriteISAC()
90 ReadISACfifo(struct IsdnCardState *cs, u_char *data, int size) in ReadISACfifo() argument
92 readfifo(cs->hw.asus.adr, cs->hw.asus.isac, 0, data, size); in ReadISACfifo()
96 WriteISACfifo(struct IsdnCardState *cs, u_char *data, int size) in WriteISACfifo() argument
98 writefifo(cs->hw.asus.adr, cs->hw.asus.isac, 0, data, size); in WriteISACfifo()
102 ReadISAC_IPAC(struct IsdnCardState *cs, u_char offset) in ReadISAC_IPAC() argument
104 return (readreg(cs->hw.asus.adr, cs->hw.asus.isac, offset | 0x80)); in ReadISAC_IPAC()
108 WriteISAC_IPAC(struct IsdnCardState *cs, u_char offset, u_char value) in WriteISAC_IPAC() argument
110 writereg(cs->hw.asus.adr, cs->hw.asus.isac, offset | 0x80, value); in WriteISAC_IPAC()
114 ReadISACfifo_IPAC(struct IsdnCardState *cs, u_char *data, int size) in ReadISACfifo_IPAC() argument
116 readfifo(cs->hw.asus.adr, cs->hw.asus.isac, 0x80, data, size); in ReadISACfifo_IPAC()
120 WriteISACfifo_IPAC(struct IsdnCardState *cs, u_char *data, int size) in WriteISACfifo_IPAC() argument
122 writefifo(cs->hw.asus.adr, cs->hw.asus.isac, 0x80, data, size); in WriteISACfifo_IPAC()
126 ReadHSCX(struct IsdnCardState *cs, int hscx, u_char offset) in ReadHSCX() argument
128 return (readreg(cs->hw.asus.adr, in ReadHSCX()
129 cs->hw.asus.hscx, offset + (hscx ? 0x40 : 0))); in ReadHSCX()
133 WriteHSCX(struct IsdnCardState *cs, int hscx, u_char offset, u_char value) in WriteHSCX() argument
135 writereg(cs->hw.asus.adr, in WriteHSCX()
136 cs->hw.asus.hscx, offset + (hscx ? 0x40 : 0), value); in WriteHSCX()
143 #define READHSCX(cs, nr, reg) readreg(cs->hw.asus.adr, \ argument
144 cs->hw.asus.hscx, reg + (nr ? 0x40 : 0))
145 #define WRITEHSCX(cs, nr, reg, data) writereg(cs->hw.asus.adr, \ argument
146 cs->hw.asus.hscx, reg + (nr ? 0x40 : 0), data)
148 #define READHSCXFIFO(cs, nr, ptr, cnt) readfifo(cs->hw.asus.adr, \ argument
149 cs->hw.asus.hscx, (nr ? 0x40 : 0), ptr, cnt)
151 #define WRITEHSCXFIFO(cs, nr, ptr, cnt) writefifo(cs->hw.asus.adr, \ argument
152 cs->hw.asus.hscx, (nr ? 0x40 : 0), ptr, cnt)
159 struct IsdnCardState *cs = dev_id; in asuscom_interrupt() local
163 spin_lock_irqsave(&cs->lock, flags); in asuscom_interrupt()
164 val = readreg(cs->hw.asus.adr, cs->hw.asus.hscx, HSCX_ISTA + 0x40); in asuscom_interrupt()
167 hscx_int_main(cs, val); in asuscom_interrupt()
168 val = readreg(cs->hw.asus.adr, cs->hw.asus.isac, ISAC_ISTA); in asuscom_interrupt()
171 isac_interrupt(cs, val); in asuscom_interrupt()
172 val = readreg(cs->hw.asus.adr, cs->hw.asus.hscx, HSCX_ISTA + 0x40); in asuscom_interrupt()
174 if (cs->debug & L1_DEB_HSCX) in asuscom_interrupt()
175 debugl1(cs, "HSCX IntStat after IntRoutine"); in asuscom_interrupt()
178 val = readreg(cs->hw.asus.adr, cs->hw.asus.isac, ISAC_ISTA); in asuscom_interrupt()
180 if (cs->debug & L1_DEB_ISAC) in asuscom_interrupt()
181 debugl1(cs, "ISAC IntStat after IntRoutine"); in asuscom_interrupt()
184 writereg(cs->hw.asus.adr, cs->hw.asus.hscx, HSCX_MASK, 0xFF); in asuscom_interrupt()
185 writereg(cs->hw.asus.adr, cs->hw.asus.hscx, HSCX_MASK + 0x40, 0xFF); in asuscom_interrupt()
186 writereg(cs->hw.asus.adr, cs->hw.asus.isac, ISAC_MASK, 0xFF); in asuscom_interrupt()
187 writereg(cs->hw.asus.adr, cs->hw.asus.isac, ISAC_MASK, 0x0); in asuscom_interrupt()
188 writereg(cs->hw.asus.adr, cs->hw.asus.hscx, HSCX_MASK, 0x0); in asuscom_interrupt()
189 writereg(cs->hw.asus.adr, cs->hw.asus.hscx, HSCX_MASK + 0x40, 0x0); in asuscom_interrupt()
190 spin_unlock_irqrestore(&cs->lock, flags); in asuscom_interrupt()
197 struct IsdnCardState *cs = dev_id; in asuscom_interrupt_ipac() local
201 spin_lock_irqsave(&cs->lock, flags); in asuscom_interrupt_ipac()
202 ista = readreg(cs->hw.asus.adr, cs->hw.asus.isac, IPAC_ISTA); in asuscom_interrupt_ipac()
204 if (cs->debug & L1_DEB_IPAC) in asuscom_interrupt_ipac()
205 debugl1(cs, "IPAC ISTA %02X", ista); in asuscom_interrupt_ipac()
207 val = readreg(cs->hw.asus.adr, cs->hw.asus.hscx, HSCX_ISTA + 0x40); in asuscom_interrupt_ipac()
215 hscx_int_main(cs, val); in asuscom_interrupt_ipac()
218 val = 0xfe & readreg(cs->hw.asus.adr, cs->hw.asus.isac, ISAC_ISTA | 0x80); in asuscom_interrupt_ipac()
220 isac_interrupt(cs, val); in asuscom_interrupt_ipac()
225 isac_interrupt(cs, val); in asuscom_interrupt_ipac()
227 ista = readreg(cs->hw.asus.adr, cs->hw.asus.isac, IPAC_ISTA); in asuscom_interrupt_ipac()
234 writereg(cs->hw.asus.adr, cs->hw.asus.isac, IPAC_MASK, 0xFF); in asuscom_interrupt_ipac()
235 writereg(cs->hw.asus.adr, cs->hw.asus.isac, IPAC_MASK, 0xC0); in asuscom_interrupt_ipac()
236 spin_unlock_irqrestore(&cs->lock, flags); in asuscom_interrupt_ipac()
241 release_io_asuscom(struct IsdnCardState *cs) in release_io_asuscom() argument
245 if (cs->hw.asus.cfg_reg) in release_io_asuscom()
246 release_region(cs->hw.asus.cfg_reg, bytecnt); in release_io_asuscom()
250 reset_asuscom(struct IsdnCardState *cs) in reset_asuscom() argument
252 if (cs->subtyp == ASUS_IPAC) in reset_asuscom()
253 writereg(cs->hw.asus.adr, cs->hw.asus.isac, IPAC_POTA2, 0x20); in reset_asuscom()
255 byteout(cs->hw.asus.adr, ASUS_RESET); /* Reset On */ in reset_asuscom()
257 if (cs->subtyp == ASUS_IPAC) in reset_asuscom()
258 writereg(cs->hw.asus.adr, cs->hw.asus.isac, IPAC_POTA2, 0x0); in reset_asuscom()
260 byteout(cs->hw.asus.adr, 0); /* Reset Off */ in reset_asuscom()
262 if (cs->subtyp == ASUS_IPAC) { in reset_asuscom()
263 writereg(cs->hw.asus.adr, cs->hw.asus.isac, IPAC_CONF, 0x0); in reset_asuscom()
264 writereg(cs->hw.asus.adr, cs->hw.asus.isac, IPAC_ACFG, 0xff); in reset_asuscom()
265 writereg(cs->hw.asus.adr, cs->hw.asus.isac, IPAC_AOE, 0x0); in reset_asuscom()
266 writereg(cs->hw.asus.adr, cs->hw.asus.isac, IPAC_MASK, 0xc0); in reset_asuscom()
267 writereg(cs->hw.asus.adr, cs->hw.asus.isac, IPAC_PCFG, 0x12); in reset_asuscom()
272 Asus_card_msg(struct IsdnCardState *cs, int mt, void *arg) in Asus_card_msg() argument
278 spin_lock_irqsave(&cs->lock, flags); in Asus_card_msg()
279 reset_asuscom(cs); in Asus_card_msg()
280 spin_unlock_irqrestore(&cs->lock, flags); in Asus_card_msg()
283 release_io_asuscom(cs); in Asus_card_msg()
286 spin_lock_irqsave(&cs->lock, flags); in Asus_card_msg()
287 cs->debug |= L1_DEB_IPAC; in Asus_card_msg()
288 inithscxisac(cs, 3); in Asus_card_msg()
289 spin_unlock_irqrestore(&cs->lock, flags); in Asus_card_msg()
321 struct IsdnCardState *cs = card->cs; in setup_asuscom() local
327 if (cs->typ != ISDN_CTYPE_ASUSCOM) in setup_asuscom()
372 cs->hw.asus.cfg_reg = card->para[1]; in setup_asuscom()
373 cs->irq = card->para[0]; in setup_asuscom()
374 if (!request_region(cs->hw.asus.cfg_reg, bytecnt, "asuscom isdn")) { in setup_asuscom()
377 cs->hw.asus.cfg_reg, in setup_asuscom()
378 cs->hw.asus.cfg_reg + bytecnt); in setup_asuscom()
382 cs->hw.asus.cfg_reg, cs->irq); in setup_asuscom()
383 setup_isac(cs); in setup_asuscom()
384 cs->BC_Read_Reg = &ReadHSCX; in setup_asuscom()
385 cs->BC_Write_Reg = &WriteHSCX; in setup_asuscom()
386 cs->BC_Send_Data = &hscx_fill_fifo; in setup_asuscom()
387 cs->cardmsg = &Asus_card_msg; in setup_asuscom()
388 val = readreg(cs->hw.asus.cfg_reg + ASUS_IPAC_ALE, in setup_asuscom()
389 cs->hw.asus.cfg_reg + ASUS_IPAC_DATA, IPAC_ID); in setup_asuscom()
391 cs->subtyp = ASUS_IPAC; in setup_asuscom()
392 cs->hw.asus.adr = cs->hw.asus.cfg_reg + ASUS_IPAC_ALE; in setup_asuscom()
393 cs->hw.asus.isac = cs->hw.asus.cfg_reg + ASUS_IPAC_DATA; in setup_asuscom()
394 cs->hw.asus.hscx = cs->hw.asus.cfg_reg + ASUS_IPAC_DATA; in setup_asuscom()
395 test_and_set_bit(HW_IPAC, &cs->HW_Flags); in setup_asuscom()
396 cs->readisac = &ReadISAC_IPAC; in setup_asuscom()
397 cs->writeisac = &WriteISAC_IPAC; in setup_asuscom()
398 cs->readisacfifo = &ReadISACfifo_IPAC; in setup_asuscom()
399 cs->writeisacfifo = &WriteISACfifo_IPAC; in setup_asuscom()
400 cs->irq_func = &asuscom_interrupt_ipac; in setup_asuscom()
403 cs->subtyp = ASUS_ISACHSCX; in setup_asuscom()
404 cs->hw.asus.adr = cs->hw.asus.cfg_reg + ASUS_ADR; in setup_asuscom()
405 cs->hw.asus.isac = cs->hw.asus.cfg_reg + ASUS_ISAC; in setup_asuscom()
406 cs->hw.asus.hscx = cs->hw.asus.cfg_reg + ASUS_HSCX; in setup_asuscom()
407 cs->hw.asus.u7 = cs->hw.asus.cfg_reg + ASUS_CTRL_U7; in setup_asuscom()
408 cs->hw.asus.pots = cs->hw.asus.cfg_reg + ASUS_CTRL_POTS; in setup_asuscom()
409 cs->readisac = &ReadISAC; in setup_asuscom()
410 cs->writeisac = &WriteISAC; in setup_asuscom()
411 cs->readisacfifo = &ReadISACfifo; in setup_asuscom()
412 cs->writeisacfifo = &WriteISACfifo; in setup_asuscom()
413 cs->irq_func = &asuscom_interrupt; in setup_asuscom()
414 ISACVersion(cs, "ISDNLink:"); in setup_asuscom()
415 if (HscxVersion(cs, "ISDNLink:")) { in setup_asuscom()
418 release_io_asuscom(cs); in setup_asuscom()