Lines Matching full:cs
24 struct IsdnCardState *cs = dev_id; in hfcs_interrupt() local
28 spin_lock_irqsave(&cs->lock, flags); in hfcs_interrupt()
30 (stat = cs->BC_Read_Reg(cs, HFCD_DATA, HFCD_STAT))) { in hfcs_interrupt()
31 val = cs->BC_Read_Reg(cs, HFCD_DATA, HFCD_INT_S1); in hfcs_interrupt()
32 if (cs->debug & L1_DEB_ISAC) in hfcs_interrupt()
33 debugl1(cs, "HFCS: stat(%02x) s1(%02x)", stat, val); in hfcs_interrupt()
34 hfc2bds0_interrupt(cs, val); in hfcs_interrupt()
36 if (cs->debug & L1_DEB_ISAC) in hfcs_interrupt()
37 debugl1(cs, "HFCS: irq_no_irq stat(%02x)", stat); in hfcs_interrupt()
39 spin_unlock_irqrestore(&cs->lock, flags); in hfcs_interrupt()
46 struct IsdnCardState *cs = from_timer(cs, t, hw.hfcD.timer); in hfcs_Timer() local
47 cs->hw.hfcD.timer.expires = jiffies + 75; in hfcs_Timer()
49 /* WriteReg(cs, HFCD_DATA, HFCD_CTMT, cs->hw.hfcD.ctmt | 0x80); in hfcs_Timer()
50 add_timer(&cs->hw.hfcD.timer); in hfcs_Timer()
55 release_io_hfcs(struct IsdnCardState *cs) in release_io_hfcs() argument
57 release2bds0(cs); in release_io_hfcs()
58 del_timer(&cs->hw.hfcD.timer); in release_io_hfcs()
59 if (cs->hw.hfcD.addr) in release_io_hfcs()
60 release_region(cs->hw.hfcD.addr, 2); in release_io_hfcs()
64 reset_hfcs(struct IsdnCardState *cs) in reset_hfcs() argument
67 cs->hw.hfcD.cirm = HFCD_RESET; in reset_hfcs()
68 if (cs->typ == ISDN_CTYPE_TELES3C) in reset_hfcs()
69 cs->hw.hfcD.cirm |= HFCD_MEM8K; in reset_hfcs()
70 cs->BC_Write_Reg(cs, HFCD_DATA, HFCD_CIRM, cs->hw.hfcD.cirm); /* Reset On */ in reset_hfcs()
72 cs->hw.hfcD.cirm = 0; in reset_hfcs()
73 if (cs->typ == ISDN_CTYPE_TELES3C) in reset_hfcs()
74 cs->hw.hfcD.cirm |= HFCD_MEM8K; in reset_hfcs()
75 cs->BC_Write_Reg(cs, HFCD_DATA, HFCD_CIRM, cs->hw.hfcD.cirm); /* Reset Off */ in reset_hfcs()
77 if (cs->typ == ISDN_CTYPE_TELES3C) in reset_hfcs()
78 cs->hw.hfcD.cirm |= HFCD_INTB; in reset_hfcs()
79 else if (cs->typ == ISDN_CTYPE_ACERP10) in reset_hfcs()
80 cs->hw.hfcD.cirm |= HFCD_INTA; in reset_hfcs()
81 cs->BC_Write_Reg(cs, HFCD_DATA, HFCD_CIRM, cs->hw.hfcD.cirm); in reset_hfcs()
82 cs->BC_Write_Reg(cs, HFCD_DATA, HFCD_CLKDEL, 0x0e); in reset_hfcs()
83 cs->BC_Write_Reg(cs, HFCD_DATA, HFCD_TEST, HFCD_AUTO_AWAKE); /* S/T Auto awake */ in reset_hfcs()
84 cs->hw.hfcD.ctmt = HFCD_TIM25 | HFCD_AUTO_TIMER; in reset_hfcs()
85 cs->BC_Write_Reg(cs, HFCD_DATA, HFCD_CTMT, cs->hw.hfcD.ctmt); in reset_hfcs()
86 cs->hw.hfcD.int_m2 = HFCD_IRQ_ENABLE; in reset_hfcs()
87 cs->hw.hfcD.int_m1 = HFCD_INTS_B1TRANS | HFCD_INTS_B2TRANS | in reset_hfcs()
90 cs->BC_Write_Reg(cs, HFCD_DATA, HFCD_INT_M1, cs->hw.hfcD.int_m1); in reset_hfcs()
91 cs->BC_Write_Reg(cs, HFCD_DATA, HFCD_INT_M2, cs->hw.hfcD.int_m2); in reset_hfcs()
92 cs->BC_Write_Reg(cs, HFCD_DATA, HFCD_STATES, HFCD_LOAD_STATE | 2); /* HFC ST 2 */ in reset_hfcs()
94 cs->BC_Write_Reg(cs, HFCD_DATA, HFCD_STATES, 2); /* HFC ST 2 */ in reset_hfcs()
95 cs->hw.hfcD.mst_m = HFCD_MASTER; in reset_hfcs()
96 cs->BC_Write_Reg(cs, HFCD_DATA, HFCD_MST_MODE, cs->hw.hfcD.mst_m); /* HFC Master */ in reset_hfcs()
97 cs->hw.hfcD.sctrl = 0; in reset_hfcs()
98 cs->BC_Write_Reg(cs, HFCD_DATA, HFCD_SCTRL, cs->hw.hfcD.sctrl); in reset_hfcs()
102 hfcs_card_msg(struct IsdnCardState *cs, int mt, void *arg) in hfcs_card_msg() argument
107 if (cs->debug & L1_DEB_ISAC) in hfcs_card_msg()
108 debugl1(cs, "HFCS: card_msg %x", mt); in hfcs_card_msg()
111 spin_lock_irqsave(&cs->lock, flags); in hfcs_card_msg()
112 reset_hfcs(cs); in hfcs_card_msg()
113 spin_unlock_irqrestore(&cs->lock, flags); in hfcs_card_msg()
116 release_io_hfcs(cs); in hfcs_card_msg()
120 mod_timer(&cs->hw.hfcD.timer, jiffies + delay); in hfcs_card_msg()
121 spin_lock_irqsave(&cs->lock, flags); in hfcs_card_msg()
122 reset_hfcs(cs); in hfcs_card_msg()
123 init2bds0(cs); in hfcs_card_msg()
124 spin_unlock_irqrestore(&cs->lock, flags); in hfcs_card_msg()
127 spin_lock_irqsave(&cs->lock, flags); in hfcs_card_msg()
128 cs->hw.hfcD.ctmt |= HFCD_TIM800; in hfcs_card_msg()
129 cs->BC_Write_Reg(cs, HFCD_DATA, HFCD_CTMT, cs->hw.hfcD.ctmt); in hfcs_card_msg()
130 cs->BC_Write_Reg(cs, HFCD_DATA, HFCD_MST_MODE, cs->hw.hfcD.mst_m); in hfcs_card_msg()
131 spin_unlock_irqrestore(&cs->lock, flags); in hfcs_card_msg()
171 struct IsdnCardState *cs = card->cs; in setup_hfcs() local
219 cs->hw.hfcD.addr = card->para[1] & 0xfffe; in setup_hfcs()
220 cs->irq = card->para[0]; in setup_hfcs()
221 cs->hw.hfcD.cip = 0; in setup_hfcs()
222 cs->hw.hfcD.int_s1 = 0; in setup_hfcs()
223 cs->hw.hfcD.send = NULL; in setup_hfcs()
224 cs->bcs[0].hw.hfc.send = NULL; in setup_hfcs()
225 cs->bcs[1].hw.hfc.send = NULL; in setup_hfcs()
226 cs->hw.hfcD.dfifosize = 512; in setup_hfcs()
227 cs->dc.hfcd.ph_state = 0; in setup_hfcs()
228 cs->hw.hfcD.fifo = 255; in setup_hfcs()
229 if (cs->typ == ISDN_CTYPE_TELES3C) { in setup_hfcs()
230 cs->hw.hfcD.bfifosize = 1024 + 512; in setup_hfcs()
231 } else if (cs->typ == ISDN_CTYPE_ACERP10) { in setup_hfcs()
232 cs->hw.hfcD.bfifosize = 7 * 1024 + 512; in setup_hfcs()
235 if (!request_region(cs->hw.hfcD.addr, 2, "HFCS isdn")) { in setup_hfcs()
239 cs->hw.hfcD.addr, in setup_hfcs()
240 cs->hw.hfcD.addr + 2); in setup_hfcs()
245 cs->hw.hfcD.addr, in setup_hfcs()
246 cs->irq, HZ); in setup_hfcs()
247 if (cs->typ == ISDN_CTYPE_TELES3C) { in setup_hfcs()
249 outb(0x00, cs->hw.hfcD.addr); in setup_hfcs()
250 outb(0x56, cs->hw.hfcD.addr | 1); in setup_hfcs()
251 } else if (cs->typ == ISDN_CTYPE_ACERP10) { in setup_hfcs()
253 outb(0x00, cs->hw.hfcD.addr); in setup_hfcs()
254 outb(0x57, cs->hw.hfcD.addr | 1); in setup_hfcs()
256 set_cs_func(cs); in setup_hfcs()
257 timer_setup(&cs->hw.hfcD.timer, hfcs_Timer, 0); in setup_hfcs()
258 cs->cardmsg = &hfcs_card_msg; in setup_hfcs()
259 cs->irq_func = &hfcs_interrupt; in setup_hfcs()