Re: [PATCH] radeon: fix r600/agp when vram is after AGP (v3)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux