Re: [PATCH] drm/i915: Don't list gens one by bone in the VMA creation function

Daniel Vetter
2014-01-10T17:07:58Z

On Fri, Jan 10, 2014 at 03:47:52PM +0000, Damien Lespiau wrote:
> There are only two cases here, pre and post SNB (PPGTT).
>
> Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
> ---
> drivers/gpu/drm/i915/i915_gem_gtt.c | 14 ++------------
> 1 file changed, 2 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
> index 3192089..866ca90 100644
> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> @@ -1795,10 +1795,7 @@ static struct i915_vma *__i915_gem_vma_create(struct drm_i915_gem_object *obj,
> vma->vm = vm;
> vma->obj = obj;
>
> - switch (INTEL_INFO(vm->dev)->gen) {
> - case 8:
> - case 7:
> - case 6:
> + if (INTEL_INFO(vm->dev)->gen >= 6) {
> if (i915_is_ggtt(vm)) {
> vma->unbind_vma = ggtt_unbind_vma;
> vma->bind_vma = ggtt_bind_vma;

Imo we should move the ->bind/unbind_vma functions into the global
dev_prive->gt vtable - The personality we set here neither changes with
the vma, the address space but the hw generation. So I'll reject this
cleanup as not going far enough ;-)
-Daniel

> @@ -1806,17 +1803,10 @@ static struct i915_vma *__i915_gem_vma_create(struct drm_i915_gem_object *obj,
> vma->unbind_vma = ppgtt_unbind_vma;
> vma->bind_vma = ppgtt_bind_vma;
> }
> - break;
> - case 5:
> - case 4:
> - case 3:
> - case 2:
> + } else {
> BUG_ON(!i915_is_ggtt(vm));
> vma->unbind_vma = i915_ggtt_unbind_vma;
> vma->bind_vma = i915_ggtt_bind_vma;
> - break;
> - default:
> - BUG();
> }
>
> /* Keep GGTT vmas first to make debug easier */
> --
> 1.8.3.1
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx