/* this is the main interrupt routine for the DZ chip.  */
static irqreturn_t dz_interrupt(int irq, void *dev_id)
/* this is the main interrupt routine for the DZ chip.  */
static irqreturn_t dz_interrupt(int irq, void *dev_id)
{
	struct dz_mux *mux = dev_id;
	struct dz_port *dport = &mux->dport[0];
	u16 status;
	status = dz_in(dport, DZ_CSR);
	if ((status & (DZ_RDONE | DZ_RIE)) == (DZ_RDONE | DZ_RIE))
		dz_receive_chars(mux);
	if ((status & (DZ_TRDY | DZ_TIE)) == (DZ_TRDY | DZ_TIE))
		dz_transmit_chars(mux);
	return IRQ_HANDLED;
}