drm/i915: Ivybridge is the odd one when it comes to pipe scalers
authorDamien Lespiau <damien.lespiau@intel.com>
Thu, 25 Apr 2013 14:15:00 +0000 (15:15 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 25 Apr 2013 14:32:47 +0000 (16:32 +0200)
Between ivb, hsw and vlv, only Ivybridge has sprites with scaling
capabilities.

Also make max_downscale coherent with that.

v2: Rebase on top of the recent ivb/vlv/hsw sprite scaling fixes.

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> (v1)
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_sprite.c

index c7d25c5dd4e63967286904e17d326a711e746f5b..18993ad93540ce5b82aa996a76985be31587e0b7 100644 (file)
@@ -918,13 +918,15 @@ intel_plane_init(struct drm_device *dev, enum pipe pipe, int plane)
                break;
 
        case 7:
-               if (IS_HASWELL(dev) || IS_VALLEYVIEW(dev))
-                       intel_plane->can_scale = false;
-               else
+               if (IS_IVYBRIDGE(dev)) {
                        intel_plane->can_scale = true;
+                       intel_plane->max_downscale = 2;
+               } else {
+                       intel_plane->can_scale = false;
+                       intel_plane->max_downscale = 1;
+               }
 
                if (IS_VALLEYVIEW(dev)) {
-                       intel_plane->max_downscale = 1;
                        intel_plane->update_plane = vlv_update_plane;
                        intel_plane->disable_plane = vlv_disable_plane;
                        intel_plane->update_colorkey = vlv_update_colorkey;
@@ -933,7 +935,6 @@ intel_plane_init(struct drm_device *dev, enum pipe pipe, int plane)
                        plane_formats = vlv_plane_formats;
                        num_plane_formats = ARRAY_SIZE(vlv_plane_formats);
                } else {
-                       intel_plane->max_downscale = 2;
                        intel_plane->update_plane = ivb_update_plane;
                        intel_plane->disable_plane = ivb_disable_plane;
                        intel_plane->update_colorkey = ivb_update_colorkey;