/* Reprogram the Zilog channel HW registers with the copies found in the * software state struct. If the transmitter is busy, we defer this update * until the next TX complete interrupt. Else, we do it right now. * * The UART port lock must be held and local interrupts disabled. */ static void ip22zilog_maybe_update_regs(struct uart_ip22zilog_port *up, struct zilog_channel *channel) { if (!ZS_REGS_HELD(up)) { if (ZS_TX_ACTIVE(up)) { up->flags |= IP22ZILOG_FLAG_REGS_HELD; } else { __load_zsregs(channel, up->curregs); } } }
/* * We do like sunzilog to avoid disrupting pending Tx * Reprogram the Zilog channel HW registers with the copies found in the * software state struct. If the transmitter is busy, we defer this update * until the next TX complete interrupt. Else, we do it right now. * * The UART port lock must be held and local interrupts disabled. */ static void pmz_maybe_update_regs(struct uart_pmac_port *uap) { if (!ZS_REGS_HELD(uap)) { if (ZS_TX_ACTIVE(uap)) { uap->flags |= PMACZILOG_FLAG_REGS_HELD; } else { pmz_debug("pmz: maybe_update_regs: updating\n"); pmz_load_zsregs(uap, uap->curregs); } } }