Re: [PATCH 2/2] drm/amdkfd: Use better name for sdma queue non HWS path

2019-09-23 Thread Zhao, Yong
Okay, I will incorporate Shaoyun's input.

Yong

From: Liu, Shaoyun 
Sent: Monday, September 23, 2019 10:27 AM
To: Zhao, Yong ; amd-gfx@lists.freedesktop.org 

Subject: Re: [PATCH 2/2] drm/amdkfd: Use better name for sdma queue non HWS path

Probably rename to sdma_rlc to avoid the  confusion of  rlc used in
other amdgpu driver .

Regards

shaoyun.liu

On 2019-09-22 11:56 p.m., Zhao, Yong wrote:
> The old name is prone to confusion. The register offset is for a RLC queue
> rather than a SDMA engine. The value is not a base address, but a
> register offset.
>
> Change-Id: I55fb835f2105392344b1c17323bb55c03f927836
> Signed-off-by: Yong Zhao 
> ---
>   .../drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c   | 85 +-
>   .../drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10.c| 90 +--
>   .../gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c | 10 +--
>   .../gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c | 10 +--
>   .../gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c | 86 +-
>   5 files changed, 137 insertions(+), 144 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c
> index c9ce1516956e..d2c0666c2798 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c
> @@ -70,11 +70,11 @@ static inline struct v9_sdma_mqd *get_sdma_mqd(void *mqd)
>return (struct v9_sdma_mqd *)mqd;
>   }
>
> -static uint32_t get_sdma_base_addr(struct amdgpu_device *adev,
> +static uint32_t get_rlc_reg_offset(struct amdgpu_device *adev,
>unsigned int engine_id,
>unsigned int queue_id)
>   {
> - uint32_t base[8] = {
> + uint32_t sdma_engine_reg_base[8] = {
>SOC15_REG_OFFSET(SDMA0, 0,
> mmSDMA0_RLC0_RB_CNTL) - mmSDMA0_RLC0_RB_CNTL,
>SOC15_REG_OFFSET(SDMA1, 0,
> @@ -92,12 +92,11 @@ static uint32_t get_sdma_base_addr(struct amdgpu_device 
> *adev,
>SOC15_REG_OFFSET(SDMA7, 0,
> mmSDMA7_RLC0_RB_CNTL) - mmSDMA7_RLC0_RB_CNTL
>};
> - uint32_t retval;
>
> - retval = base[engine_id] + queue_id * (mmSDMA0_RLC1_RB_CNTL -
> -mmSDMA0_RLC0_RB_CNTL);
> + uint32_t retval = sdma_engine_reg_base[engine_id]
> + + queue_id * (mmSDMA0_RLC1_RB_CNTL - mmSDMA0_RLC0_RB_CNTL);
>
> - pr_debug("sdma base address: 0x%x\n", retval);
> + pr_debug("RLC register offset: 0x%x\n", retval);
>
>return retval;
>   }
> @@ -107,22 +106,22 @@ static int kgd_hqd_sdma_load(struct kgd_dev *kgd, void 
> *mqd,
>   {
>struct amdgpu_device *adev = get_amdgpu_device(kgd);
>struct v9_sdma_mqd *m;
> - uint32_t sdma_base_addr;
> + uint32_t rlc_reg_offset;
>unsigned long end_jiffies;
>uint32_t data;
>uint64_t data64;
>uint64_t __user *wptr64 = (uint64_t __user *)wptr;
>
>m = get_sdma_mqd(mqd);
> - sdma_base_addr = get_sdma_base_addr(adev, m->sdma_engine_id,
> + rlc_reg_offset = get_rlc_reg_offset(adev, m->sdma_engine_id,
>m->sdma_queue_id);
>
> - WREG32(sdma_base_addr + mmSDMA0_RLC0_RB_CNTL,
> + WREG32(rlc_reg_offset + mmSDMA0_RLC0_RB_CNTL,
>m->sdmax_rlcx_rb_cntl & (~SDMA0_RLC0_RB_CNTL__RB_ENABLE_MASK));
>
>end_jiffies = msecs_to_jiffies(2000) + jiffies;
>while (true) {
> - data = RREG32(sdma_base_addr + mmSDMA0_RLC0_CONTEXT_STATUS);
> + data = RREG32(rlc_reg_offset + mmSDMA0_RLC0_CONTEXT_STATUS);
>if (data & SDMA0_RLC0_CONTEXT_STATUS__IDLE_MASK)
>break;
>if (time_after(jiffies, end_jiffies))
> @@ -130,41 +129,41 @@ static int kgd_hqd_sdma_load(struct kgd_dev *kgd, void 
> *mqd,
>usleep_range(500, 1000);
>}
>
> - WREG32(sdma_base_addr + mmSDMA0_RLC0_DOORBELL_OFFSET,
> + WREG32(rlc_reg_offset + mmSDMA0_RLC0_DOORBELL_OFFSET,
>   m->sdmax_rlcx_doorbell_offset);
>
>data = REG_SET_FIELD(m->sdmax_rlcx_doorbell, SDMA0_RLC0_DOORBELL,
> ENABLE, 1);
> - WREG32(sdma_base_addr + mmSDMA0_RLC0_DOORBELL, data);
> - WREG32(sdma_base_addr + mmSDMA0_RLC0_RB_RPTR, m->sdmax_rlcx_rb_rptr);
> - WREG32(sdma_base_addr + mmSDMA0_RLC0_RB_RPTR_HI,
> + WREG32(rlc_reg_offset + mmSDMA0_RLC0_DOORBELL, data);
> + WREG32(rlc_reg_offset + mmSDMA0_RLC0_RB_RPTR, m->sdmax_rlcx_rb_rptr);
> + 

Re: [PATCH 2/2] drm/amdkfd: Use better name for sdma queue non HWS path

2019-09-23 Thread Liu, Shaoyun
Probably rename to sdma_rlc to avoid the  confusion of  rlc used in 
other amdgpu driver .

Regards

shaoyun.liu

On 2019-09-22 11:56 p.m., Zhao, Yong wrote:
> The old name is prone to confusion. The register offset is for a RLC queue
> rather than a SDMA engine. The value is not a base address, but a
> register offset.
>
> Change-Id: I55fb835f2105392344b1c17323bb55c03f927836
> Signed-off-by: Yong Zhao 
> ---
>   .../drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c   | 85 +-
>   .../drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10.c| 90 +--
>   .../gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c | 10 +--
>   .../gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c | 10 +--
>   .../gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c | 86 +-
>   5 files changed, 137 insertions(+), 144 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c
> index c9ce1516956e..d2c0666c2798 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c
> @@ -70,11 +70,11 @@ static inline struct v9_sdma_mqd *get_sdma_mqd(void *mqd)
>   return (struct v9_sdma_mqd *)mqd;
>   }
>   
> -static uint32_t get_sdma_base_addr(struct amdgpu_device *adev,
> +static uint32_t get_rlc_reg_offset(struct amdgpu_device *adev,
>   unsigned int engine_id,
>   unsigned int queue_id)
>   {
> - uint32_t base[8] = {
> + uint32_t sdma_engine_reg_base[8] = {
>   SOC15_REG_OFFSET(SDMA0, 0,
>mmSDMA0_RLC0_RB_CNTL) - mmSDMA0_RLC0_RB_CNTL,
>   SOC15_REG_OFFSET(SDMA1, 0,
> @@ -92,12 +92,11 @@ static uint32_t get_sdma_base_addr(struct amdgpu_device 
> *adev,
>   SOC15_REG_OFFSET(SDMA7, 0,
>mmSDMA7_RLC0_RB_CNTL) - mmSDMA7_RLC0_RB_CNTL
>   };
> - uint32_t retval;
>   
> - retval = base[engine_id] + queue_id * (mmSDMA0_RLC1_RB_CNTL -
> -mmSDMA0_RLC0_RB_CNTL);
> + uint32_t retval = sdma_engine_reg_base[engine_id]
> + + queue_id * (mmSDMA0_RLC1_RB_CNTL - mmSDMA0_RLC0_RB_CNTL);
>   
> - pr_debug("sdma base address: 0x%x\n", retval);
> + pr_debug("RLC register offset: 0x%x\n", retval);
>   
>   return retval;
>   }
> @@ -107,22 +106,22 @@ static int kgd_hqd_sdma_load(struct kgd_dev *kgd, void 
> *mqd,
>   {
>   struct amdgpu_device *adev = get_amdgpu_device(kgd);
>   struct v9_sdma_mqd *m;
> - uint32_t sdma_base_addr;
> + uint32_t rlc_reg_offset;
>   unsigned long end_jiffies;
>   uint32_t data;
>   uint64_t data64;
>   uint64_t __user *wptr64 = (uint64_t __user *)wptr;
>   
>   m = get_sdma_mqd(mqd);
> - sdma_base_addr = get_sdma_base_addr(adev, m->sdma_engine_id,
> + rlc_reg_offset = get_rlc_reg_offset(adev, m->sdma_engine_id,
>   m->sdma_queue_id);
>   
> - WREG32(sdma_base_addr + mmSDMA0_RLC0_RB_CNTL,
> + WREG32(rlc_reg_offset + mmSDMA0_RLC0_RB_CNTL,
>   m->sdmax_rlcx_rb_cntl & (~SDMA0_RLC0_RB_CNTL__RB_ENABLE_MASK));
>   
>   end_jiffies = msecs_to_jiffies(2000) + jiffies;
>   while (true) {
> - data = RREG32(sdma_base_addr + mmSDMA0_RLC0_CONTEXT_STATUS);
> + data = RREG32(rlc_reg_offset + mmSDMA0_RLC0_CONTEXT_STATUS);
>   if (data & SDMA0_RLC0_CONTEXT_STATUS__IDLE_MASK)
>   break;
>   if (time_after(jiffies, end_jiffies))
> @@ -130,41 +129,41 @@ static int kgd_hqd_sdma_load(struct kgd_dev *kgd, void 
> *mqd,
>   usleep_range(500, 1000);
>   }
>   
> - WREG32(sdma_base_addr + mmSDMA0_RLC0_DOORBELL_OFFSET,
> + WREG32(rlc_reg_offset + mmSDMA0_RLC0_DOORBELL_OFFSET,
>  m->sdmax_rlcx_doorbell_offset);
>   
>   data = REG_SET_FIELD(m->sdmax_rlcx_doorbell, SDMA0_RLC0_DOORBELL,
>ENABLE, 1);
> - WREG32(sdma_base_addr + mmSDMA0_RLC0_DOORBELL, data);
> - WREG32(sdma_base_addr + mmSDMA0_RLC0_RB_RPTR, m->sdmax_rlcx_rb_rptr);
> - WREG32(sdma_base_addr + mmSDMA0_RLC0_RB_RPTR_HI,
> + WREG32(rlc_reg_offset + mmSDMA0_RLC0_DOORBELL, data);
> + WREG32(rlc_reg_offset + mmSDMA0_RLC0_RB_RPTR, m->sdmax_rlcx_rb_rptr);
> + WREG32(rlc_reg_offset + mmSDMA0_RLC0_RB_RPTR_HI,
>   m->sdmax_rlcx_rb_rptr_hi);
>   
> - WREG32(sdma_base_addr + mmSDMA0_RLC0_MINOR_PTR_UPDATE, 1);
> + WREG32(rlc_reg_offset + mmSDMA0_RLC0_MINOR_PTR_UPDATE, 1);
>   if (read_user_wptr(mm, wptr64, data64)) {
> - WREG32(sdma_base_addr + mmSDMA0_RLC0_RB_WPTR,
> + WREG32(rlc_reg_offset + mmSDMA0_RLC0_RB_WPTR,
>  lower_32_bits(data64));
> - WREG32(sdma_base_addr + mmSDMA0_RLC0_RB_WPTR_HI,
> + WREG32(rlc_reg_offset + mmSDMA0_RLC0_RB_WPTR_HI,
> 

Re: [PATCH 2/2] drm/amdkfd: Use better name for sdma queue non HWS path

2019-09-23 Thread Deucher, Alexander
Series is:
Reviewed-by: Alex Deucher 

From: amd-gfx  on behalf of Zhao, Yong 

Sent: Sunday, September 22, 2019 11:56 PM
To: amd-gfx@lists.freedesktop.org 
Cc: Zhao, Yong 
Subject: [PATCH 2/2] drm/amdkfd: Use better name for sdma queue non HWS path

The old name is prone to confusion. The register offset is for a RLC queue
rather than a SDMA engine. The value is not a base address, but a
register offset.

Change-Id: I55fb835f2105392344b1c17323bb55c03f927836
Signed-off-by: Yong Zhao 
---
 .../drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c   | 85 +-
 .../drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10.c| 90 +--
 .../gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c | 10 +--
 .../gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c | 10 +--
 .../gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c | 86 +-
 5 files changed, 137 insertions(+), 144 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c
index c9ce1516956e..d2c0666c2798 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c
@@ -70,11 +70,11 @@ static inline struct v9_sdma_mqd *get_sdma_mqd(void *mqd)
 return (struct v9_sdma_mqd *)mqd;
 }

-static uint32_t get_sdma_base_addr(struct amdgpu_device *adev,
+static uint32_t get_rlc_reg_offset(struct amdgpu_device *adev,
 unsigned int engine_id,
 unsigned int queue_id)
 {
-   uint32_t base[8] = {
+   uint32_t sdma_engine_reg_base[8] = {
 SOC15_REG_OFFSET(SDMA0, 0,
  mmSDMA0_RLC0_RB_CNTL) - mmSDMA0_RLC0_RB_CNTL,
 SOC15_REG_OFFSET(SDMA1, 0,
@@ -92,12 +92,11 @@ static uint32_t get_sdma_base_addr(struct amdgpu_device 
*adev,
 SOC15_REG_OFFSET(SDMA7, 0,
  mmSDMA7_RLC0_RB_CNTL) - mmSDMA7_RLC0_RB_CNTL
 };
-   uint32_t retval;

-   retval = base[engine_id] + queue_id * (mmSDMA0_RLC1_RB_CNTL -
-  mmSDMA0_RLC0_RB_CNTL);
+   uint32_t retval = sdma_engine_reg_base[engine_id]
+   + queue_id * (mmSDMA0_RLC1_RB_CNTL - mmSDMA0_RLC0_RB_CNTL);

-   pr_debug("sdma base address: 0x%x\n", retval);
+   pr_debug("RLC register offset: 0x%x\n", retval);

 return retval;
 }
@@ -107,22 +106,22 @@ static int kgd_hqd_sdma_load(struct kgd_dev *kgd, void 
*mqd,
 {
 struct amdgpu_device *adev = get_amdgpu_device(kgd);
 struct v9_sdma_mqd *m;
-   uint32_t sdma_base_addr;
+   uint32_t rlc_reg_offset;
 unsigned long end_jiffies;
 uint32_t data;
 uint64_t data64;
 uint64_t __user *wptr64 = (uint64_t __user *)wptr;

 m = get_sdma_mqd(mqd);
-   sdma_base_addr = get_sdma_base_addr(adev, m->sdma_engine_id,
+   rlc_reg_offset = get_rlc_reg_offset(adev, m->sdma_engine_id,
 m->sdma_queue_id);

-   WREG32(sdma_base_addr + mmSDMA0_RLC0_RB_CNTL,
+   WREG32(rlc_reg_offset + mmSDMA0_RLC0_RB_CNTL,
 m->sdmax_rlcx_rb_cntl & (~SDMA0_RLC0_RB_CNTL__RB_ENABLE_MASK));

 end_jiffies = msecs_to_jiffies(2000) + jiffies;
 while (true) {
-   data = RREG32(sdma_base_addr + mmSDMA0_RLC0_CONTEXT_STATUS);
+   data = RREG32(rlc_reg_offset + mmSDMA0_RLC0_CONTEXT_STATUS);
 if (data & SDMA0_RLC0_CONTEXT_STATUS__IDLE_MASK)
 break;
 if (time_after(jiffies, end_jiffies))
@@ -130,41 +129,41 @@ static int kgd_hqd_sdma_load(struct kgd_dev *kgd, void 
*mqd,
 usleep_range(500, 1000);
 }

-   WREG32(sdma_base_addr + mmSDMA0_RLC0_DOORBELL_OFFSET,
+   WREG32(rlc_reg_offset + mmSDMA0_RLC0_DOORBELL_OFFSET,
m->sdmax_rlcx_doorbell_offset);

 data = REG_SET_FIELD(m->sdmax_rlcx_doorbell, SDMA0_RLC0_DOORBELL,
  ENABLE, 1);
-   WREG32(sdma_base_addr + mmSDMA0_RLC0_DOORBELL, data);
-   WREG32(sdma_base_addr + mmSDMA0_RLC0_RB_RPTR, m->sdmax_rlcx_rb_rptr);
-   WREG32(sdma_base_addr + mmSDMA0_RLC0_RB_RPTR_HI,
+   WREG32(rlc_reg_offset + mmSDMA0_RLC0_DOORBELL, data);
+   WREG32(rlc_reg_offset + mmSDMA0_RLC0_RB_RPTR, m->sdmax_rlcx_rb_rptr);
+   WREG32(rlc_reg_offset + mmSDMA0_RLC0_RB_RPTR_HI,
 m->sdmax_rlcx_rb_rptr_hi);

-   WREG32(sdma_base_addr + mmSDMA0_RLC0_MINOR_PTR_UPDATE, 1);
+   WREG32(rlc_reg_offset + mmSDMA0_RLC0_MINOR_PTR_UPDATE, 1);
 if (read_user_wptr(mm, wptr64, data64)) {
-   WREG32(sdma_base_addr + mmSDMA0_RLC0_RB_WPTR,
+   WREG32(rlc_reg_offset + mmSDMA0_RLC0_RB_WPTR,
lower_32_bits(data64));
-   WREG32(sdma_base

[PATCH 2/2] drm/amdkfd: Use better name for sdma queue non HWS path

2019-09-22 Thread Zhao, Yong
The old name is prone to confusion. The register offset is for a RLC queue
rather than a SDMA engine. The value is not a base address, but a
register offset.

Change-Id: I55fb835f2105392344b1c17323bb55c03f927836
Signed-off-by: Yong Zhao 
---
 .../drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c   | 85 +-
 .../drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10.c| 90 +--
 .../gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c | 10 +--
 .../gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c | 10 +--
 .../gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c | 86 +-
 5 files changed, 137 insertions(+), 144 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c
index c9ce1516956e..d2c0666c2798 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c
@@ -70,11 +70,11 @@ static inline struct v9_sdma_mqd *get_sdma_mqd(void *mqd)
return (struct v9_sdma_mqd *)mqd;
 }
 
-static uint32_t get_sdma_base_addr(struct amdgpu_device *adev,
+static uint32_t get_rlc_reg_offset(struct amdgpu_device *adev,
unsigned int engine_id,
unsigned int queue_id)
 {
-   uint32_t base[8] = {
+   uint32_t sdma_engine_reg_base[8] = {
SOC15_REG_OFFSET(SDMA0, 0,
 mmSDMA0_RLC0_RB_CNTL) - mmSDMA0_RLC0_RB_CNTL,
SOC15_REG_OFFSET(SDMA1, 0,
@@ -92,12 +92,11 @@ static uint32_t get_sdma_base_addr(struct amdgpu_device 
*adev,
SOC15_REG_OFFSET(SDMA7, 0,
 mmSDMA7_RLC0_RB_CNTL) - mmSDMA7_RLC0_RB_CNTL
};
-   uint32_t retval;
 
-   retval = base[engine_id] + queue_id * (mmSDMA0_RLC1_RB_CNTL -
-  mmSDMA0_RLC0_RB_CNTL);
+   uint32_t retval = sdma_engine_reg_base[engine_id]
+   + queue_id * (mmSDMA0_RLC1_RB_CNTL - mmSDMA0_RLC0_RB_CNTL);
 
-   pr_debug("sdma base address: 0x%x\n", retval);
+   pr_debug("RLC register offset: 0x%x\n", retval);
 
return retval;
 }
@@ -107,22 +106,22 @@ static int kgd_hqd_sdma_load(struct kgd_dev *kgd, void 
*mqd,
 {
struct amdgpu_device *adev = get_amdgpu_device(kgd);
struct v9_sdma_mqd *m;
-   uint32_t sdma_base_addr;
+   uint32_t rlc_reg_offset;
unsigned long end_jiffies;
uint32_t data;
uint64_t data64;
uint64_t __user *wptr64 = (uint64_t __user *)wptr;
 
m = get_sdma_mqd(mqd);
-   sdma_base_addr = get_sdma_base_addr(adev, m->sdma_engine_id,
+   rlc_reg_offset = get_rlc_reg_offset(adev, m->sdma_engine_id,
m->sdma_queue_id);
 
-   WREG32(sdma_base_addr + mmSDMA0_RLC0_RB_CNTL,
+   WREG32(rlc_reg_offset + mmSDMA0_RLC0_RB_CNTL,
m->sdmax_rlcx_rb_cntl & (~SDMA0_RLC0_RB_CNTL__RB_ENABLE_MASK));
 
end_jiffies = msecs_to_jiffies(2000) + jiffies;
while (true) {
-   data = RREG32(sdma_base_addr + mmSDMA0_RLC0_CONTEXT_STATUS);
+   data = RREG32(rlc_reg_offset + mmSDMA0_RLC0_CONTEXT_STATUS);
if (data & SDMA0_RLC0_CONTEXT_STATUS__IDLE_MASK)
break;
if (time_after(jiffies, end_jiffies))
@@ -130,41 +129,41 @@ static int kgd_hqd_sdma_load(struct kgd_dev *kgd, void 
*mqd,
usleep_range(500, 1000);
}
 
-   WREG32(sdma_base_addr + mmSDMA0_RLC0_DOORBELL_OFFSET,
+   WREG32(rlc_reg_offset + mmSDMA0_RLC0_DOORBELL_OFFSET,
   m->sdmax_rlcx_doorbell_offset);
 
data = REG_SET_FIELD(m->sdmax_rlcx_doorbell, SDMA0_RLC0_DOORBELL,
 ENABLE, 1);
-   WREG32(sdma_base_addr + mmSDMA0_RLC0_DOORBELL, data);
-   WREG32(sdma_base_addr + mmSDMA0_RLC0_RB_RPTR, m->sdmax_rlcx_rb_rptr);
-   WREG32(sdma_base_addr + mmSDMA0_RLC0_RB_RPTR_HI,
+   WREG32(rlc_reg_offset + mmSDMA0_RLC0_DOORBELL, data);
+   WREG32(rlc_reg_offset + mmSDMA0_RLC0_RB_RPTR, m->sdmax_rlcx_rb_rptr);
+   WREG32(rlc_reg_offset + mmSDMA0_RLC0_RB_RPTR_HI,
m->sdmax_rlcx_rb_rptr_hi);
 
-   WREG32(sdma_base_addr + mmSDMA0_RLC0_MINOR_PTR_UPDATE, 1);
+   WREG32(rlc_reg_offset + mmSDMA0_RLC0_MINOR_PTR_UPDATE, 1);
if (read_user_wptr(mm, wptr64, data64)) {
-   WREG32(sdma_base_addr + mmSDMA0_RLC0_RB_WPTR,
+   WREG32(rlc_reg_offset + mmSDMA0_RLC0_RB_WPTR,
   lower_32_bits(data64));
-   WREG32(sdma_base_addr + mmSDMA0_RLC0_RB_WPTR_HI,
+   WREG32(rlc_reg_offset + mmSDMA0_RLC0_RB_WPTR_HI,
   upper_32_bits(data64));
} else {
-   WREG32(sdma_base_addr + mmSDMA0_RLC0_RB_WPTR,
+   WREG32(rlc_reg_offset + mmSDMA0_RLC0_RB_WPTR,
   m->sdmax_rlcx_rb_rptr);
-   WREG32(sdma_base_addr