WREG32_SDMA
WREG32_SDMA(i, mmSDMA0_PHASE0_QUANTUM, phase_quantum);
WREG32_SDMA(i, mmSDMA0_PHASE1_QUANTUM, phase_quantum);
WREG32_SDMA(i, mmSDMA0_PHASE2_QUANTUM, phase_quantum);
WREG32_SDMA(i, mmSDMA0_CNTL, f32_cntl);
WREG32_SDMA(i, mmSDMA0_PUB_DUMMY_REG2, enable);
WREG32_SDMA(i, mmSDMA0_UTCL1_TIMEOUT, 0x00800080);
WREG32_SDMA(i, mmSDMA0_F32_CNTL, f32_cntl);
WREG32_SDMA(i, mmSDMA0_GFX_RB_CNTL, rb_cntl);
WREG32_SDMA(i, mmSDMA0_GFX_RB_RPTR, 0);
WREG32_SDMA(i, mmSDMA0_GFX_RB_RPTR_HI, 0);
WREG32_SDMA(i, mmSDMA0_GFX_RB_WPTR, 0);
WREG32_SDMA(i, mmSDMA0_GFX_RB_WPTR_HI, 0);
WREG32_SDMA(i, mmSDMA0_GFX_RB_RPTR_ADDR_HI,
WREG32_SDMA(i, mmSDMA0_GFX_RB_RPTR_ADDR_LO,
WREG32_SDMA(i, mmSDMA0_GFX_RB_BASE, ring->gpu_addr >> 8);
WREG32_SDMA(i, mmSDMA0_GFX_RB_BASE_HI, ring->gpu_addr >> 40);
WREG32_SDMA(i, mmSDMA0_GFX_MINOR_PTR_UPDATE, 1);
WREG32_SDMA(i, mmSDMA0_GFX_DOORBELL, doorbell);
WREG32_SDMA(i, mmSDMA0_GFX_DOORBELL_OFFSET, doorbell_offset);
WREG32_SDMA(i, mmSDMA0_GFX_MINOR_PTR_UPDATE, 0);
WREG32_SDMA(i, mmSDMA0_GFX_RB_WPTR_POLL_ADDR_LO,
WREG32_SDMA(i, mmSDMA0_GFX_RB_WPTR_POLL_ADDR_HI,
WREG32_SDMA(i, mmSDMA0_GFX_RB_WPTR_POLL_CNTL, wptr_poll_cntl);
WREG32_SDMA(i, mmSDMA0_GFX_RB_CNTL, rb_cntl);
WREG32_SDMA(i, mmSDMA0_GFX_IB_CNTL, ib_cntl);
WREG32_SDMA(i, mmSDMA0_PAGE_RB_CNTL, rb_cntl);
WREG32_SDMA(i, mmSDMA0_PAGE_RB_RPTR, 0);
WREG32_SDMA(i, mmSDMA0_PAGE_RB_RPTR_HI, 0);
WREG32_SDMA(i, mmSDMA0_PAGE_RB_WPTR, 0);
WREG32_SDMA(i, mmSDMA0_PAGE_RB_WPTR_HI, 0);
WREG32_SDMA(i, mmSDMA0_PAGE_RB_RPTR_ADDR_HI,
WREG32_SDMA(i, mmSDMA0_PAGE_RB_RPTR_ADDR_LO,
WREG32_SDMA(i, mmSDMA0_PAGE_RB_BASE, ring->gpu_addr >> 8);
WREG32_SDMA(i, mmSDMA0_PAGE_RB_BASE_HI, ring->gpu_addr >> 40);
WREG32_SDMA(i, mmSDMA0_PAGE_MINOR_PTR_UPDATE, 1);
WREG32_SDMA(i, mmSDMA0_PAGE_DOORBELL, doorbell);
WREG32_SDMA(i, mmSDMA0_PAGE_DOORBELL_OFFSET, doorbell_offset);
WREG32_SDMA(i, mmSDMA0_PAGE_MINOR_PTR_UPDATE, 0);
WREG32_SDMA(i, mmSDMA0_PAGE_RB_WPTR_POLL_ADDR_LO,
WREG32_SDMA(i, mmSDMA0_PAGE_RB_WPTR_POLL_ADDR_HI,
WREG32_SDMA(i, mmSDMA0_PAGE_RB_WPTR_POLL_CNTL, wptr_poll_cntl);
WREG32_SDMA(i, mmSDMA0_PAGE_RB_CNTL, rb_cntl);
WREG32_SDMA(i, mmSDMA0_PAGE_IB_CNTL, ib_cntl);
WREG32_SDMA(i, mmSDMA0_UCODE_ADDR, 0);
WREG32_SDMA(i, mmSDMA0_UCODE_DATA,
WREG32_SDMA(i, mmSDMA0_UCODE_ADDR,
WREG32_SDMA(i, mmSDMA0_SEM_WAIT_FAIL_TIMER_CNTL, 0);
WREG32_SDMA(i, mmSDMA0_CNTL, temp);
WREG32_SDMA(i, mmSDMA0_F32_CNTL, temp);
WREG32_SDMA(type, mmSDMA0_CNTL, sdma_cntl);
WREG32_SDMA(type, mmSDMA0_EDC_CONFIG, sdma_edc_config);
WREG32_SDMA(i, mmSDMA0_CLK_CTRL, data);
WREG32_SDMA(i, mmSDMA0_CLK_CTRL, data);
WREG32_SDMA(0, mmSDMA0_POWER_CNTL, data);
WREG32_SDMA(0, mmSDMA0_POWER_CNTL, data);
WREG32_SDMA(i, mmSDMA0_ULV_CNTL, temp);
WREG32_SDMA(ring->me, mmSDMA0_GFX_RB_WPTR,
WREG32_SDMA(ring->me, mmSDMA0_GFX_RB_WPTR_HI,
WREG32_SDMA(ring->me, mmSDMA0_PAGE_RB_WPTR,
WREG32_SDMA(ring->me, mmSDMA0_PAGE_RB_WPTR_HI,
WREG32_SDMA(i, mmSDMA0_GFX_RB_CNTL, rb_cntl);
WREG32_SDMA(i, mmSDMA0_GFX_IB_CNTL, ib_cntl);
WREG32_SDMA(i, mmSDMA0_PAGE_RB_CNTL, rb_cntl);
WREG32_SDMA(i, mmSDMA0_PAGE_IB_CNTL, ib_cntl);
WREG32_SDMA(i, regSDMA_CNTL, temp);
WREG32_SDMA(i, regSDMA_CNTL, temp);
WREG32_SDMA(i, regSDMA_F32_CNTL, temp);
WREG32_SDMA(i, regSDMA_GB_ADDR_CONFIG, val);
WREG32_SDMA(type, regSDMA_CNTL, sdma_cntl);
WREG32_SDMA(i, regSDMA_GB_ADDR_CONFIG_READ, val);
WREG32_SDMA(type, regSDMA_CNTL, sdma_cntl);
WREG32_SDMA(i, regSDMA_POWER_CNTL, data);
WREG32_SDMA(i, regSDMA_POWER_CNTL, data);
WREG32_SDMA(i, regSDMA_CLK_CTRL, data);
WREG32_SDMA(i, regSDMA_CLK_CTRL, data);
WREG32_SDMA(ring->me, regSDMA_GFX_RB_WPTR,
WREG32_SDMA(ring->me, regSDMA_GFX_RB_WPTR_HI,
WREG32_SDMA(ring->me, regSDMA_PAGE_RB_WPTR,
WREG32_SDMA(ring->me, regSDMA_PAGE_RB_WPTR_HI,
WREG32_SDMA(i, regSDMA_GFX_RB_CNTL, rb_cntl);
WREG32_SDMA(i, regSDMA_GFX_IB_CNTL, ib_cntl);
WREG32_SDMA(i, regSDMA_CNTL, sdma_cntl);
WREG32_SDMA(i, regSDMA_GFX_DOORBELL, doorbell);
WREG32_SDMA(i, regSDMA_GFX_DOORBELL_OFFSET, doorbell_offset);
WREG32_SDMA(i, regSDMA_PAGE_RB_CNTL, rb_cntl);
WREG32_SDMA(i, regSDMA_PAGE_IB_CNTL, ib_cntl);
WREG32_SDMA(i, regSDMA_PHASE0_QUANTUM, phase_quantum);
WREG32_SDMA(i, regSDMA_PHASE1_QUANTUM, phase_quantum);
WREG32_SDMA(i, regSDMA_PHASE2_QUANTUM, phase_quantum);
WREG32_SDMA(i, regSDMA_CNTL, f32_cntl);
WREG32_SDMA(i, regSDMA_UTCL1_TIMEOUT, 0x00800080);
WREG32_SDMA(i, regSDMA_F32_CNTL, f32_cntl);
WREG32_SDMA(i, regSDMA_GFX_RB_CNTL, rb_cntl);
WREG32_SDMA(i, regSDMA_GFX_RB_RPTR_ADDR_HI,
WREG32_SDMA(i, regSDMA_GFX_RB_RPTR_ADDR_LO,
WREG32_SDMA(i, regSDMA_GFX_RB_BASE, ring->gpu_addr >> 8);
WREG32_SDMA(i, regSDMA_GFX_RB_BASE_HI, ring->gpu_addr >> 40);
WREG32_SDMA(i, regSDMA_GFX_MINOR_PTR_UPDATE, 1);
WREG32_SDMA(i, regSDMA_GFX_RB_RPTR, lower_32_bits(rwptr << 2));
WREG32_SDMA(i, regSDMA_GFX_RB_RPTR_HI, upper_32_bits(rwptr << 2));
WREG32_SDMA(i, regSDMA_GFX_RB_WPTR, lower_32_bits(rwptr << 2));
WREG32_SDMA(i, regSDMA_GFX_RB_WPTR_HI, upper_32_bits(rwptr << 2));
WREG32_SDMA(i, regSDMA_GFX_RB_RPTR, 0);
WREG32_SDMA(i, regSDMA_GFX_RB_RPTR_HI, 0);
WREG32_SDMA(i, regSDMA_GFX_RB_WPTR, 0);
WREG32_SDMA(i, regSDMA_GFX_RB_WPTR_HI, 0);
WREG32_SDMA(i, regSDMA_GFX_DOORBELL, doorbell);
WREG32_SDMA(i, regSDMA_GFX_DOORBELL_OFFSET, doorbell_offset);
WREG32_SDMA(i, regSDMA_GFX_MINOR_PTR_UPDATE, 0);
WREG32_SDMA(i, regSDMA_GFX_RB_WPTR_POLL_ADDR_LO,
WREG32_SDMA(i, regSDMA_GFX_RB_WPTR_POLL_ADDR_HI,
WREG32_SDMA(i, regSDMA_GFX_RB_WPTR_POLL_CNTL, wptr_poll_cntl);
WREG32_SDMA(i, regSDMA_GFX_RB_CNTL, rb_cntl);
WREG32_SDMA(i, regSDMA_GFX_IB_CNTL, ib_cntl);
WREG32_SDMA(i, regSDMA_PAGE_RB_CNTL, rb_cntl);
WREG32_SDMA(i, regSDMA_PAGE_RB_RPTR, lower_32_bits(rwptr << 2));
WREG32_SDMA(i, regSDMA_PAGE_RB_RPTR_HI, upper_32_bits(rwptr << 2));
WREG32_SDMA(i, regSDMA_PAGE_RB_WPTR, lower_32_bits(rwptr << 2));
WREG32_SDMA(i, regSDMA_PAGE_RB_WPTR_HI, upper_32_bits(rwptr << 2));
WREG32_SDMA(i, regSDMA_PAGE_RB_RPTR, 0);
WREG32_SDMA(i, regSDMA_PAGE_RB_RPTR_HI, 0);
WREG32_SDMA(i, regSDMA_PAGE_RB_WPTR, 0);
WREG32_SDMA(i, regSDMA_PAGE_RB_WPTR_HI, 0);
WREG32_SDMA(i, regSDMA_PAGE_RB_RPTR_ADDR_HI,
WREG32_SDMA(i, regSDMA_PAGE_RB_RPTR_ADDR_LO,
WREG32_SDMA(i, regSDMA_PAGE_RB_BASE, ring->gpu_addr >> 8);
WREG32_SDMA(i, regSDMA_PAGE_RB_BASE_HI, ring->gpu_addr >> 40);
WREG32_SDMA(i, regSDMA_PAGE_MINOR_PTR_UPDATE, 1);
WREG32_SDMA(i, regSDMA_PAGE_DOORBELL, doorbell);
WREG32_SDMA(i, regSDMA_PAGE_DOORBELL_OFFSET, doorbell_offset);
WREG32_SDMA(i, regSDMA_PAGE_MINOR_PTR_UPDATE, 0);
WREG32_SDMA(i, regSDMA_PAGE_RB_WPTR_POLL_ADDR_LO,
WREG32_SDMA(i, regSDMA_PAGE_RB_WPTR_POLL_ADDR_HI,
WREG32_SDMA(i, regSDMA_PAGE_RB_WPTR_POLL_CNTL, wptr_poll_cntl);
WREG32_SDMA(i, regSDMA_PAGE_RB_CNTL, rb_cntl);
WREG32_SDMA(i, regSDMA_PAGE_IB_CNTL, ib_cntl);
WREG32_SDMA(i, regSDMA_UCODE_ADDR, 0);
WREG32_SDMA(i, regSDMA_UCODE_DATA,
WREG32_SDMA(i, regSDMA_UCODE_ADDR,
WREG32_SDMA(i, regSDMA_SEM_WAIT_FAIL_TIMER_CNTL, 0);