mirror of https://gitee.com/openkylin/linux.git
drm/radeon/kms: properly compute group_size on 6xx/7xx
Needed for tiled surfaces. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Cc: stable@kernel.org Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
354da65323
commit
881fe6c1d0
|
@ -1608,8 +1608,11 @@ void r600_gpu_init(struct radeon_device *rdev)
|
|||
rdev->config.r600.tiling_npipes = rdev->config.r600.max_tile_pipes;
|
||||
rdev->config.r600.tiling_nbanks = 4 << ((ramcfg & NOOFBANK_MASK) >> NOOFBANK_SHIFT);
|
||||
tiling_config |= BANK_TILING((ramcfg & NOOFBANK_MASK) >> NOOFBANK_SHIFT);
|
||||
tiling_config |= GROUP_SIZE(0);
|
||||
rdev->config.r600.tiling_group_size = 256;
|
||||
tiling_config |= GROUP_SIZE((ramcfg & BURSTLENGTH_MASK) >> BURSTLENGTH_SHIFT);
|
||||
if ((ramcfg & BURSTLENGTH_MASK) >> BURSTLENGTH_SHIFT)
|
||||
rdev->config.r600.tiling_group_size = 512;
|
||||
else
|
||||
rdev->config.r600.tiling_group_size = 256;
|
||||
tmp = (ramcfg & NOOFROWS_MASK) >> NOOFROWS_SHIFT;
|
||||
if (tmp > 3) {
|
||||
tiling_config |= ROW_TILING(3);
|
||||
|
|
|
@ -644,10 +644,11 @@ static void rv770_gpu_init(struct radeon_device *rdev)
|
|||
else
|
||||
gb_tiling_config |= BANK_TILING((mc_arb_ramcfg & NOOFBANK_MASK) >> NOOFBANK_SHIFT);
|
||||
rdev->config.rv770.tiling_nbanks = 4 << ((gb_tiling_config >> 4) & 0x3);
|
||||
|
||||
gb_tiling_config |= GROUP_SIZE(0);
|
||||
rdev->config.rv770.tiling_group_size = 256;
|
||||
|
||||
gb_tiling_config |= GROUP_SIZE((mc_arb_ramcfg & BURSTLENGTH_MASK) >> BURSTLENGTH_SHIFT);
|
||||
if ((mc_arb_ramcfg & BURSTLENGTH_MASK) >> BURSTLENGTH_SHIFT)
|
||||
rdev->config.rv770.tiling_group_size = 512;
|
||||
else
|
||||
rdev->config.rv770.tiling_group_size = 256;
|
||||
if (((mc_arb_ramcfg & NOOFROWS_MASK) >> NOOFROWS_SHIFT) > 3) {
|
||||
gb_tiling_config |= ROW_TILING(3);
|
||||
gb_tiling_config |= SAMPLE_SPLIT(3);
|
||||
|
|
Loading…
Reference in New Issue