• Home
  • Raw
  • Download

Lines Matching refs:channel

54 #define ZS_WSYNC(channel)	do { } while (0)  argument
112 static unsigned char read_zsreg(struct zilog_channel *channel, in read_zsreg() argument
117 writeb(reg, &channel->control); in read_zsreg()
119 retval = readb(&channel->control); in read_zsreg()
125 static void write_zsreg(struct zilog_channel *channel, in write_zsreg() argument
128 writeb(reg, &channel->control); in write_zsreg()
130 writeb(value, &channel->control); in write_zsreg()
134 static void ip22zilog_clear_fifo(struct zilog_channel *channel) in ip22zilog_clear_fifo() argument
141 regval = readb(&channel->control); in ip22zilog_clear_fifo()
146 regval = read_zsreg(channel, R1); in ip22zilog_clear_fifo()
147 readb(&channel->data); in ip22zilog_clear_fifo()
151 writeb(ERR_RES, &channel->control); in ip22zilog_clear_fifo()
153 ZS_WSYNC(channel); in ip22zilog_clear_fifo()
161 static void __load_zsregs(struct zilog_channel *channel, unsigned char *regs) in __load_zsregs() argument
167 unsigned char stat = read_zsreg(channel, R1); in __load_zsregs()
173 writeb(ERR_RES, &channel->control); in __load_zsregs()
175 ZS_WSYNC(channel); in __load_zsregs()
177 ip22zilog_clear_fifo(channel); in __load_zsregs()
180 write_zsreg(channel, R1, in __load_zsregs()
184 write_zsreg(channel, R4, regs[R4]); in __load_zsregs()
187 write_zsreg(channel, R10, regs[R10]); in __load_zsregs()
190 write_zsreg(channel, R3, regs[R3] & ~RxENAB); in __load_zsregs()
191 write_zsreg(channel, R5, regs[R5] & ~TxENAB); in __load_zsregs()
194 write_zsreg(channel, R6, regs[R6]); in __load_zsregs()
195 write_zsreg(channel, R7, regs[R7]); in __load_zsregs()
203 write_zsreg(channel, R14, regs[R14] & ~BRENAB); in __load_zsregs()
206 write_zsreg(channel, R11, regs[R11]); in __load_zsregs()
209 write_zsreg(channel, R12, regs[R12]); in __load_zsregs()
210 write_zsreg(channel, R13, regs[R13]); in __load_zsregs()
213 write_zsreg(channel, R14, regs[R14]); in __load_zsregs()
216 write_zsreg(channel, R15, regs[R15]); in __load_zsregs()
219 write_zsreg(channel, R0, RES_EXT_INT); in __load_zsregs()
220 write_zsreg(channel, R0, RES_EXT_INT); in __load_zsregs()
223 write_zsreg(channel, R3, regs[R3]); in __load_zsregs()
224 write_zsreg(channel, R5, regs[R5]); in __load_zsregs()
227 write_zsreg(channel, R1, regs[R1]); in __load_zsregs()
237 struct zilog_channel *channel) in ip22zilog_maybe_update_regs() argument
243 __load_zsregs(channel, up->curregs); in ip22zilog_maybe_update_regs()
252 struct zilog_channel *channel) in ip22zilog_receive_chars() argument
259 ch = readb(&channel->control); in ip22zilog_receive_chars()
264 r1 = read_zsreg(channel, R1); in ip22zilog_receive_chars()
266 writeb(ERR_RES, &channel->control); in ip22zilog_receive_chars()
268 ZS_WSYNC(channel); in ip22zilog_receive_chars()
271 ch = readb(&channel->data); in ip22zilog_receive_chars()
317 struct zilog_channel *channel) in ip22zilog_status_handle() argument
321 status = readb(&channel->control); in ip22zilog_status_handle()
324 writeb(RES_EXT_INT, &channel->control); in ip22zilog_status_handle()
326 ZS_WSYNC(channel); in ip22zilog_status_handle()
359 struct zilog_channel *channel) in ip22zilog_transmit_chars() argument
364 unsigned char status = readb(&channel->control); in ip22zilog_transmit_chars()
382 __load_zsregs(channel, up->curregs); in ip22zilog_transmit_chars()
393 writeb(up->port.x_char, &channel->data); in ip22zilog_transmit_chars()
395 ZS_WSYNC(channel); in ip22zilog_transmit_chars()
411 writeb(xmit->buf[xmit->tail], &channel->data); in ip22zilog_transmit_chars()
413 ZS_WSYNC(channel); in ip22zilog_transmit_chars()
424 writeb(RES_Tx_P, &channel->control); in ip22zilog_transmit_chars()
426 ZS_WSYNC(channel); in ip22zilog_transmit_chars()
434 struct zilog_channel *channel in ip22zilog_interrupt() local
440 r3 = read_zsreg(channel, R3); in ip22zilog_interrupt()
444 writeb(RES_H_IUS, &channel->control); in ip22zilog_interrupt()
446 ZS_WSYNC(channel); in ip22zilog_interrupt()
449 push = ip22zilog_receive_chars(up, channel); in ip22zilog_interrupt()
451 ip22zilog_status_handle(up, channel); in ip22zilog_interrupt()
453 ip22zilog_transmit_chars(up, channel); in ip22zilog_interrupt()
462 channel = ZILOG_CHANNEL_FROM_PORT(&up->port); in ip22zilog_interrupt()
467 writeb(RES_H_IUS, &channel->control); in ip22zilog_interrupt()
469 ZS_WSYNC(channel); in ip22zilog_interrupt()
472 push = ip22zilog_receive_chars(up, channel); in ip22zilog_interrupt()
474 ip22zilog_status_handle(up, channel); in ip22zilog_interrupt()
476 ip22zilog_transmit_chars(up, channel); in ip22zilog_interrupt()
494 struct zilog_channel *channel; in ip22zilog_read_channel_status() local
497 channel = ZILOG_CHANNEL_FROM_PORT(port); in ip22zilog_read_channel_status()
498 status = readb(&channel->control); in ip22zilog_read_channel_status()
548 struct zilog_channel *channel = ZILOG_CHANNEL_FROM_PORT(port); in ip22zilog_set_mctrl() local
565 write_zsreg(channel, R5, up->curregs[R5]); in ip22zilog_set_mctrl()
580 struct zilog_channel *channel = ZILOG_CHANNEL_FROM_PORT(port); in ip22zilog_start_tx() local
586 status = readb(&channel->control); in ip22zilog_start_tx()
597 writeb(port->x_char, &channel->data); in ip22zilog_start_tx()
599 ZS_WSYNC(channel); in ip22zilog_start_tx()
606 writeb(xmit->buf[xmit->tail], &channel->data); in ip22zilog_start_tx()
608 ZS_WSYNC(channel); in ip22zilog_start_tx()
622 struct zilog_channel *channel; in ip22zilog_stop_rx() local
627 channel = ZILOG_CHANNEL_FROM_PORT(port); in ip22zilog_stop_rx()
631 ip22zilog_maybe_update_regs(up, channel); in ip22zilog_stop_rx()
638 struct zilog_channel *channel = ZILOG_CHANNEL_FROM_PORT(port); in ip22zilog_enable_ms() local
646 write_zsreg(channel, R15, up->curregs[R15]); in ip22zilog_enable_ms()
654 struct zilog_channel *channel = ZILOG_CHANNEL_FROM_PORT(port); in ip22zilog_break_ctl() local
672 write_zsreg(channel, R5, up->curregs[R5]); in ip22zilog_break_ctl()
680 struct zilog_channel *channel; in __ip22zilog_reset() local
687 channel = ZILOG_CHANNEL_FROM_PORT(&up->port); in __ip22zilog_reset()
689 unsigned char stat = read_zsreg(channel, R1); in __ip22zilog_reset()
697 channel = ZILOG_CHANNEL_FROM_PORT(&up->port); in __ip22zilog_reset()
699 write_zsreg(channel, R9, FHWRES); in __ip22zilog_reset()
701 (void) read_zsreg(channel, R0); in __ip22zilog_reset()
709 struct zilog_channel *channel; in __ip22zilog_startup() local
711 channel = ZILOG_CHANNEL_FROM_PORT(&up->port); in __ip22zilog_startup()
715 __load_zsregs(channel, up->curregs); in __ip22zilog_startup()
717 write_zsreg(channel, R9, up->curregs[R9]); in __ip22zilog_startup()
718 up->prev_status = readb(&channel->control); in __ip22zilog_startup()
725 ip22zilog_maybe_update_regs(up, channel); in __ip22zilog_startup()
770 struct zilog_channel *channel; in ip22zilog_shutdown() local
778 channel = ZILOG_CHANNEL_FROM_PORT(port); in ip22zilog_shutdown()
787 ip22zilog_maybe_update_regs(up, channel); in ip22zilog_shutdown()
990 struct zilog_channel *channel = ZILOG_CHANNEL_FROM_PORT(port); in ip22zilog_put_char() local
997 unsigned char val = readb(&channel->control); in ip22zilog_put_char()
1005 writeb(ch, &channel->data); in ip22zilog_put_char()
1007 ZS_WSYNC(channel); in ip22zilog_put_char()
1076 int channel, chip; in ip22zilog_prepare() local
1081 for (channel = 0; channel < NUM_CHANNELS; channel++) in ip22zilog_prepare()
1082 spin_lock_init(&ip22zilog_port_table[channel].port.lock); in ip22zilog_prepare()
1086 for (channel = NUM_CHANNELS - 1 ; channel > 0; channel--) in ip22zilog_prepare()
1087 up[channel].next = &up[channel - 1]; in ip22zilog_prepare()
1088 up[channel].next = NULL; in ip22zilog_prepare()
1126 for (channel = 0; channel < NUM_CHANNELS; channel++) { in ip22zilog_prepare()
1127 struct uart_ip22zilog_port *up = &ip22zilog_port_table[channel]; in ip22zilog_prepare()