Lines Matching refs:cs

37 ReadISAC(struct IsdnCardState *cs, u_char offset)  in ReadISAC()  argument
39 return (readb(cs->hw.isurf.isac + offset)); in ReadISAC()
43 WriteISAC(struct IsdnCardState *cs, u_char offset, u_char value) in WriteISAC() argument
45 writeb(value, cs->hw.isurf.isac + offset); mb(); in WriteISAC()
49 ReadISACfifo(struct IsdnCardState *cs, u_char *data, int size) in ReadISACfifo() argument
53 data[i] = readb(cs->hw.isurf.isac); in ReadISACfifo()
57 WriteISACfifo(struct IsdnCardState *cs, u_char *data, int size) in WriteISACfifo() argument
61 writeb(data[i], cs->hw.isurf.isac); mb(); in WriteISACfifo()
72 ReadISAR(struct IsdnCardState *cs, int mode, u_char offset) in ReadISAR() argument
74 return (readb(cs->hw.isurf.isar + offset)); in ReadISAR()
78 WriteISAR(struct IsdnCardState *cs, int mode, u_char offset, u_char value) in WriteISAR() argument
80 writeb(value, cs->hw.isurf.isar + offset); mb(); in WriteISAR()
86 struct IsdnCardState *cs = dev_id; in isurf_interrupt() local
91 spin_lock_irqsave(&cs->lock, flags); in isurf_interrupt()
92 val = readb(cs->hw.isurf.isar + ISAR_IRQBIT); in isurf_interrupt()
95 isar_int_main(cs); in isurf_interrupt()
96 val = readb(cs->hw.isurf.isac + ISAC_ISTA); in isurf_interrupt()
99 isac_interrupt(cs, val); in isurf_interrupt()
100 val = readb(cs->hw.isurf.isar + ISAR_IRQBIT); in isurf_interrupt()
102 if (cs->debug & L1_DEB_HSCX) in isurf_interrupt()
103 debugl1(cs, "ISAR IntStat after IntRoutine"); in isurf_interrupt()
106 val = readb(cs->hw.isurf.isac + ISAC_ISTA); in isurf_interrupt()
108 if (cs->debug & L1_DEB_ISAC) in isurf_interrupt()
109 debugl1(cs, "ISAC IntStat after IntRoutine"); in isurf_interrupt()
115 writeb(0, cs->hw.isurf.isar + ISAR_IRQBIT); mb(); in isurf_interrupt()
116 writeb(0xFF, cs->hw.isurf.isac + ISAC_MASK); mb(); in isurf_interrupt()
117 writeb(0, cs->hw.isurf.isac + ISAC_MASK); mb(); in isurf_interrupt()
118 writeb(ISAR_IRQMSK, cs->hw.isurf.isar + ISAR_IRQBIT); mb(); in isurf_interrupt()
119 spin_unlock_irqrestore(&cs->lock, flags); in isurf_interrupt()
124 release_io_isurf(struct IsdnCardState *cs) in release_io_isurf() argument
126 release_region(cs->hw.isurf.reset, 1); in release_io_isurf()
127 iounmap(cs->hw.isurf.isar); in release_io_isurf()
128 release_mem_region(cs->hw.isurf.phymem, ISURF_IOMEM_SIZE); in release_io_isurf()
132 reset_isurf(struct IsdnCardState *cs, u_char chips) in reset_isurf() argument
136 byteout(cs->hw.isurf.reset, chips); /* Reset On */ in reset_isurf()
138 byteout(cs->hw.isurf.reset, ISURF_ISAR_EA); /* Reset Off */ in reset_isurf()
143 ISurf_card_msg(struct IsdnCardState *cs, int mt, void *arg) in ISurf_card_msg() argument
149 spin_lock_irqsave(&cs->lock, flags); in ISurf_card_msg()
150 reset_isurf(cs, ISURF_RESET); in ISurf_card_msg()
151 spin_unlock_irqrestore(&cs->lock, flags); in ISurf_card_msg()
154 release_io_isurf(cs); in ISurf_card_msg()
157 spin_lock_irqsave(&cs->lock, flags); in ISurf_card_msg()
158 reset_isurf(cs, ISURF_RESET); in ISurf_card_msg()
159 clear_pending_isac_ints(cs); in ISurf_card_msg()
160 writeb(0, cs->hw.isurf.isar + ISAR_IRQBIT); mb(); in ISurf_card_msg()
161 initisac(cs); in ISurf_card_msg()
162 initisar(cs); in ISurf_card_msg()
164 cs->writeisac(cs, ISAC_MASK, 0); in ISurf_card_msg()
166 cs->writeisac(cs, ISAC_CMDR, 0x41); in ISurf_card_msg()
167 spin_unlock_irqrestore(&cs->lock, flags); in ISurf_card_msg()
176 isurf_auxcmd(struct IsdnCardState *cs, isdn_ctrl *ic) { in isurf_auxcmd() argument
181 ret = isar_auxcmd(cs, ic); in isurf_auxcmd()
182 spin_lock_irqsave(&cs->lock, flags); in isurf_auxcmd()
184 reset_isurf(cs, ISURF_ISAR_EA | ISURF_ISAC_RESET | in isurf_auxcmd()
186 initisac(cs); in isurf_auxcmd()
187 cs->writeisac(cs, ISAC_MASK, 0); in isurf_auxcmd()
188 cs->writeisac(cs, ISAC_CMDR, 0x41); in isurf_auxcmd()
190 spin_unlock_irqrestore(&cs->lock, flags); in isurf_auxcmd()
193 return (isar_auxcmd(cs, ic)); in isurf_auxcmd()
203 struct IsdnCardState *cs = card->cs; in setup_isurf() local
209 if (cs->typ != ISDN_CTYPE_ISURF) in setup_isurf()
212 cs->hw.isurf.reset = card->para[1]; in setup_isurf()
213 cs->hw.isurf.phymem = card->para[2]; in setup_isurf()
214 cs->irq = card->para[0]; in setup_isurf()
221 cs->subtyp = 0; in setup_isurf()
238 cs->hw.isurf.reset = pnp_port_start(pnp_d, 0); in setup_isurf()
239 cs->hw.isurf.phymem = pnp_mem_start(pnp_d, 1); in setup_isurf()
240 cs->irq = pnp_irq(pnp_d, 0); in setup_isurf()
241 if (!cs->irq || !cs->hw.isurf.reset || !cs->hw.isurf.phymem) { in setup_isurf()
243 cs->irq, cs->hw.isurf.reset, cs->hw.isurf.phymem); in setup_isurf()
260 if (!request_region(cs->hw.isurf.reset, 1, "isurf isdn")) { in setup_isurf()
263 cs->hw.isurf.reset); in setup_isurf()
266 if (!request_region(cs->hw.isurf.phymem, ISURF_IOMEM_SIZE, "isurf iomem")) { in setup_isurf()
269 cs->hw.isurf.phymem, in setup_isurf()
270 cs->hw.isurf.phymem + ISURF_IOMEM_SIZE); in setup_isurf()
271 release_region(cs->hw.isurf.reset, 1); in setup_isurf()
274 cs->hw.isurf.isar = ioremap(cs->hw.isurf.phymem, ISURF_IOMEM_SIZE); in setup_isurf()
275 cs->hw.isurf.isac = cs->hw.isurf.isar + ISURF_ISAC_OFFSET; in setup_isurf()
278 cs->hw.isurf.reset, in setup_isurf()
279 cs->hw.isurf.phymem, in setup_isurf()
280 cs->irq); in setup_isurf()
282 setup_isac(cs); in setup_isurf()
283 cs->cardmsg = &ISurf_card_msg; in setup_isurf()
284 cs->irq_func = &isurf_interrupt; in setup_isurf()
285 cs->auxcmd = &isurf_auxcmd; in setup_isurf()
286 cs->readisac = &ReadISAC; in setup_isurf()
287 cs->writeisac = &WriteISAC; in setup_isurf()
288 cs->readisacfifo = &ReadISACfifo; in setup_isurf()
289 cs->writeisacfifo = &WriteISACfifo; in setup_isurf()
290 cs->bcs[0].hw.isar.reg = &cs->hw.isurf.isar_r; in setup_isurf()
291 cs->bcs[1].hw.isar.reg = &cs->hw.isurf.isar_r; in setup_isurf()
292 test_and_set_bit(HW_ISAR, &cs->HW_Flags); in setup_isurf()
293 ISACVersion(cs, "ISurf:"); in setup_isurf()
294 cs->BC_Read_Reg = &ReadISAR; in setup_isurf()
295 cs->BC_Write_Reg = &WriteISAR; in setup_isurf()
296 cs->BC_Send_Data = &isar_fill_fifo; in setup_isurf()
297 ver = ISARVersion(cs, "ISurf:"); in setup_isurf()
301 release_io_isurf(cs); in setup_isurf()