Skip to content

Commit dfc6ae5

Browse files
Jerome Glisseairlied
authored andcommitted
radeon: fix r600/agp when vram is after AGP (v3)
If AGP is placed in the middle, the size_af is off-by-one, it results in VRAM being placed at 0x7fffffff instead of 0x8000000. v2: fix the vram_start setup. v3: also fix r7xx & newer ASIC Reported-by: russiane39 on #radeon Signed-off-by: Jerome Glisse <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
1 parent aef6a7e commit dfc6ae5

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

drivers/gpu/drm/radeon/r600.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1135,7 +1135,7 @@ static void r600_vram_gtt_location(struct radeon_device *rdev, struct radeon_mc
11351135
}
11361136
if (rdev->flags & RADEON_IS_AGP) {
11371137
size_bf = mc->gtt_start;
1138-
size_af = 0xFFFFFFFF - mc->gtt_end + 1;
1138+
size_af = 0xFFFFFFFF - mc->gtt_end;
11391139
if (size_bf > size_af) {
11401140
if (mc->mc_vram_size > size_bf) {
11411141
dev_warn(rdev->dev, "limiting VRAM\n");
@@ -1149,7 +1149,7 @@ static void r600_vram_gtt_location(struct radeon_device *rdev, struct radeon_mc
11491149
mc->real_vram_size = size_af;
11501150
mc->mc_vram_size = size_af;
11511151
}
1152-
mc->vram_start = mc->gtt_end;
1152+
mc->vram_start = mc->gtt_end + 1;
11531153
}
11541154
mc->vram_end = mc->vram_start + mc->mc_vram_size - 1;
11551155
dev_info(rdev->dev, "VRAM: %lluM 0x%08llX - 0x%08llX (%lluM used)\n",

drivers/gpu/drm/radeon/rv770.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -969,7 +969,7 @@ void r700_vram_gtt_location(struct radeon_device *rdev, struct radeon_mc *mc)
969969
}
970970
if (rdev->flags & RADEON_IS_AGP) {
971971
size_bf = mc->gtt_start;
972-
size_af = 0xFFFFFFFF - mc->gtt_end + 1;
972+
size_af = 0xFFFFFFFF - mc->gtt_end;
973973
if (size_bf > size_af) {
974974
if (mc->mc_vram_size > size_bf) {
975975
dev_warn(rdev->dev, "limiting VRAM\n");
@@ -983,7 +983,7 @@ void r700_vram_gtt_location(struct radeon_device *rdev, struct radeon_mc *mc)
983983
mc->real_vram_size = size_af;
984984
mc->mc_vram_size = size_af;
985985
}
986-
mc->vram_start = mc->gtt_end;
986+
mc->vram_start = mc->gtt_end + 1;
987987
}
988988
mc->vram_end = mc->vram_start + mc->mc_vram_size - 1;
989989
dev_info(rdev->dev, "VRAM: %lluM 0x%08llX - 0x%08llX (%lluM used)\n",

0 commit comments

Comments
 (0)