Lines Matching refs:chan

450 static void z8530_status(struct z8530_channel *chan)  in z8530_status()  argument
454 status = read_zsreg(chan, R0); in z8530_status()
455 altered = chan->status ^ status; in z8530_status()
457 chan->status = status; in z8530_status()
461 chan->netdevice->stats.tx_fifo_errors++; in z8530_status()
462 write_zsctrl(chan, ERR_RES); in z8530_status()
463 z8530_tx_done(chan); in z8530_status()
466 if (altered & chan->dcdcheck) in z8530_status()
468 if (status & chan->dcdcheck) { in z8530_status()
469 pr_info("%s: DCD raised\n", chan->dev->name); in z8530_status()
470 write_zsreg(chan, R3, chan->regs[3] | RxENABLE); in z8530_status()
471 if (chan->netdevice) in z8530_status()
472 netif_carrier_on(chan->netdevice); in z8530_status()
474 pr_info("%s: DCD lost\n", chan->dev->name); in z8530_status()
475 write_zsreg(chan, R3, chan->regs[3] & ~RxENABLE); in z8530_status()
476 z8530_flush_fifo(chan); in z8530_status()
477 if (chan->netdevice) in z8530_status()
478 netif_carrier_off(chan->netdevice); in z8530_status()
482 write_zsctrl(chan, RES_EXT_INT); in z8530_status()
483 write_zsctrl(chan, RES_H_IUS); in z8530_status()
505 static void z8530_dma_rx(struct z8530_channel *chan) in z8530_dma_rx() argument
507 if(chan->rxdma_on) in z8530_dma_rx()
512 read_zsreg(chan, R7); in z8530_dma_rx()
513 read_zsreg(chan, R6); in z8530_dma_rx()
515 status=read_zsreg(chan, R1); in z8530_dma_rx()
519 z8530_rx_done(chan); /* Fire up the next one */ in z8530_dma_rx()
521 write_zsctrl(chan, ERR_RES); in z8530_dma_rx()
522 write_zsctrl(chan, RES_H_IUS); in z8530_dma_rx()
527 z8530_rx(chan); in z8530_dma_rx()
539 static void z8530_dma_tx(struct z8530_channel *chan) in z8530_dma_tx() argument
541 if(!chan->dma_tx) in z8530_dma_tx()
544 z8530_tx(chan); in z8530_dma_tx()
549 z8530_tx(chan); in z8530_dma_tx()
562 static void z8530_dma_status(struct z8530_channel *chan) in z8530_dma_status() argument
566 status=read_zsreg(chan, R0); in z8530_dma_status()
567 altered=chan->status^status; in z8530_dma_status()
569 chan->status=status; in z8530_dma_status()
572 if(chan->dma_tx) in z8530_dma_status()
579 disable_dma(chan->txdma); in z8530_dma_status()
580 clear_dma_ff(chan->txdma); in z8530_dma_status()
581 chan->txdma_on=0; in z8530_dma_status()
583 z8530_tx_done(chan); in z8530_dma_status()
587 if (altered & chan->dcdcheck) in z8530_dma_status()
589 if (status & chan->dcdcheck) { in z8530_dma_status()
590 pr_info("%s: DCD raised\n", chan->dev->name); in z8530_dma_status()
591 write_zsreg(chan, R3, chan->regs[3] | RxENABLE); in z8530_dma_status()
592 if (chan->netdevice) in z8530_dma_status()
593 netif_carrier_on(chan->netdevice); in z8530_dma_status()
595 pr_info("%s: DCD lost\n", chan->dev->name); in z8530_dma_status()
596 write_zsreg(chan, R3, chan->regs[3] & ~RxENABLE); in z8530_dma_status()
597 z8530_flush_fifo(chan); in z8530_dma_status()
598 if (chan->netdevice) in z8530_dma_status()
599 netif_carrier_off(chan->netdevice); in z8530_dma_status()
603 write_zsctrl(chan, RES_EXT_INT); in z8530_dma_status()
604 write_zsctrl(chan, RES_H_IUS); in z8530_dma_status()
672 static void z8530_status_clear(struct z8530_channel *chan) in z8530_status_clear() argument
674 u8 status=read_zsreg(chan, R0); in z8530_status_clear()
676 write_zsctrl(chan, ERR_RES); in z8530_status_clear()
677 write_zsctrl(chan, RES_EXT_INT); in z8530_status_clear()
678 write_zsctrl(chan, RES_H_IUS); in z8530_status_clear()