Lines Matching refs:cs
62 ReadISAC(struct IsdnCardState *cs, u_char offset) in ReadISAC() argument
67 byteout(cs->hw.avm.cfg_reg + ADDRREG_OFFSET, ISAC_REG_OFFSET + offset); in ReadISAC()
68 ret = bytein(cs->hw.avm.cfg_reg + DATAREG_OFFSET); in ReadISAC()
73 WriteISAC(struct IsdnCardState *cs, u_char offset, u_char value) in WriteISAC() argument
76 byteout(cs->hw.avm.cfg_reg + ADDRREG_OFFSET, ISAC_REG_OFFSET + offset); in WriteISAC()
77 byteout(cs->hw.avm.cfg_reg + DATAREG_OFFSET, value); in WriteISAC()
81 ReadISACfifo(struct IsdnCardState *cs, u_char *data, int size) in ReadISACfifo() argument
83 byteout(cs->hw.avm.cfg_reg + ADDRREG_OFFSET, ISAC_FIFO_OFFSET); in ReadISACfifo()
84 insb(cs->hw.avm.cfg_reg + DATAREG_OFFSET, data, size); in ReadISACfifo()
88 WriteISACfifo(struct IsdnCardState *cs, u_char *data, int size) in WriteISACfifo() argument
90 byteout(cs->hw.avm.cfg_reg + ADDRREG_OFFSET, ISAC_FIFO_OFFSET); in WriteISACfifo()
91 outsb(cs->hw.avm.cfg_reg + DATAREG_OFFSET, data, size); in WriteISACfifo()
95 ReadHSCX(struct IsdnCardState *cs, int hscx, u_char offset) in ReadHSCX() argument
100 byteout(cs->hw.avm.cfg_reg + ADDRREG_OFFSET, in ReadHSCX()
102 ret = bytein(cs->hw.avm.cfg_reg + DATAREG_OFFSET); in ReadHSCX()
107 WriteHSCX(struct IsdnCardState *cs, int hscx, u_char offset, u_char value) in WriteHSCX() argument
110 byteout(cs->hw.avm.cfg_reg + ADDRREG_OFFSET, in WriteHSCX()
112 byteout(cs->hw.avm.cfg_reg + DATAREG_OFFSET, value); in WriteHSCX()
116 ReadHSCXfifo(struct IsdnCardState *cs, int hscx, u_char *data, int size) in ReadHSCXfifo() argument
118 byteout(cs->hw.avm.cfg_reg + ADDRREG_OFFSET, in ReadHSCXfifo()
120 insb(cs->hw.avm.cfg_reg + DATAREG_OFFSET, data, size); in ReadHSCXfifo()
124 WriteHSCXfifo(struct IsdnCardState *cs, int hscx, u_char *data, int size) in WriteHSCXfifo() argument
126 byteout(cs->hw.avm.cfg_reg + ADDRREG_OFFSET, in WriteHSCXfifo()
128 outsb(cs->hw.avm.cfg_reg + DATAREG_OFFSET, data, size); in WriteHSCXfifo()
135 #define READHSCX(cs, nr, reg) ReadHSCX(cs, nr, reg) argument
136 #define WRITEHSCX(cs, nr, reg, data) WriteHSCX(cs, nr, reg, data) argument
137 #define READHSCXFIFO(cs, nr, ptr, cnt) ReadHSCXfifo(cs, nr, ptr, cnt) argument
138 #define WRITEHSCXFIFO(cs, nr, ptr, cnt) WriteHSCXfifo(cs, nr, ptr, cnt) argument
145 struct IsdnCardState *cs = dev_id; in avm_a1p_interrupt() local
149 spin_lock_irqsave(&cs->lock, flags); in avm_a1p_interrupt()
150 while ((sval = (~bytein(cs->hw.avm.cfg_reg + ASL0_OFFSET) & ASL0_R_IRQPENDING))) { in avm_a1p_interrupt()
151 if (cs->debug & L1_DEB_INTSTAT) in avm_a1p_interrupt()
152 debugl1(cs, "avm IntStatus %x", sval); in avm_a1p_interrupt()
154 val = ReadHSCX(cs, 1, HSCX_ISTA); in avm_a1p_interrupt()
156 hscx_int_main(cs, val); in avm_a1p_interrupt()
159 val = ReadISAC(cs, ISAC_ISTA); in avm_a1p_interrupt()
161 isac_interrupt(cs, val); in avm_a1p_interrupt()
164 WriteHSCX(cs, 0, HSCX_MASK, 0xff); in avm_a1p_interrupt()
165 WriteHSCX(cs, 1, HSCX_MASK, 0xff); in avm_a1p_interrupt()
166 WriteISAC(cs, ISAC_MASK, 0xff); in avm_a1p_interrupt()
167 WriteISAC(cs, ISAC_MASK, 0x00); in avm_a1p_interrupt()
168 WriteHSCX(cs, 0, HSCX_MASK, 0x00); in avm_a1p_interrupt()
169 WriteHSCX(cs, 1, HSCX_MASK, 0x00); in avm_a1p_interrupt()
170 spin_unlock_irqrestore(&cs->lock, flags); in avm_a1p_interrupt()
175 AVM_card_msg(struct IsdnCardState *cs, int mt, void *arg) in AVM_card_msg() argument
181 spin_lock_irqsave(&cs->lock, flags); in AVM_card_msg()
182 byteout(cs->hw.avm.cfg_reg + ASL0_OFFSET, 0x00); in AVM_card_msg()
184 byteout(cs->hw.avm.cfg_reg + ASL0_OFFSET, ASL0_W_RESET); in AVM_card_msg()
186 byteout(cs->hw.avm.cfg_reg + ASL0_OFFSET, 0x00); in AVM_card_msg()
187 spin_unlock_irqrestore(&cs->lock, flags); in AVM_card_msg()
196 spin_lock_irqsave(&cs->lock, flags); in AVM_card_msg()
197 byteout(cs->hw.avm.cfg_reg + ASL0_OFFSET, ASL0_W_TDISABLE | ASL0_W_TRESET | ASL0_W_IRQENABLE); in AVM_card_msg()
198 clear_pending_isac_ints(cs); in AVM_card_msg()
199 clear_pending_hscx_ints(cs); in AVM_card_msg()
200 inithscxisac(cs, 1); in AVM_card_msg()
201 inithscxisac(cs, 2); in AVM_card_msg()
202 spin_unlock_irqrestore(&cs->lock, flags); in AVM_card_msg()
219 struct IsdnCardState *cs = card->cs; in setup_avm_a1_pcmcia() local
226 if (cs->typ != ISDN_CTYPE_A1_PCMCIA) in setup_avm_a1_pcmcia()
229 cs->hw.avm.cfg_reg = card->para[1]; in setup_avm_a1_pcmcia()
230 cs->irq = card->para[0]; in setup_avm_a1_pcmcia()
233 byteout(cs->hw.avm.cfg_reg + ASL1_OFFSET, ASL1_W_ENABLE_S0); in setup_avm_a1_pcmcia()
234 byteout(cs->hw.avm.cfg_reg + ASL0_OFFSET, 0x00); in setup_avm_a1_pcmcia()
236 byteout(cs->hw.avm.cfg_reg + ASL0_OFFSET, ASL0_W_RESET); in setup_avm_a1_pcmcia()
238 byteout(cs->hw.avm.cfg_reg + ASL0_OFFSET, 0x00); in setup_avm_a1_pcmcia()
240 byteout(cs->hw.avm.cfg_reg + ASL0_OFFSET, ASL0_W_TDISABLE | ASL0_W_TRESET); in setup_avm_a1_pcmcia()
242 model = bytein(cs->hw.avm.cfg_reg + MODREG_OFFSET); in setup_avm_a1_pcmcia()
243 vers = bytein(cs->hw.avm.cfg_reg + VERREG_OFFSET); in setup_avm_a1_pcmcia()
246 cs->hw.avm.cfg_reg, cs->irq, model, vers); in setup_avm_a1_pcmcia()
248 setup_isac(cs); in setup_avm_a1_pcmcia()
249 cs->readisac = &ReadISAC; in setup_avm_a1_pcmcia()
250 cs->writeisac = &WriteISAC; in setup_avm_a1_pcmcia()
251 cs->readisacfifo = &ReadISACfifo; in setup_avm_a1_pcmcia()
252 cs->writeisacfifo = &WriteISACfifo; in setup_avm_a1_pcmcia()
253 cs->BC_Read_Reg = &ReadHSCX; in setup_avm_a1_pcmcia()
254 cs->BC_Write_Reg = &WriteHSCX; in setup_avm_a1_pcmcia()
255 cs->BC_Send_Data = &hscx_fill_fifo; in setup_avm_a1_pcmcia()
256 cs->cardmsg = &AVM_card_msg; in setup_avm_a1_pcmcia()
257 cs->irq_flags = IRQF_SHARED; in setup_avm_a1_pcmcia()
258 cs->irq_func = &avm_a1p_interrupt; in setup_avm_a1_pcmcia()
260 ISACVersion(cs, "AVM A1 PCMCIA:"); in setup_avm_a1_pcmcia()
261 if (HscxVersion(cs, "AVM A1 PCMCIA:")) { in setup_avm_a1_pcmcia()