mirror of https://gitee.com/openkylin/linux.git
drm/amdgpu/gfx: fix off by one in rb rework (v2)
When I reworked this code, I messed up num rb count. v2: use hweight32 Reviewed-by: Ken Wang <Qingquing.Wang@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
d2eaa59000
commit
aac1e3caac
|
@ -1635,7 +1635,7 @@ static u32 gfx_v7_0_get_rb_active_bitmap(struct amdgpu_device *adev)
|
|||
static void gfx_v7_0_setup_rb(struct amdgpu_device *adev)
|
||||
{
|
||||
int i, j;
|
||||
u32 data, tmp, num_rbs = 0;
|
||||
u32 data;
|
||||
u32 active_rbs = 0;
|
||||
|
||||
mutex_lock(&adev->grbm_idx_mutex);
|
||||
|
@ -1655,10 +1655,7 @@ static void gfx_v7_0_setup_rb(struct amdgpu_device *adev)
|
|||
mutex_unlock(&adev->grbm_idx_mutex);
|
||||
|
||||
adev->gfx.config.backend_enable_mask = active_rbs;
|
||||
tmp = active_rbs;
|
||||
while (tmp >>= 1)
|
||||
num_rbs++;
|
||||
adev->gfx.config.num_rbs = num_rbs;
|
||||
adev->gfx.config.num_rbs = hweight32(active_rbs);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -2613,7 +2613,7 @@ static u32 gfx_v8_0_get_rb_active_bitmap(struct amdgpu_device *adev)
|
|||
static void gfx_v8_0_setup_rb(struct amdgpu_device *adev)
|
||||
{
|
||||
int i, j;
|
||||
u32 data, tmp, num_rbs = 0;
|
||||
u32 data;
|
||||
u32 active_rbs = 0;
|
||||
|
||||
mutex_lock(&adev->grbm_idx_mutex);
|
||||
|
@ -2629,10 +2629,7 @@ static void gfx_v8_0_setup_rb(struct amdgpu_device *adev)
|
|||
mutex_unlock(&adev->grbm_idx_mutex);
|
||||
|
||||
adev->gfx.config.backend_enable_mask = active_rbs;
|
||||
tmp = active_rbs;
|
||||
while (tmp >>= 1)
|
||||
num_rbs++;
|
||||
adev->gfx.config.num_rbs = num_rbs;
|
||||
adev->gfx.config.num_rbs = hweight32(active_rbs);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue