drm/i915/vlv: Workaround a punit issue in DDR data rate for 1333.
authorChon Ming Lee <chon.ming.lee@intel.com>
Thu, 7 Nov 2013 07:23:26 +0000 (15:23 +0800)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 7 Nov 2013 14:19:23 +0000 (15:19 +0100)
For DDR data rate reporting by Punit in PUNIT_GPU_FREQ_STS, the actual
data encoding is 00b=800, 01b=1066, 10b=1333, 11b=1333.

Some premium VLV sku will get the DDR_DATA_RATE set as 11.  As a result,
the turbo frequency reporting will be incorrect without this workaround.

Signed-off-by: Chon Ming Lee <chon.ming.lee@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_pm.c

index f5bb9b349487f3d826076169312248d6c8a3dd65..38943f8ef2601372bf7d91238a11cf011ccab770 100644 (file)
@@ -5322,12 +5322,7 @@ static void valleyview_init_clock_gating(struct drm_device *dev)
                dev_priv->mem_freq = 1333;
                break;
        case 3:
-               /*
-                * Probably a BIOS/Punit bug, or a new platform we don't
-                * support yet.
-                */
-               WARN(1, "invalid DDR freq detected, assuming 800MHz\n");
-               dev_priv->mem_freq = 800;
+               dev_priv->mem_freq = 1333;
                break;
        }
        DRM_DEBUG_DRIVER("DDR speed: %d MHz", dev_priv->mem_freq);