diff options
author | Flora Cui <Flora.Cui@amd.com> | 2016-03-02 23:59:49 -0500 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2016-03-03 01:00:20 -0500 |
commit | 6157bd7a1009c2a6944fb3eee8ed2b3dea091fd8 (patch) | |
tree | 8eddd832a7ee7a9c1ecce4e3dfa2450d1eaadab4 | |
parent | 22073fe764c9ff2742c27a8c06f28ef6cd9a56e3 (diff) |
drm/amdgpu: fix rb bitmap & cu bitmap calculation
Fix some copy paste typos.
Signed-off-by: Flora Cui <Flora.Cui@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/cikd.h | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 15 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 9 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/vid.h | 2 |
4 files changed, 13 insertions, 16 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/cikd.h b/drivers/gpu/drm/amd/amdgpu/cikd.h index 7f6d457f250a..60d4493206dd 100644 --- a/drivers/gpu/drm/amd/amdgpu/cikd.h +++ b/drivers/gpu/drm/amd/amdgpu/cikd.h | |||
@@ -46,9 +46,6 @@ | |||
46 | #define BONAIRE_GB_ADDR_CONFIG_GOLDEN 0x12010001 | 46 | #define BONAIRE_GB_ADDR_CONFIG_GOLDEN 0x12010001 |
47 | #define HAWAII_GB_ADDR_CONFIG_GOLDEN 0x12011003 | 47 | #define HAWAII_GB_ADDR_CONFIG_GOLDEN 0x12011003 |
48 | 48 | ||
49 | #define CIK_RB_BITMAP_WIDTH_PER_SH 2 | ||
50 | #define HAWAII_RB_BITMAP_WIDTH_PER_SH 4 | ||
51 | |||
52 | #define AMDGPU_NUM_OF_VMIDS 8 | 49 | #define AMDGPU_NUM_OF_VMIDS 8 |
53 | 50 | ||
54 | #define PIPEID(x) ((x) << 0) | 51 | #define PIPEID(x) ((x) << 0) |
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c index 9cdf59518533..8fb7ebf3be3e 100644 --- a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | |||
@@ -1637,18 +1637,16 @@ static void gfx_v7_0_setup_rb(struct amdgpu_device *adev) | |||
1637 | int i, j; | 1637 | int i, j; |
1638 | u32 data; | 1638 | u32 data; |
1639 | u32 active_rbs = 0; | 1639 | u32 active_rbs = 0; |
1640 | u32 rb_bitmap_width_per_sh = adev->gfx.config.max_backends_per_se / | ||
1641 | adev->gfx.config.max_sh_per_se; | ||
1640 | 1642 | ||
1641 | mutex_lock(&adev->grbm_idx_mutex); | 1643 | mutex_lock(&adev->grbm_idx_mutex); |
1642 | for (i = 0; i < adev->gfx.config.max_shader_engines; i++) { | 1644 | for (i = 0; i < adev->gfx.config.max_shader_engines; i++) { |
1643 | for (j = 0; j < adev->gfx.config.max_sh_per_se; j++) { | 1645 | for (j = 0; j < adev->gfx.config.max_sh_per_se; j++) { |
1644 | gfx_v7_0_select_se_sh(adev, i, j); | 1646 | gfx_v7_0_select_se_sh(adev, i, j); |
1645 | data = gfx_v7_0_get_rb_active_bitmap(adev); | 1647 | data = gfx_v7_0_get_rb_active_bitmap(adev); |
1646 | if (adev->asic_type == CHIP_HAWAII) | 1648 | active_rbs |= data << ((i * adev->gfx.config.max_sh_per_se + j) * |
1647 | active_rbs |= data << ((i * adev->gfx.config.max_sh_per_se + j) * | 1649 | rb_bitmap_width_per_sh); |
1648 | HAWAII_RB_BITMAP_WIDTH_PER_SH); | ||
1649 | else | ||
1650 | active_rbs |= data << ((i * adev->gfx.config.max_sh_per_se + j) * | ||
1651 | CIK_RB_BITMAP_WIDTH_PER_SH); | ||
1652 | } | 1650 | } |
1653 | } | 1651 | } |
1654 | gfx_v7_0_select_se_sh(adev, 0xffffffff, 0xffffffff); | 1652 | gfx_v7_0_select_se_sh(adev, 0xffffffff, 0xffffffff); |
@@ -3820,8 +3818,7 @@ static u32 gfx_v7_0_get_cu_active_bitmap(struct amdgpu_device *adev) | |||
3820 | data &= CC_GC_SHADER_ARRAY_CONFIG__INACTIVE_CUS_MASK; | 3818 | data &= CC_GC_SHADER_ARRAY_CONFIG__INACTIVE_CUS_MASK; |
3821 | data >>= CC_GC_SHADER_ARRAY_CONFIG__INACTIVE_CUS__SHIFT; | 3819 | data >>= CC_GC_SHADER_ARRAY_CONFIG__INACTIVE_CUS__SHIFT; |
3822 | 3820 | ||
3823 | mask = gfx_v7_0_create_bitmask(adev->gfx.config.max_backends_per_se / | 3821 | mask = gfx_v7_0_create_bitmask(adev->gfx.config.max_cu_per_sh); |
3824 | adev->gfx.config.max_sh_per_se); | ||
3825 | 3822 | ||
3826 | return (~data) & mask; | 3823 | return (~data) & mask; |
3827 | } | 3824 | } |
@@ -5232,6 +5229,8 @@ int gfx_v7_0_get_cu_info(struct amdgpu_device *adev, | |||
5232 | if (!adev || !cu_info) | 5229 | if (!adev || !cu_info) |
5233 | return -EINVAL; | 5230 | return -EINVAL; |
5234 | 5231 | ||
5232 | memset(cu_info, 0, sizeof(*cu_info)); | ||
5233 | |||
5235 | mutex_lock(&adev->grbm_idx_mutex); | 5234 | mutex_lock(&adev->grbm_idx_mutex); |
5236 | for (i = 0; i < adev->gfx.config.max_shader_engines; i++) { | 5235 | for (i = 0; i < adev->gfx.config.max_shader_engines; i++) { |
5237 | for (j = 0; j < adev->gfx.config.max_sh_per_se; j++) { | 5236 | for (j = 0; j < adev->gfx.config.max_sh_per_se; j++) { |
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c index 5f67a189bce9..e37378fe1edc 100644 --- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | |||
@@ -2615,6 +2615,8 @@ static void gfx_v8_0_setup_rb(struct amdgpu_device *adev) | |||
2615 | int i, j; | 2615 | int i, j; |
2616 | u32 data; | 2616 | u32 data; |
2617 | u32 active_rbs = 0; | 2617 | u32 active_rbs = 0; |
2618 | u32 rb_bitmap_width_per_sh = adev->gfx.config.max_backends_per_se / | ||
2619 | adev->gfx.config.max_sh_per_se; | ||
2618 | 2620 | ||
2619 | mutex_lock(&adev->grbm_idx_mutex); | 2621 | mutex_lock(&adev->grbm_idx_mutex); |
2620 | for (i = 0; i < adev->gfx.config.max_shader_engines; i++) { | 2622 | for (i = 0; i < adev->gfx.config.max_shader_engines; i++) { |
@@ -2622,7 +2624,7 @@ static void gfx_v8_0_setup_rb(struct amdgpu_device *adev) | |||
2622 | gfx_v8_0_select_se_sh(adev, i, j); | 2624 | gfx_v8_0_select_se_sh(adev, i, j); |
2623 | data = gfx_v8_0_get_rb_active_bitmap(adev); | 2625 | data = gfx_v8_0_get_rb_active_bitmap(adev); |
2624 | active_rbs |= data << ((i * adev->gfx.config.max_sh_per_se + j) * | 2626 | active_rbs |= data << ((i * adev->gfx.config.max_sh_per_se + j) * |
2625 | RB_BITMAP_WIDTH_PER_SH); | 2627 | rb_bitmap_width_per_sh); |
2626 | } | 2628 | } |
2627 | } | 2629 | } |
2628 | gfx_v8_0_select_se_sh(adev, 0xffffffff, 0xffffffff); | 2630 | gfx_v8_0_select_se_sh(adev, 0xffffffff, 0xffffffff); |
@@ -5126,8 +5128,7 @@ static u32 gfx_v8_0_get_cu_active_bitmap(struct amdgpu_device *adev) | |||
5126 | data &= CC_GC_SHADER_ARRAY_CONFIG__INACTIVE_CUS_MASK; | 5128 | data &= CC_GC_SHADER_ARRAY_CONFIG__INACTIVE_CUS_MASK; |
5127 | data >>= CC_GC_SHADER_ARRAY_CONFIG__INACTIVE_CUS__SHIFT; | 5129 | data >>= CC_GC_SHADER_ARRAY_CONFIG__INACTIVE_CUS__SHIFT; |
5128 | 5130 | ||
5129 | mask = gfx_v8_0_create_bitmask(adev->gfx.config.max_backends_per_se / | 5131 | mask = gfx_v8_0_create_bitmask(adev->gfx.config.max_cu_per_sh); |
5130 | adev->gfx.config.max_sh_per_se); | ||
5131 | 5132 | ||
5132 | return (~data) & mask; | 5133 | return (~data) & mask; |
5133 | } | 5134 | } |
@@ -5141,6 +5142,8 @@ int gfx_v8_0_get_cu_info(struct amdgpu_device *adev, | |||
5141 | if (!adev || !cu_info) | 5142 | if (!adev || !cu_info) |
5142 | return -EINVAL; | 5143 | return -EINVAL; |
5143 | 5144 | ||
5145 | memset(cu_info, 0, sizeof(*cu_info)); | ||
5146 | |||
5144 | mutex_lock(&adev->grbm_idx_mutex); | 5147 | mutex_lock(&adev->grbm_idx_mutex); |
5145 | for (i = 0; i < adev->gfx.config.max_shader_engines; i++) { | 5148 | for (i = 0; i < adev->gfx.config.max_shader_engines; i++) { |
5146 | for (j = 0; j < adev->gfx.config.max_sh_per_se; j++) { | 5149 | for (j = 0; j < adev->gfx.config.max_sh_per_se; j++) { |
diff --git a/drivers/gpu/drm/amd/amdgpu/vid.h b/drivers/gpu/drm/amd/amdgpu/vid.h index d98aa9d82fa1..ace49976f7be 100644 --- a/drivers/gpu/drm/amd/amdgpu/vid.h +++ b/drivers/gpu/drm/amd/amdgpu/vid.h | |||
@@ -71,8 +71,6 @@ | |||
71 | #define VMID(x) ((x) << 4) | 71 | #define VMID(x) ((x) << 4) |
72 | #define QUEUEID(x) ((x) << 8) | 72 | #define QUEUEID(x) ((x) << 8) |
73 | 73 | ||
74 | #define RB_BITMAP_WIDTH_PER_SH 2 | ||
75 | |||
76 | #define MC_SEQ_MISC0__MT__MASK 0xf0000000 | 74 | #define MC_SEQ_MISC0__MT__MASK 0xf0000000 |
77 | #define MC_SEQ_MISC0__MT__GDDR1 0x10000000 | 75 | #define MC_SEQ_MISC0__MT__GDDR1 0x10000000 |
78 | #define MC_SEQ_MISC0__MT__DDR2 0x20000000 | 76 | #define MC_SEQ_MISC0__MT__DDR2 0x20000000 |