RAL_WRITE
RAL_WRITE(sc, RT2560_SECCSR0, RT2560_KICK_DECRYPT);
RAL_WRITE(sc, RT2560_CSR8, 0xffffffff);
RAL_WRITE(sc, RT2560_CSR7, r);
RAL_WRITE(sc, RT2560_CSR8, RT2560_INTR_MASK);
RAL_WRITE(sc, RT2560_TXCSR0, RT2560_KICK_PRIO);
RAL_WRITE(sc, RT2560_SECCSR1, RT2560_KICK_ENCRYPT);
RAL_WRITE(sc, RT2560_BBPCSR, tmp);
RAL_WRITE(sc, RT2560_BBPCSR, val);
RAL_WRITE(sc, RT2560_RFCSR, tmp);
RAL_WRITE(sc, RT2560_CSR14, 0);
RAL_WRITE(sc, RT2560_CSR12, tmp);
RAL_WRITE(sc, RT2560_CSR13, 0);
RAL_WRITE(sc, RT2560_BCNOCSR, tmp);
RAL_WRITE(sc, RT2560_CSR14, tmp);
RAL_WRITE(sc, RT2560_PLCP1MCSR, 0x00700400);
RAL_WRITE(sc, RT2560_PLCP2MCSR, 0x00380401);
RAL_WRITE(sc, RT2560_PLCP5p5MCSR, 0x00150402);
RAL_WRITE(sc, RT2560_PLCP11MCSR, 0x000b8403);
RAL_WRITE(sc, RT2560_PLCP2MCSR, 0x00380409);
RAL_WRITE(sc, RT2560_PLCP5p5MCSR, 0x0015040a);
RAL_WRITE(sc, RT2560_PLCP11MCSR, 0x000b840b);
RAL_WRITE(sc, RT2560_CSR11, tmp);
RAL_WRITE(sc, RT2560_CSR18, tmp);
RAL_WRITE(sc, RT2560_CSR19, tmp);
RAL_WRITE(sc, RT2560_ARSP_PLCP_1, 0x3);
RAL_WRITE(sc, RT2560_ARSP_PLCP_1, 0xf);
RAL_WRITE(sc, RT2560_LEDCSR, tmp);
RAL_WRITE(sc, RT2560_CSR5, tmp);
RAL_WRITE(sc, RT2560_CSR6, tmp);
RAL_WRITE(sc, RT2560_CSR3, tmp);
RAL_WRITE(sc, RT2560_CSR4, tmp);
RAL_WRITE(sc, RT2560_RXCSR0, tmp);
RAL_WRITE(sc, RT2560_BBPCSR1, tmp);
RAL_WRITE(sc, RT2560_TXCSR2, tmp);
RAL_WRITE(sc, RT2560_TXCSR3, sc->txq.physaddr);
RAL_WRITE(sc, RT2560_TXCSR5, sc->prioq.physaddr);
RAL_WRITE(sc, RT2560_TXCSR4, sc->atimq.physaddr);
RAL_WRITE(sc, RT2560_TXCSR6, sc->bcnq.physaddr);
RAL_WRITE(sc, RT2560_RXCSR1, tmp);
RAL_WRITE(sc, RT2560_RXCSR2, sc->rxq.physaddr);
RAL_WRITE(sc, rt2560_def_mac[i].reg, rt2560_def_mac[i].val);
RAL_WRITE(sc, RT2560_ARSP_PLCP_1, 0x153);
RAL_WRITE(sc, RT2560_CSR1, RT2560_RESET_ASIC);
RAL_WRITE(sc, RT2560_CSR1, RT2560_HOST_READY);
RAL_WRITE(sc, RT2560_RXCSR0, tmp);
RAL_WRITE(sc, RT2560_CSR7, 0xffffffff);
RAL_WRITE(sc, RT2560_CSR8, RT2560_INTR_MASK);
RAL_WRITE(sc, RT2560_TXCSR0, RT2560_ABORT_TX);
RAL_WRITE(sc, RT2560_RXCSR0, RT2560_DISABLE_RX);
RAL_WRITE(sc, RT2560_CSR1, RT2560_RESET_ASIC);
RAL_WRITE(sc, RT2560_CSR1, 0);
RAL_WRITE(sc, RT2560_CSR8, 0xffffffff);
RAL_WRITE(sc, RT2560_CSR7, 0xffffffff);
RAL_WRITE(sc, RT2560_CSR14, 0);
RAL_WRITE(sc, RT2560_TXCSR0, RT2560_KICK_TX);
RAL_WRITE((sc), RT2560_CSR21, (val)); \
RAL_WRITE(sc, RT2661_MAC_CSR11, 5 << 16);
RAL_WRITE(sc, RT2661_SOFT_RESET_CSR, 0x7);
RAL_WRITE(sc, RT2661_IO_CNTL_CSR, 0x18);
RAL_WRITE(sc, RT2661_PCI_USEC_CSR, 0x20);
RAL_WRITE(sc, RT2661_M2H_CMD_DONE_CSR, 0xffffffff);
RAL_WRITE(sc, RT2661_INT_MASK_CSR, 0xffffff7f);
RAL_WRITE(sc, RT2661_MCU_INT_MASK_CSR, 0xffffffff);
RAL_WRITE(sc, RT2661_INT_SOURCE_CSR, r1);
RAL_WRITE(sc, RT2661_MCU_INT_SOURCE_CSR, r2);
RAL_WRITE(sc, RT2661_INT_MASK_CSR, 0x0000ff10);
RAL_WRITE(sc, RT2661_MCU_INT_MASK_CSR, 0);
RAL_WRITE(sc, RT2661_TX_CNTL_CSR, RT2661_KICK_MGT);
RAL_WRITE(sc, RT2661_TX_CNTL_CSR, 1);
RAL_WRITE(sc, RT2661_PHY_CSR3, tmp);
RAL_WRITE(sc, RT2661_PHY_CSR3, val);
RAL_WRITE(sc, RT2661_PHY_CSR4, tmp);
RAL_WRITE(sc, RT2661_H2M_MAILBOX_CSR,
RAL_WRITE(sc, RT2661_HOST_CMD_CSR, RT2661_KICK_CMD | cmd);
RAL_WRITE(sc, RT2661_TXRX_CSR0, tmp | RT2661_DISABLE_RX);
RAL_WRITE(sc, RT2661_TXRX_CSR0, tmp);
RAL_WRITE(sc, RT2661_TXRX_CSR4, tmp);
RAL_WRITE(sc, RT2661_TXRX_CSR4, tmp);
RAL_WRITE(sc, RT2661_TXRX_CSR5, 0x3);
RAL_WRITE(sc, RT2661_TXRX_CSR5, 0x150);
RAL_WRITE(sc, RT2661_TXRX_CSR5, 0xf);
RAL_WRITE(sc, RT2661_PHY_CSR0, tmp);
RAL_WRITE(sc, RT2661_MAC_CSR4, tmp);
RAL_WRITE(sc, RT2661_MAC_CSR5, tmp);
RAL_WRITE(sc, RT2661_MAC_CSR2, tmp);
RAL_WRITE(sc, RT2661_MAC_CSR3, tmp);
RAL_WRITE(sc, RT2661_TXRX_CSR0, tmp);
RAL_WRITE(sc, RT2661_MAC_CSR9, tmp);
RAL_WRITE(sc, RT2661_AC1_BASE_CSR, sc->txq[1].physaddr);
RAL_WRITE(sc, RT2661_AC0_BASE_CSR, sc->txq[0].physaddr);
RAL_WRITE(sc, RT2661_AC2_BASE_CSR, sc->txq[2].physaddr);
RAL_WRITE(sc, RT2661_AC3_BASE_CSR, sc->txq[3].physaddr);
RAL_WRITE(sc, RT2661_MGT_BASE_CSR, sc->mgtq.physaddr);
RAL_WRITE(sc, RT2661_RX_BASE_CSR, sc->rxq.physaddr);
RAL_WRITE(sc, RT2661_TX_RING_CSR0,
RAL_WRITE(sc, RT2661_TX_RING_CSR1,
RAL_WRITE(sc, RT2661_RX_RING_CSR,
RAL_WRITE(sc, RT2661_TX_DMA_DST_CSR, 0xaa);
RAL_WRITE(sc, RT2661_LOAD_TX_RING_CSR, 0x1f);
RAL_WRITE(sc, RT2661_RX_CNTL_CSR, 2);
RAL_WRITE(sc, rt2661_def_mac[i].reg, rt2661_def_mac[i].val);
RAL_WRITE(sc, RT2661_MAC_CSR1, 3);
RAL_WRITE(sc, RT2661_MAC_CSR1, 0);
RAL_WRITE(sc, RT2661_TXRX_CSR0, tmp);
RAL_WRITE(sc, RT2661_MAC_CSR1, 4);
RAL_WRITE(sc, RT2661_INT_SOURCE_CSR, 0xffffffff);
RAL_WRITE(sc, RT2661_INT_MASK_CSR, 0x0000ff10);
RAL_WRITE(sc, RT2661_MCU_INT_MASK_CSR, 0);
RAL_WRITE(sc, RT2661_RX_CNTL_CSR, 1);
RAL_WRITE(sc, RT2661_TX_CNTL_CSR, 0x1f << 16);
RAL_WRITE(sc, RT2661_TXRX_CSR0, tmp | RT2661_DISABLE_RX);
RAL_WRITE(sc, RT2661_MAC_CSR1, 3);
RAL_WRITE(sc, RT2661_MAC_CSR1, 0);
RAL_WRITE(sc, RT2661_INT_MASK_CSR, 0xffffff7f);
RAL_WRITE(sc, RT2661_MCU_INT_MASK_CSR, 0xffffffff);
RAL_WRITE(sc, RT2661_INT_SOURCE_CSR, 0xffffffff);
RAL_WRITE(sc, RT2661_MCU_INT_SOURCE_CSR, 0xffffffff);
RAL_WRITE(sc, RT2661_MCU_CNTL_CSR, RT2661_MCU_RESET);
RAL_WRITE(sc, RT2661_H2M_MAILBOX_CSR, 0);
RAL_WRITE(sc, RT2661_M2H_CMD_DONE_CSR, 0xffffffff);
RAL_WRITE(sc, RT2661_HOST_CMD_CSR, 0);
RAL_WRITE(sc, RT2661_MCU_CNTL_CSR, RT2661_MCU_RESET | RT2661_MCU_SEL);
RAL_WRITE(sc, RT2661_MCU_CNTL_CSR, RT2661_MCU_RESET);
RAL_WRITE(sc, RT2661_MCU_CNTL_CSR, 0);
RAL_WRITE(sc, RT2661_TXRX_CSR0, tmp | RT2661_DISABLE_RX);
RAL_WRITE(sc, RT2661_TXRX_CSR0, tmp);
RAL_WRITE(sc, RT2661_TXRX_CSR10, 1 << 12 | 8);
RAL_WRITE(sc, RT2661_TXRX_CSR9, tmp);
RAL_WRITE(sc, RT2661_TXRX_CSR9, tmp & ~0x00ffffff);
RAL_WRITE((sc), RT2661_E2PROM_CSR, (val)); \
RAL_WRITE(sc, RT3070_EFUSE_CTRL, tmp);
RAL_WRITE(sc, RT3290_EFUSE_CTRL, tmp);
RAL_WRITE(sc, RT2860_WPDMA_GLO_CFG, tmp);
RAL_WRITE(sc, RT2860_RX_CALC_IDX,
RAL_WRITE(sc, RT2860_INT_STATUS, r);
RAL_WRITE(sc, RT2860_TX_CTX_IDX(qid), ring->cur);
RAL_WRITE(sc, RT2860_H2M_BBPAGENT, RT2860_BBP_RW_PARALLEL |
RAL_WRITE(sc, RT2860_H2M_BBPAGENT, RT2860_BBP_RW_PARALLEL |
RAL_WRITE(sc, RT2860_RF_CSR_CFG0, tmp);
RAL_WRITE(sc, RT3070_RF_CSR_CFG, tmp);
RAL_WRITE(sc, RT3070_RF_CSR_CFG, tmp);
RAL_WRITE(sc, RT2860_H2M_MAILBOX, RT2860_H2M_BUSY | cid << 16 | arg);
RAL_WRITE(sc, RT2860_HOST_CMD, cmd);
RAL_WRITE(sc, RT2860_H2M_MAILBOX_STATUS, 0xffffffff);
RAL_WRITE(sc, RT2860_H2M_MAILBOX_CID, 0xffffffff);
RAL_WRITE(sc, RT2860_H2M_MAILBOX_STATUS, 0xffffffff);
RAL_WRITE(sc, RT2860_H2M_MAILBOX_CID, 0xffffffff);
RAL_WRITE(sc, RT2860_LG_FBK_CFG0,
RAL_WRITE(sc, RT2860_LG_FBK_CFG1,
RAL_WRITE(sc, RT2860_AUTO_RSP_CFG, tmp);
RAL_WRITE(sc, RT2860_LEGACY_BASIC_RATE, 0x003);
RAL_WRITE(sc, RT2860_LEGACY_BASIC_RATE, 0x150);
RAL_WRITE(sc, RT2860_LEGACY_BASIC_RATE, 0x15f);
RAL_WRITE(sc, RT2860_TX_BAND_CFG, tmp);
RAL_WRITE(sc, RT2860_TX_PIN_CFG, tmp);
RAL_WRITE(sc, RT2860_TX_PIN_CFG, tmp);
RAL_WRITE(sc, RT2860_GPIO_CTRL, tmp);
RAL_WRITE(sc, RT3070_LDO_CFG0, tmp);
RAL_WRITE(sc, RT3070_GPIO_SWITCH, tmp & ~0x20);
RAL_WRITE(sc, RT3070_OPT_14, tmp | 1);
RAL_WRITE(sc, RT3070_OPT_14, RAL_READ(sc, RT3070_OPT_14) | 1);
RAL_WRITE(sc, RT2860_TX_SW_CFG1, 0);
RAL_WRITE(sc, RT2860_TX_SW_CFG2, 0);
RAL_WRITE(sc, RT3070_LDO_CFG0, tmp);
RAL_WRITE(sc, RT3070_LDO_CFG0, tmp);
RAL_WRITE(sc, RT2860_TX_SW_CFG1, 0);
RAL_WRITE(sc, RT2860_TX_SW_CFG2,
RAL_WRITE(sc, RT2860_TX_SW_CFG2, 0);
RAL_WRITE(sc, RT2860_INT_TIMER_EN, tmp & ~RT2860_GP_TIMER_EN);
RAL_WRITE(sc, RT2860_INT_TIMER_CFG, tmp);
RAL_WRITE(sc, RT2860_INT_TIMER_EN, tmp | RT2860_GP_TIMER_EN);
RAL_WRITE(sc, RT2860_MAC_BSSID_DW0,
RAL_WRITE(sc, RT2860_MAC_BSSID_DW1,
RAL_WRITE(sc, RT2860_MAC_ADDR_DW0,
RAL_WRITE(sc, RT2860_MAC_ADDR_DW1,
RAL_WRITE(sc, RT2860_BKOFF_SLOT_CFG, tmp);
RAL_WRITE(sc, RT2860_CCK_PROT_CFG, tmp);
RAL_WRITE(sc, RT2860_OFDM_PROT_CFG, tmp);
RAL_WRITE(sc, RT2860_EDCA_AC_CFG(aci),
RAL_WRITE(sc, RT2860_WMM_AIFSN_CFG,
RAL_WRITE(sc, RT2860_WMM_CWMIN_CFG,
RAL_WRITE(sc, RT2860_WMM_CWMAX_CFG,
RAL_WRITE(sc, RT2860_WMM_TXOP0_CFG,
RAL_WRITE(sc, RT2860_WMM_TXOP1_CFG,
RAL_WRITE(sc, RT2860_SKEY_MODE_0_7, attr);
RAL_WRITE(sc, RT2860_WCID_ATTR(wcid), attr);
RAL_WRITE(sc, RT2860_SKEY_MODE_0_7, attr);
RAL_WRITE(sc, RT2860_WCID_ATTR(wcid), attr);
RAL_WRITE(sc, RT3290_WLAN_CTRL, tmp);
RAL_WRITE(sc, RT3290_WLAN_CTRL, tmp);
RAL_WRITE(sc, RT3290_WLAN_CTRL, tmp);
RAL_WRITE(sc, RT2860_INT_STATUS, 0x7fffffff);
RAL_WRITE(sc, RT2860_MAC_SYS_CTRL, RT2860_MAC_TX_EN);
RAL_WRITE(sc, RT2860_WPDMA_GLO_CFG, tmp);
RAL_WRITE(sc, RT2860_RX_FILTR_CFG, tmp);
RAL_WRITE(sc, RT2860_MAC_SYS_CTRL,
RAL_WRITE(sc, RT2860_PWR_PIN_CFG, RT2860_IO_RA_PE);
RAL_WRITE(sc, RT2860_WPDMA_GLO_CFG, tmp);
RAL_WRITE(sc, RT2860_SYS_CTRL, 0xe1f);
RAL_WRITE(sc, RT2860_SYS_CTRL, 0xe00);
RAL_WRITE(sc, RT2860_TX_PWR_CFG(ridx), sc->txpow20mhz[ridx]);
RAL_WRITE(sc, RT2860_WPDMA_GLO_CFG, tmp);
RAL_WRITE(sc, RT2860_WPDMA_RST_IDX, 0x1003f);
RAL_WRITE(sc, RT2860_SYS_CTRL, 0xe1f);
RAL_WRITE(sc, RT2860_SYS_CTRL, 0xe00);
RAL_WRITE(sc, RT2860_PWR_PIN_CFG, RT2860_IO_RA_PE | RT2860_IO_RF_PE);
RAL_WRITE(sc, RT2860_MAC_SYS_CTRL, RT2860_BBP_HRST | RT2860_MAC_SRST);
RAL_WRITE(sc, RT2860_MAC_SYS_CTRL, 0);
RAL_WRITE(sc, rt2860_def_mac[i].reg, rt2860_def_mac[i].val);
RAL_WRITE(sc, RT2860_TX_SW_CFG0, 0x00000404);
RAL_WRITE(sc, RT2860_TX_SW_CFG0,
RAL_WRITE(sc, RT2860_US_CYC_CNT, tmp);
RAL_WRITE(sc, RT2860_H2M_BBPAGENT, 0);
RAL_WRITE(sc, RT2860_H2M_MAILBOX, 0);
RAL_WRITE(sc, RT2860_TX_BASE_PTR(qid), sc->txq[qid].paddr);
RAL_WRITE(sc, RT2860_TX_MAX_CNT(qid), RT2860_TX_RING_COUNT);
RAL_WRITE(sc, RT2860_TX_CTX_IDX(qid), 0);
RAL_WRITE(sc, RT2860_RX_BASE_PTR, sc->rxq.paddr);
RAL_WRITE(sc, RT2860_RX_MAX_CNT, RT2860_RX_RING_COUNT);
RAL_WRITE(sc, RT2860_RX_CALC_IDX, RT2860_RX_RING_COUNT - 1);
RAL_WRITE(sc, RT2860_MAX_LEN_CFG, 1 << 12 |
RAL_WRITE(sc, RT2860_WPDMA_GLO_CFG, tmp);
RAL_WRITE(sc, RT2860_DELAY_INT_CFG, 0);
RAL_WRITE(sc, RT2860_TX_RTS_CFG, tmp);
RAL_WRITE(sc, RT2860_INT_STATUS, 0xffffffff);
RAL_WRITE(sc, RT2860_INT_MASK, 0x3fffc);
RAL_WRITE(sc, RT2860_INT_MASK, 0);
RAL_WRITE(sc, RT2860_MAC_SYS_CTRL, tmp);
RAL_WRITE(sc, RT2860_MAC_SYS_CTRL, RT2860_BBP_HRST | RT2860_MAC_SRST);
RAL_WRITE(sc, RT2860_MAC_SYS_CTRL, 0);
RAL_WRITE(sc, RT2860_SYS_CTRL, RT2860_HST_PM_SEL);
RAL_WRITE(sc, RT2860_SYS_CTRL, 0);
RAL_WRITE(sc, RT2860_SYS_CTRL, RT2860_MCU_RESET);
RAL_WRITE(sc, RT2860_H2M_BBPAGENT, 0);
RAL_WRITE(sc, RT2860_H2M_MAILBOX, 0);
RAL_WRITE(sc, RT2860_TX_PWR_CFG(ridx),
RAL_WRITE(sc, RT2860_PCI_EECTRL,
RAL_WRITE(sc, RT2860_GPIO_CTRL,
RAL_WRITE(sc, RT2860_PCI_EECTRL,
RAL_WRITE(sc, RT2860_GPIO_CTRL,
RAL_WRITE(sc, RT2860_BCN_TIME_CFG, tmp);
RAL_WRITE(sc, RT2860_MAC_SYS_CTRL, RT2860_MAC_SRST);
RAL_WRITE(sc, RT2860_MAC_SYS_CTRL,
RAL_WRITE(sc, RT2860_WCID_ENTRY(wcid) + 4, tmp);
RAL_WRITE(sc, RT2860_WCID_ENTRY(wcid) + 4, tmp);
RAL_WRITE(sc, RT2860_BCN_TIME_CFG,
RAL_WRITE((sc), RT2860_PCI_EECTRL, (val)); \