WPI_WRITE
WPI_WRITE(sc, WPI_GPIO_CTL, tmp | WPI_GPIO_MAC);
WPI_WRITE(sc, WPI_GPIO_CTL, tmp & ~WPI_GPIO_MAC);
WPI_WRITE(sc, WPI_READ_MEM_ADDR, WPI_MEM_4 | addr);
WPI_WRITE(sc, WPI_WRITE_MEM_ADDR, WPI_MEM_4 | addr);
WPI_WRITE(sc, WPI_WRITE_MEM_DATA, data);
WPI_WRITE(sc, WPI_EEPROM_CTL, addr << 2);
WPI_WRITE(sc, WPI_RESET, 0);
WPI_WRITE(sc, WPI_RX_WIDX, hw & ~7);
WPI_WRITE(sc, WPI_MASK, 0);
WPI_WRITE(sc, WPI_INTR, r);
WPI_WRITE(sc, WPI_MASK, WPI_INTR_MASK);
WPI_WRITE(sc, WPI_TX_WIDX, ring->qid << 8 | ring->cur);
WPI_WRITE(sc, WPI_TX_WIDX, ring->qid << 8 | ring->cur);
WPI_WRITE(sc, WPI_TX_WIDX, ring->qid << 8 | ring->cur);
WPI_WRITE(sc, WPI_TX_WIDX, ring->qid << 8 | ring->cur);
WPI_WRITE(sc, WPI_RESET, tmp | WPI_STOP_MASTER);
WPI_WRITE(sc, WPI_INTR, 0xffffffff);
WPI_WRITE(sc, WPI_PLL_CTL, tmp | WPI_PLL_INIT);
WPI_WRITE(sc, WPI_CHICKEN, tmp | WPI_CHICKEN_RXNOLOS);
WPI_WRITE(sc, WPI_GPIO_CTL, tmp | WPI_GPIO_INIT);
WPI_WRITE(sc, WPI_EEPROM_STATUS, tmp & ~WPI_EEPROM_LOCKED);
WPI_WRITE(sc, WPI_HWCONFIG, hw);
WPI_WRITE(sc, WPI_RX_BASE, sc->rxq.desc_dma.paddr);
WPI_WRITE(sc, WPI_RX_RIDX_PTR, sc->shared_dma.paddr +
WPI_WRITE(sc, WPI_RX_WIDX, (WPI_RX_RING_COUNT - 1) & ~7);
WPI_WRITE(sc, WPI_RX_CONFIG, 0xa9601010);
WPI_WRITE(sc, WPI_TX_BASE_PTR, sc->shared_dma.paddr);
WPI_WRITE(sc, WPI_MSG_CONFIG, 0xffff05a5);
WPI_WRITE(sc, WPI_TX_CTL(qid), 0);
WPI_WRITE(sc, WPI_TX_BASE(qid), 0);
WPI_WRITE(sc, WPI_TX_CONFIG(qid), 0x80200008);
WPI_WRITE(sc, WPI_UCODE_CLR, WPI_RADIO_OFF);
WPI_WRITE(sc, WPI_UCODE_CLR, WPI_DISABLE_CMD);
WPI_WRITE(sc, WPI_INTR, 0xffffffff);
WPI_WRITE(sc, WPI_MASK, WPI_INTR_MASK);
WPI_WRITE(sc, WPI_UCODE_CLR, WPI_RADIO_OFF);
WPI_WRITE(sc, WPI_UCODE_CLR, WPI_RADIO_OFF);
WPI_WRITE(sc, WPI_MASK, 0);
WPI_WRITE(sc, WPI_INTR, WPI_INTR_MASK);
WPI_WRITE(sc, WPI_INTR_STATUS, 0xff);
WPI_WRITE(sc, WPI_INTR_STATUS, 0x00070000);
WPI_WRITE(sc, WPI_RESET, tmp | WPI_SW_RESET);
WPI_WRITE(sc, WPI_RX_CONFIG, 0);
WPI_WRITE(sc, WPI_TX_CONFIG(ring->qid), 0);