On 08/29/2016 07:20 PM, Christian König wrote: > From: Christian König <christian.koenig at amd.com> > > Split VRAM won't have a valid offset, so just set an explicit limit > when the flag is given to trigger reallocation if necessary. > > Signed-off-by: Christian König <christian.koenig at amd.com> Reviewed-by: Edward O'Callaghan <funfunctor at folklore1984.net> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c > index 6f83909..79f6413 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c > @@ -123,12 +123,17 @@ static void amdgpu_ttm_placement_init(struct amdgpu_device *adev, > > if (domain & AMDGPU_GEM_DOMAIN_VRAM) { > unsigned visible_pfn = adev->mc.visible_vram_size >> PAGE_SHIFT; > + unsigned lpfn = 0; > + > + /* This forces a reallocation if the flag wasn't set before */ > + if (flags & AMDGPU_GEM_CREATE_VRAM_LINEAR) > + lpfn = adev->mc.real_vram_size >> PAGE_SHIFT; > > if (flags & AMDGPU_GEM_CREATE_NO_CPU_ACCESS && > !(flags & AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED) && > adev->mc.visible_vram_size < adev->mc.real_vram_size) { > places[c].fpfn = visible_pfn; > - places[c].lpfn = 0; > + places[c].lpfn = lpfn; > places[c].flags = TTM_PL_FLAG_WC | > TTM_PL_FLAG_UNCACHED | TTM_PL_FLAG_VRAM | > TTM_PL_FLAG_TOPDOWN; > @@ -136,7 +141,7 @@ static void amdgpu_ttm_placement_init(struct amdgpu_device *adev, > } > > places[c].fpfn = 0; > - places[c].lpfn = 0; > + places[c].lpfn = lpfn; > places[c].flags = TTM_PL_FLAG_WC | TTM_PL_FLAG_UNCACHED | > TTM_PL_FLAG_VRAM; > if (flags & AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED) > -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: OpenPGP digital signature URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20160829/c89bd813/attachment.sig>