Lines Matching refs:cs
112 zs_break(struct zs_chanstate *cs, int set) in zs_break() argument
116 cs->cs_preg[5] |= ZSWR5_BREAK; in zs_break()
117 cs->cs_creg[5] |= ZSWR5_BREAK; in zs_break()
119 cs->cs_preg[5] &= ~ZSWR5_BREAK; in zs_break()
120 cs->cs_creg[5] &= ~ZSWR5_BREAK; in zs_break()
122 zs_write_reg(cs, 5, cs->cs_creg[5]); in zs_break()
130 zs_iflush(struct zs_chanstate *cs) in zs_iflush() argument
141 rr0 = zs_read_csr(cs); in zs_iflush()
149 rr1 = zs_read_reg(cs, 1); in zs_iflush()
150 (void)zs_read_data(cs); in zs_iflush()
154 zs_write_csr(cs, ZSWR0_RESET_ERRORS); in zs_iflush()
167 zs_loadchannelregs(struct zs_chanstate *cs) in zs_loadchannelregs() argument
171 zs_write_csr(cs, ZSM_RESET_ERR); /* XXX: reset error condition */ in zs_loadchannelregs()
178 zs_iflush(cs); /* XXX */ in zs_loadchannelregs()
181 if (cs->cs_ctl_chan != NULL) in zs_loadchannelregs()
182 v = ((cs->cs_ctl_chan->cs_creg[5] & (ZSWR5_RTS | ZSWR5_DTR)) != in zs_loadchannelregs()
183 (cs->cs_ctl_chan->cs_preg[5] & (ZSWR5_RTS | ZSWR5_DTR))); in zs_loadchannelregs()
187 if (memcmp((void *)cs->cs_preg, (void *)cs->cs_creg, 16) == 0 && !v) in zs_loadchannelregs()
191 memcpy((void *)cs->cs_creg, (void *)cs->cs_preg, 16); in zs_loadchannelregs()
192 reg = cs->cs_creg; /* current regs */ in zs_loadchannelregs()
195 zs_write_reg(cs, 1, reg[1] & ~ZSWR1_IMASK); in zs_loadchannelregs()
198 zs_write_reg(cs, 4, reg[4]); in zs_loadchannelregs()
201 zs_write_reg(cs, 10, reg[10]); in zs_loadchannelregs()
204 zs_write_reg(cs, 3, reg[3] & ~ZSWR3_RX_ENABLE); in zs_loadchannelregs()
205 zs_write_reg(cs, 5, reg[5] & ~ZSWR5_TX_ENABLE); in zs_loadchannelregs()
208 zs_write_reg(cs, 6, reg[6]); in zs_loadchannelregs()
209 zs_write_reg(cs, 7, reg[7]); in zs_loadchannelregs()
220 zs_write_reg(cs, 2, reg[2]); in zs_loadchannelregs()
222 zs_write_reg(cs, 9, reg[9]); in zs_loadchannelregs()
226 zs_write_reg(cs, 14, reg[14] & ~ZSWR14_BAUD_ENA); in zs_loadchannelregs()
230 ZS_MD_SETCLK(cs); in zs_loadchannelregs()
234 zs_write_reg(cs, 11, reg[11]); in zs_loadchannelregs()
237 zs_write_reg(cs, 12, reg[12]); in zs_loadchannelregs()
238 zs_write_reg(cs, 13, reg[13]); in zs_loadchannelregs()
241 zs_write_reg(cs, 14, reg[14]); in zs_loadchannelregs()
244 zs_write_reg(cs, 15, reg[15]); in zs_loadchannelregs()
252 zs_write_csr(cs, ZSM_RESET_STINT); in zs_loadchannelregs()
253 zs_write_csr(cs, ZSM_RESET_STINT); in zs_loadchannelregs()
256 zs_write_reg(cs, 3, reg[3]); in zs_loadchannelregs()
257 zs_write_reg(cs, 5, reg[5]); in zs_loadchannelregs()
260 if (cs->cs_ctl_chan != NULL) { in zs_loadchannelregs()
261 v = cs->cs_ctl_chan->cs_preg[5]; in zs_loadchannelregs()
262 cs->cs_ctl_chan->cs_creg[5] = v; in zs_loadchannelregs()
263 zs_write_reg(cs->cs_ctl_chan, 5, v); in zs_loadchannelregs()
267 zs_write_reg(cs, 1, reg[1]); in zs_loadchannelregs()
271 zs_lock_init(struct zs_chanstate *cs) in zs_lock_init() argument
274 mutex_init(&cs->cs_lock, MUTEX_NODEBUG, IPL_ZS); in zs_lock_init()
278 zs_lock_chan(struct zs_chanstate *cs) in zs_lock_chan() argument
281 mutex_spin_enter(&cs->cs_lock); in zs_lock_chan()
285 zs_unlock_chan(struct zs_chanstate *cs) in zs_unlock_chan() argument
288 mutex_spin_exit(&cs->cs_lock); in zs_unlock_chan()
375 struct zs_chanstate *cs; in zsc_intr_soft() local
380 cs = zsc->zsc_cs[chan]; in zsc_intr_soft()
387 if (cs->cs_softreq) { in zsc_intr_soft()
388 cs->cs_softreq = 0; in zsc_intr_soft()
389 (*cs->cs_ops->zsop_softint)(cs); in zsc_intr_soft()
406 zsnull_rxint(struct zs_chanstate *cs) in zsnull_rxint() argument
410 cs->cs_softreq = 1; in zsnull_rxint()
414 zsnull_stint(struct zs_chanstate *cs, int force) in zsnull_stint() argument
418 cs->cs_softreq = 1; in zsnull_stint()
422 zsnull_txint(struct zs_chanstate *cs) in zsnull_txint() argument
426 cs->cs_softreq = 1; in zsnull_txint()
430 zsnull_softint(struct zs_chanstate *cs) in zsnull_softint() argument
433 zs_write_reg(cs, 1, 0); in zsnull_softint()
434 zs_write_reg(cs, 15, 0); in zsnull_softint()