WPI_WRITE
WPI_WRITE(sc, WPI_FH_RX_WPTR, hw & ~7);
WPI_WRITE(sc, WPI_MASK, 0);
WPI_WRITE(sc, WPI_MASK, WPI_INT_MASK);
WPI_WRITE(sc, WPI_INT, r1);
WPI_WRITE(sc, WPI_FH_INT, r2);
WPI_WRITE(sc, WPI_MASK, WPI_INT_MASK);
WPI_WRITE(sc, WPI_HBUS_TARG_WRPTR, ring->qid << 8 | ring->cur);
WPI_WRITE(sc, WPI_HBUS_TARG_WRPTR, ring->qid << 8 | ring->cur);
WPI_WRITE(sc, WPI_RESET, 0);
WPI_WRITE(sc, WPI_INT, 0xffffffff);
WPI_WRITE(sc, WPI_FH_RX_BASE, sc->rxq.desc_dma.paddr);
WPI_WRITE(sc, WPI_FH_RX_RPTR_ADDR, sc->shared_dma.paddr +
WPI_WRITE(sc, WPI_FH_RX_WPTR, 0);
WPI_WRITE(sc, WPI_FH_RX_CONFIG,
WPI_WRITE(sc, WPI_FH_RX_WPTR, (WPI_RX_RING_COUNT - 1) & ~7);
WPI_WRITE(sc, WPI_FH_TX_BASE, sc->shared_dma.paddr);
WPI_WRITE(sc, WPI_FH_MSG_CONFIG, 0xffff05a5);
WPI_WRITE(sc, WPI_FH_CBBC_CTRL(chnl), 0);
WPI_WRITE(sc, WPI_FH_CBBC_BASE(chnl), 0);
WPI_WRITE(sc, WPI_FH_TX_CONFIG(chnl), 0x80200008);
WPI_WRITE(sc, WPI_UCODE_GP1_CLR, WPI_UCODE_GP1_RFKILL);
WPI_WRITE(sc, WPI_UCODE_GP1_CLR, WPI_UCODE_GP1_CMD_BLOCKED);
WPI_WRITE(sc, WPI_INT, 0xffffffff);
WPI_WRITE(sc, WPI_MASK, WPI_INT_MASK);
WPI_WRITE(sc, WPI_UCODE_GP1_CLR, WPI_UCODE_GP1_RFKILL);
WPI_WRITE(sc, WPI_UCODE_GP1_CLR, WPI_UCODE_GP1_RFKILL);
WPI_WRITE(sc, WPI_RESET, WPI_RESET_NEVO);
WPI_WRITE(sc, WPI_MASK, 0);
WPI_WRITE(sc, WPI_INT, 0xffffffff);
WPI_WRITE(sc, WPI_FH_INT, 0xffffffff);
WPI_WRITE(sc, WPI_FH_TX_CONFIG(chnl), 0);
WPI_WRITE(sc, WPI_INT, 0xffffffff);
WPI_WRITE(sc, WPI_PRPH_RADDR, WPI_PRPH_DWORD | addr);
WPI_WRITE(sc, WPI_PRPH_WADDR, WPI_PRPH_DWORD | addr);
WPI_WRITE(sc, WPI_PRPH_WDATA, data);
WPI_WRITE(sc, WPI_MEM_RADDR, addr);
WPI_WRITE(sc, WPI_MEM_WADDR, addr);
WPI_WRITE(sc, WPI_MEM_WDATA, data);
WPI_WRITE(sc, WPI_EEPROM, addr << 2);
WPI_WRITE(sc, WPI_FH_RX_CONFIG, 0);
WPI_WRITE(sc, reg, WPI_READ(sc, reg) | (mask))
WPI_WRITE(sc, reg, WPI_READ(sc, reg) & ~(mask))