aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlora Cui <Flora.Cui@amd.com>2016-03-02 23:59:49 -0500
committerAlex Deucher <alexander.deucher@amd.com>2016-03-03 01:00:20 -0500
commit6157bd7a1009c2a6944fb3eee8ed2b3dea091fd8 (patch)
tree8eddd832a7ee7a9c1ecce4e3dfa2450d1eaadab4
parent22073fe764c9ff2742c27a8c06f28ef6cd9a56e3 (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.h3
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c15
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c9
-rw-r--r--drivers/gpu/drm/amd/amdgpu/vid.h2
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