Skip to content

Commit 4661482

Browse files
Lang Yualexdeucher
authored andcommitted
drm/amdgpu: correct NBIO v7.11 programing
Use v7.7 before, switch to v7.11 now. Fix incorrect programing. Signed-off-by: Lang Yu <[email protected]> Acked-by: Alex Deucher <[email protected]> Reviewed-by: Yifan Zhang <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
1 parent 2c1fe3c commit 4661482

File tree

2 files changed

+33
-32
lines changed

2 files changed

+33
-32
lines changed

drivers/gpu/drm/amd/amdgpu/nbio_v7_11.c

Lines changed: 27 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -66,19 +66,19 @@ static void nbio_v7_11_sdma_doorbell_range(struct amdgpu_device *adev, int insta
6666
bool use_doorbell, int doorbell_index,
6767
int doorbell_size)
6868
{
69-
u32 reg = SOC15_REG_OFFSET(NBIO, 0, regGDC0_BIF_SDMA0_DOORBELL_RANGE);
69+
u32 reg = SOC15_REG_OFFSET(NBIO, 0, regGDC0_BIF_CSDMA_DOORBELL_RANGE);
7070
u32 doorbell_range = RREG32_PCIE_PORT(reg);
7171

7272
if (use_doorbell) {
7373
doorbell_range = REG_SET_FIELD(doorbell_range,
74-
GDC0_BIF_SDMA0_DOORBELL_RANGE,
74+
GDC0_BIF_CSDMA_DOORBELL_RANGE,
7575
OFFSET, doorbell_index);
7676
doorbell_range = REG_SET_FIELD(doorbell_range,
77-
GDC0_BIF_SDMA0_DOORBELL_RANGE,
77+
GDC0_BIF_CSDMA_DOORBELL_RANGE,
7878
SIZE, doorbell_size);
7979
} else {
8080
doorbell_range = REG_SET_FIELD(doorbell_range,
81-
GDC0_BIF_SDMA0_DOORBELL_RANGE,
81+
GDC0_BIF_CSDMA_DOORBELL_RANGE,
8282
SIZE, 0);
8383
}
8484

@@ -145,27 +145,25 @@ static void nbio_v7_11_enable_doorbell_aperture(struct amdgpu_device *adev,
145145
static void nbio_v7_11_enable_doorbell_selfring_aperture(struct amdgpu_device *adev,
146146
bool enable)
147147
{
148-
/* u32 tmp = 0;
148+
u32 tmp = 0;
149149

150150
if (enable) {
151-
tmp = REG_SET_FIELD(tmp, BIF_BX_PF0_DOORBELL_SELFRING_GPA_APER_CNTL,
151+
tmp = REG_SET_FIELD(tmp, BIF_BX_PF1_DOORBELL_SELFRING_GPA_APER_CNTL,
152152
DOORBELL_SELFRING_GPA_APER_EN, 1) |
153-
REG_SET_FIELD(tmp, BIF_BX_PF0_DOORBELL_SELFRING_GPA_APER_CNTL,
153+
REG_SET_FIELD(tmp, BIF_BX_PF1_DOORBELL_SELFRING_GPA_APER_CNTL,
154154
DOORBELL_SELFRING_GPA_APER_MODE, 1) |
155-
REG_SET_FIELD(tmp, BIF_BX_PF0_DOORBELL_SELFRING_GPA_APER_CNTL,
155+
REG_SET_FIELD(tmp, BIF_BX_PF1_DOORBELL_SELFRING_GPA_APER_CNTL,
156156
DOORBELL_SELFRING_GPA_APER_SIZE, 0);
157157

158158
WREG32_SOC15(NBIO, 0,
159-
regBIF_BX_PF0_DOORBELL_SELFRING_GPA_APER_BASE_LOW,
159+
regBIF_BX_PF1_DOORBELL_SELFRING_GPA_APER_BASE_LOW,
160160
lower_32_bits(adev->doorbell.base));
161161
WREG32_SOC15(NBIO, 0,
162-
regBIF_BX_PF0_DOORBELL_SELFRING_GPA_APER_BASE_HIGH,
162+
regBIF_BX_PF1_DOORBELL_SELFRING_GPA_APER_BASE_HIGH,
163163
upper_32_bits(adev->doorbell.base));
164164
}
165165

166-
WREG32_SOC15(NBIO, 0, regBIF_BX_PF0_DOORBELL_SELFRING_GPA_APER_CNTL,
167-
tmp);
168-
*/
166+
WREG32_SOC15(NBIO, 0, regBIF_BX_PF1_DOORBELL_SELFRING_GPA_APER_CNTL, tmp);
169167
}
170168

171169

@@ -216,12 +214,12 @@ static void nbio_v7_11_ih_control(struct amdgpu_device *adev)
216214

217215
static u32 nbio_v7_11_get_hdp_flush_req_offset(struct amdgpu_device *adev)
218216
{
219-
return SOC15_REG_OFFSET(NBIO, 0, regBIF_BX_PF0_GPU_HDP_FLUSH_REQ);
217+
return SOC15_REG_OFFSET(NBIO, 0, regBIF_BX_PF1_GPU_HDP_FLUSH_REQ);
220218
}
221219

222220
static u32 nbio_v7_11_get_hdp_flush_done_offset(struct amdgpu_device *adev)
223221
{
224-
return SOC15_REG_OFFSET(NBIO, 0, regBIF_BX_PF0_GPU_HDP_FLUSH_DONE);
222+
return SOC15_REG_OFFSET(NBIO, 0, regBIF_BX_PF1_GPU_HDP_FLUSH_DONE);
225223
}
226224

227225
static u32 nbio_v7_11_get_pcie_index_offset(struct amdgpu_device *adev)
@@ -236,27 +234,27 @@ static u32 nbio_v7_11_get_pcie_data_offset(struct amdgpu_device *adev)
236234

237235
static u32 nbio_v7_11_get_pcie_port_index_offset(struct amdgpu_device *adev)
238236
{
239-
return SOC15_REG_OFFSET(NBIO, 0, regBIF_BX_PF0_RSMU_INDEX);
237+
return SOC15_REG_OFFSET(NBIO, 0, regBIF_BX_PF1_RSMU_INDEX);
240238
}
241239

242240
static u32 nbio_v7_11_get_pcie_port_data_offset(struct amdgpu_device *adev)
243241
{
244-
return SOC15_REG_OFFSET(NBIO, 0, regBIF_BX_PF0_RSMU_DATA);
242+
return SOC15_REG_OFFSET(NBIO, 0, regBIF_BX_PF1_RSMU_DATA);
245243
}
246244

247245
const struct nbio_hdp_flush_reg nbio_v7_11_hdp_flush_reg = {
248-
.ref_and_mask_cp0 = BIF_BX_PF0_GPU_HDP_FLUSH_DONE__CP0_MASK,
249-
.ref_and_mask_cp1 = BIF_BX_PF0_GPU_HDP_FLUSH_DONE__CP1_MASK,
250-
.ref_and_mask_cp2 = BIF_BX_PF0_GPU_HDP_FLUSH_DONE__CP2_MASK,
251-
.ref_and_mask_cp3 = BIF_BX_PF0_GPU_HDP_FLUSH_DONE__CP3_MASK,
252-
.ref_and_mask_cp4 = BIF_BX_PF0_GPU_HDP_FLUSH_DONE__CP4_MASK,
253-
.ref_and_mask_cp5 = BIF_BX_PF0_GPU_HDP_FLUSH_DONE__CP5_MASK,
254-
.ref_and_mask_cp6 = BIF_BX_PF0_GPU_HDP_FLUSH_DONE__CP6_MASK,
255-
.ref_and_mask_cp7 = BIF_BX_PF0_GPU_HDP_FLUSH_DONE__CP7_MASK,
256-
.ref_and_mask_cp8 = BIF_BX_PF0_GPU_HDP_FLUSH_DONE__CP8_MASK,
257-
.ref_and_mask_cp9 = BIF_BX_PF0_GPU_HDP_FLUSH_DONE__CP9_MASK,
258-
.ref_and_mask_sdma0 = BIF_BX_PF0_GPU_HDP_FLUSH_DONE__SDMA0_MASK,
259-
.ref_and_mask_sdma1 = BIF_BX_PF0_GPU_HDP_FLUSH_DONE__SDMA1_MASK,
246+
.ref_and_mask_cp0 = BIF_BX_PF1_GPU_HDP_FLUSH_DONE__CP0_MASK,
247+
.ref_and_mask_cp1 = BIF_BX_PF1_GPU_HDP_FLUSH_DONE__CP1_MASK,
248+
.ref_and_mask_cp2 = BIF_BX_PF1_GPU_HDP_FLUSH_DONE__CP2_MASK,
249+
.ref_and_mask_cp3 = BIF_BX_PF1_GPU_HDP_FLUSH_DONE__CP3_MASK,
250+
.ref_and_mask_cp4 = BIF_BX_PF1_GPU_HDP_FLUSH_DONE__CP4_MASK,
251+
.ref_and_mask_cp5 = BIF_BX_PF1_GPU_HDP_FLUSH_DONE__CP5_MASK,
252+
.ref_and_mask_cp6 = BIF_BX_PF1_GPU_HDP_FLUSH_DONE__CP6_MASK,
253+
.ref_and_mask_cp7 = BIF_BX_PF1_GPU_HDP_FLUSH_DONE__CP7_MASK,
254+
.ref_and_mask_cp8 = BIF_BX_PF1_GPU_HDP_FLUSH_DONE__CP8_MASK,
255+
.ref_and_mask_cp9 = BIF_BX_PF1_GPU_HDP_FLUSH_DONE__CP9_MASK,
256+
.ref_and_mask_sdma0 = BIF_BX_PF1_GPU_HDP_FLUSH_DONE__SDMA0_MASK,
257+
.ref_and_mask_sdma1 = BIF_BX_PF1_GPU_HDP_FLUSH_DONE__SDMA1_MASK,
260258
};
261259

262260
static void nbio_v7_11_init_registers(struct amdgpu_device *adev)

drivers/gpu/drm/amd/include/asic_reg/nbio/nbio_7_11_0_offset.h

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8187,9 +8187,9 @@
81878187
#define regBIF_BX0_PCIE_INDEX_BASE_IDX 5
81888188
#define regBIF_BX0_PCIE_DATA 0x800d
81898189
#define regBIF_BX0_PCIE_DATA_BASE_IDX 5
8190-
#define regBIF_BX0_PCIE_INDEX2 0xe
8190+
#define regBIF_BX0_PCIE_INDEX2 0x800e
81918191
#define regBIF_BX0_PCIE_INDEX2_BASE_IDX 0
8192-
#define regBIF_BX0_PCIE_DATA2 0xf
8192+
#define regBIF_BX0_PCIE_DATA2 0x800f
81938193
#define regBIF_BX0_PCIE_DATA2_BASE_IDX 0
81948194
#define regBIF_BX0_SBIOS_SCRATCH_0 0x8048
81958195
#define regBIF_BX0_SBIOS_SCRATCH_0_BASE_IDX 5
@@ -8678,7 +8678,10 @@
86788678
#define regBIF_BX_PF1_MM_DATA_BASE_IDX 0
86798679
#define regBIF_BX_PF1_MM_INDEX_HI 0x0006
86808680
#define regBIF_BX_PF1_MM_INDEX_HI_BASE_IDX 0
8681-
8681+
#define regBIF_BX_PF1_RSMU_INDEX 0x0000
8682+
#define regBIF_BX_PF1_RSMU_INDEX_BASE_IDX 1
8683+
#define regBIF_BX_PF1_RSMU_DATA 0x0001
8684+
#define regBIF_BX_PF1_RSMU_DATA_BASE_IDX 1
86828685

86838686
// addressBlock: nbio_nbif0_bif_bx_BIFDEC1:1
86848687
// base address: 0x0

0 commit comments

Comments
 (0)