ST_MASK
via[B] = (via[B] & ~ST_MASK) | ST_CMD;
status = via[B] & (ST_MASK | CTLR_IRQ);
WARN_ON((status & ST_MASK) != ST_IDLE);
via[B] = (via[B] & ~ST_MASK) | ST_EVEN;
if ((via[B] & ST_MASK) == ST_CMD) {
via[B] = (via[B] & ~ST_MASK) | ST_EVEN;
via[B] ^= ST_MASK;
WARN_ON((status & ST_MASK) == ST_CMD ||
(status & ST_MASK) == ST_IDLE);
via[B] ^= ST_MASK;
via[B] = (via[B] & ~ST_MASK) | ST_IDLE;