On Tue, Apr 17, 2012 at 4:51 PM, <j.glisse@xxxxxxxxx> wrote: > From: Jerome Glisse <jglisse@xxxxxxxxxx> > > 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: Dave Airlie <airlied@xxxxxxxxxx> > Signed-off-by: Jerome Glisse <jglisse@xxxxxxxxxx> Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx> Should also go to stable. > --- > drivers/gpu/drm/radeon/r600.c | 4 ++-- > drivers/gpu/drm/radeon/rv770.c | 4 ++-- > 2 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c > index 391bd26..96e3fa3 100644 > --- a/drivers/gpu/drm/radeon/r600.c > +++ b/drivers/gpu/drm/radeon/r600.c > @@ -1135,7 +1135,7 @@ static void r600_vram_gtt_location(struct radeon_device *rdev, struct radeon_mc > } > if (rdev->flags & RADEON_IS_AGP) { > size_bf = mc->gtt_start; > - size_af = 0xFFFFFFFF - mc->gtt_end + 1; > + size_af = 0xFFFFFFFF - mc->gtt_end; > if (size_bf > size_af) { > if (mc->mc_vram_size > size_bf) { > dev_warn(rdev->dev, "limiting VRAM\n"); > @@ -1149,7 +1149,7 @@ static void r600_vram_gtt_location(struct radeon_device *rdev, struct radeon_mc > mc->real_vram_size = size_af; > mc->mc_vram_size = size_af; > } > - mc->vram_start = mc->gtt_end; > + mc->vram_start = mc->gtt_end + 1; > } > mc->vram_end = mc->vram_start + mc->mc_vram_size - 1; > dev_info(rdev->dev, "VRAM: %lluM 0x%08llX - 0x%08llX (%lluM used)\n", > diff --git a/drivers/gpu/drm/radeon/rv770.c b/drivers/gpu/drm/radeon/rv770.c > index c62ae4b..cdab1ae 100644 > --- a/drivers/gpu/drm/radeon/rv770.c > +++ b/drivers/gpu/drm/radeon/rv770.c > @@ -969,7 +969,7 @@ void r700_vram_gtt_location(struct radeon_device *rdev, struct radeon_mc *mc) > } > if (rdev->flags & RADEON_IS_AGP) { > size_bf = mc->gtt_start; > - size_af = 0xFFFFFFFF - mc->gtt_end + 1; > + size_af = 0xFFFFFFFF - mc->gtt_end; > if (size_bf > size_af) { > if (mc->mc_vram_size > size_bf) { > dev_warn(rdev->dev, "limiting VRAM\n"); > @@ -983,7 +983,7 @@ void r700_vram_gtt_location(struct radeon_device *rdev, struct radeon_mc *mc) > mc->real_vram_size = size_af; > mc->mc_vram_size = size_af; > } > - mc->vram_start = mc->gtt_end; > + mc->vram_start = mc->gtt_end + 1; > } > mc->vram_end = mc->vram_start + mc->mc_vram_size - 1; > dev_info(rdev->dev, "VRAM: %lluM 0x%08llX - 0x%08llX (%lluM used)\n", > -- > 1.7.9.3 > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/dri-devel _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel