WREG32(mmSDMA0_GFX_RB_WPTR_POLL_ADDR_HI + sdma_offsets[i],
                       upper_32_bits(wptr_gpu_addr));
                wptr_poll_cntl = RREG32(mmSDMA0_GFX_RB_WPTR_POLL_CNTL + sdma_offsets[i]);
-               if (ring->use_pollmem)
+               if (ring->use_pollmem) {
+                       /*wptr polling is not enogh fast, directly clean the wptr register */
+                       WREG32(mmSDMA0_GFX_RB_WPTR + sdma_offsets[i], 0);
                        wptr_poll_cntl = REG_SET_FIELD(wptr_poll_cntl,
                                                       SDMA0_GFX_RB_WPTR_POLL_CNTL,
                                                       ENABLE, 1);
-               else
+               } else {
                        wptr_poll_cntl = REG_SET_FIELD(wptr_poll_cntl,
                                                       SDMA0_GFX_RB_WPTR_POLL_CNTL,
                                                       ENABLE, 0);
+               }
                WREG32(mmSDMA0_GFX_RB_WPTR_POLL_CNTL + sdma_offsets[i], wptr_poll_cntl);
 
                /* enable DMA RB */