On Mon, Jul 3, 2017 at 5:44 AM, Christian König <deathsimple at vodafone.de> wrote: > From: Christian König <christian.koenig at amd.com> > > No intended functional change. > > Signed-off-by: Christian König <christian.koenig at amd.com> I think I'd prefer to keep this together with the vram_location function. Maybe move both of them? Alex > --- > drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 - > drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 36 ---------------------------- > drivers/gpu/drm/amd/amdgpu/amdgpu_sysvm.c | 38 ++++++++++++++++++++++++++++++ > drivers/gpu/drm/amd/amdgpu/amdgpu_sysvm.h | 2 ++ > 4 files changed, 40 insertions(+), 37 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h > index a2c0eac..1ed6b7a 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h > @@ -1862,7 +1862,6 @@ bool amdgpu_ttm_tt_is_readonly(struct ttm_tt *ttm); > uint64_t amdgpu_ttm_tt_pte_flags(struct amdgpu_device *adev, struct ttm_tt *ttm, > struct ttm_mem_reg *mem); > void amdgpu_vram_location(struct amdgpu_device *adev, struct amdgpu_mc *mc, u64 base); > -void amdgpu_sysvm_location(struct amdgpu_device *adev, struct amdgpu_mc *mc); > void amdgpu_ttm_set_active_vram_size(struct amdgpu_device *adev, u64 size); > int amdgpu_ttm_init(struct amdgpu_device *adev); > void amdgpu_ttm_fini(struct amdgpu_device *adev); > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > index 46a82d3..228b262 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > @@ -666,42 +666,6 @@ void amdgpu_vram_location(struct amdgpu_device *adev, struct amdgpu_mc *mc, u64 > mc->vram_end, mc->real_vram_size >> 20); > } > > -/** > - * amdgpu_sysvm_location - try to find SYSVM location > - * @adev: amdgpu device structure holding all necessary informations > - * @mc: memory controller structure holding memory informations > - * > - * Function will place try to place SYSVM before or after VRAM. > - * > - * If SYSVM size is bigger than space left then we ajust SYSVM size. > - * Thus function will never fails. > - * > - * FIXME: when reducing SYSVM size align new size on power of 2. > - */ > -void amdgpu_sysvm_location(struct amdgpu_device *adev, struct amdgpu_mc *mc) > -{ > - u64 size_af, size_bf; > - > - size_af = ((adev->mc.mc_mask - mc->vram_end) + mc->sysvm_base_align) & ~mc->sysvm_base_align; > - size_bf = mc->vram_start & ~mc->sysvm_base_align; > - if (size_bf > size_af) { > - if (mc->sysvm_size > size_bf) { > - dev_warn(adev->dev, "limiting SYSVM\n"); > - mc->sysvm_size = size_bf; > - } > - mc->sysvm_start = 0; > - } else { > - if (mc->sysvm_size > size_af) { > - dev_warn(adev->dev, "limiting SYSVM\n"); > - mc->sysvm_size = size_af; > - } > - mc->sysvm_start = (mc->vram_end + 1 + mc->sysvm_base_align) & ~mc->sysvm_base_align; > - } > - mc->sysvm_end = mc->sysvm_start + mc->sysvm_size - 1; > - dev_info(adev->dev, "SYSVM: %lluM 0x%016llX - 0x%016llX\n", > - mc->sysvm_size >> 20, mc->sysvm_start, mc->sysvm_end); > -} > - > /* > * GPU helpers function. > */ > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_sysvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_sysvm.c > index 50fc8d7..ff436ad 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_sysvm.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_sysvm.c > @@ -73,6 +73,44 @@ void amdgpu_sysvm_set_defaults(struct amdgpu_device *adev) > } > > /** > + * amdgpu_sysvm_location - try to find SYSVM location > + * @adev: amdgpu device structure holding all necessary informations > + * @mc: memory controller structure holding memory informations > + * > + * Function will place try to place SYSVM before or after VRAM. > + * > + * If SYSVM size is bigger than space left then we ajust SYSVM size. > + * Thus function will never fails. > + * > + * FIXME: when reducing SYSVM size align new size on power of 2. > + */ > +void amdgpu_sysvm_location(struct amdgpu_device *adev, struct amdgpu_mc *mc) > +{ > + u64 size_af, size_bf; > + > + size_af = ((adev->mc.mc_mask - mc->vram_end) + mc->sysvm_base_align) & > + ~mc->sysvm_base_align; > + size_bf = mc->vram_start & ~mc->sysvm_base_align; > + if (size_bf > size_af) { > + if (mc->sysvm_size > size_bf) { > + dev_warn(adev->dev, "limiting SYSVM\n"); > + mc->sysvm_size = size_bf; > + } > + mc->sysvm_start = 0; > + } else { > + if (mc->sysvm_size > size_af) { > + dev_warn(adev->dev, "limiting SYSVM\n"); > + mc->sysvm_size = size_af; > + } > + mc->sysvm_start = (mc->vram_end + 1 + mc->sysvm_base_align) & > + ~mc->sysvm_base_align; > + } > + mc->sysvm_end = mc->sysvm_start + mc->sysvm_size - 1; > + dev_info(adev->dev, "SYSVM: %lluM 0x%016llX - 0x%016llX\n", > + mc->sysvm_size >> 20, mc->sysvm_start, mc->sysvm_end); > +} > + > +/** > * amdgpu_sysvm_table_ram_alloc - allocate system ram for gart page table > * > * @adev: amdgpu_device pointer > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_sysvm.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_sysvm.h > index 7846765..2336ece 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_sysvm.h > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_sysvm.h > @@ -32,6 +32,7 @@ > struct amdgpu_device; > struct amdgpu_bo; > struct amdgpu_sysvm_funcs; > +struct amdgpu_mc; > > #define AMDGPU_GPU_PAGE_SIZE 4096 > #define AMDGPU_GPU_PAGE_MASK (AMDGPU_GPU_PAGE_SIZE - 1) > @@ -57,6 +58,7 @@ struct amdgpu_sysvm { > }; > > void amdgpu_sysvm_set_defaults(struct amdgpu_device *adev); > +void amdgpu_sysvm_location(struct amdgpu_device *adev, struct amdgpu_mc *mc); > int amdgpu_sysvm_table_ram_alloc(struct amdgpu_device *adev); > void amdgpu_sysvm_table_ram_free(struct amdgpu_device *adev); > int amdgpu_sysvm_table_vram_alloc(struct amdgpu_device *adev); > -- > 2.7.4 > > _______________________________________________ > amd-gfx mailing list > amd-gfx at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/amd-gfx