Merge tag 'v3.7-rc2' into drm-intel-next-queued
Linux 3.7-rc2 Backmerge to solve two ugly conflicts: - uapi. We've already added new ioctl definitions for -next. Do I need to say more? - wc support gtt ptes. We've had to revert this for snb+ for 3.7 and also fix a few other things in the code. Now we know how to make it work on snb+, but to avoid losing the other fixes do the backmerge first before re-enabling wc gtt ptes on snb+. And a few other minor things, among them git getting confused in intel_dp.c and seemingly causing a conflict out of nothing ... Conflicts: drivers/gpu/drm/i915/i915_reg.h drivers/gpu/drm/i915/intel_display.c drivers/gpu/drm/i915/intel_dp.c drivers/gpu/drm/i915/intel_modes.c include/drm/i915_drm.h Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
@@ -2728,7 +2728,7 @@ static const struct cparams {
|
||||
{ 0, 800, 231, 23784 },
|
||||
};
|
||||
|
||||
unsigned long i915_chipset_val(struct drm_i915_private *dev_priv)
|
||||
static unsigned long __i915_chipset_val(struct drm_i915_private *dev_priv)
|
||||
{
|
||||
u64 total_count, diff, ret;
|
||||
u32 count1, count2, count3, m = 0, c = 0;
|
||||
@@ -2782,6 +2782,22 @@ unsigned long i915_chipset_val(struct drm_i915_private *dev_priv)
|
||||
return ret;
|
||||
}
|
||||
|
||||
unsigned long i915_chipset_val(struct drm_i915_private *dev_priv)
|
||||
{
|
||||
unsigned long val;
|
||||
|
||||
if (dev_priv->info->gen != 5)
|
||||
return 0;
|
||||
|
||||
spin_lock_irq(&mchdev_lock);
|
||||
|
||||
val = __i915_chipset_val(dev_priv);
|
||||
|
||||
spin_unlock_irq(&mchdev_lock);
|
||||
|
||||
return val;
|
||||
}
|
||||
|
||||
unsigned long i915_mch_val(struct drm_i915_private *dev_priv)
|
||||
{
|
||||
unsigned long m, x, b;
|
||||
@@ -2985,7 +3001,7 @@ void i915_update_gfx_val(struct drm_i915_private *dev_priv)
|
||||
spin_unlock_irq(&mchdev_lock);
|
||||
}
|
||||
|
||||
unsigned long i915_gfx_val(struct drm_i915_private *dev_priv)
|
||||
static unsigned long __i915_gfx_val(struct drm_i915_private *dev_priv)
|
||||
{
|
||||
unsigned long t, corr, state1, corr2, state2;
|
||||
u32 pxvid, ext_v;
|
||||
@@ -3022,6 +3038,22 @@ unsigned long i915_gfx_val(struct drm_i915_private *dev_priv)
|
||||
return dev_priv->ips.gfx_power + state2;
|
||||
}
|
||||
|
||||
unsigned long i915_gfx_val(struct drm_i915_private *dev_priv)
|
||||
{
|
||||
unsigned long val;
|
||||
|
||||
if (dev_priv->info->gen != 5)
|
||||
return 0;
|
||||
|
||||
spin_lock_irq(&mchdev_lock);
|
||||
|
||||
val = __i915_gfx_val(dev_priv);
|
||||
|
||||
spin_unlock_irq(&mchdev_lock);
|
||||
|
||||
return val;
|
||||
}
|
||||
|
||||
/**
|
||||
* i915_read_mch_val - return value for IPS use
|
||||
*
|
||||
@@ -3038,8 +3070,8 @@ unsigned long i915_read_mch_val(void)
|
||||
goto out_unlock;
|
||||
dev_priv = i915_mch_dev;
|
||||
|
||||
chipset_val = i915_chipset_val(dev_priv);
|
||||
graphics_val = i915_gfx_val(dev_priv);
|
||||
chipset_val = __i915_chipset_val(dev_priv);
|
||||
graphics_val = __i915_gfx_val(dev_priv);
|
||||
|
||||
ret = chipset_val + graphics_val;
|
||||
|
||||
@@ -3395,8 +3427,8 @@ static void gen6_init_clock_gating(struct drm_device *dev)
|
||||
GEN6_RCCUNIT_CLOCK_GATE_DISABLE);
|
||||
|
||||
/* Bspec says we need to always set all mask bits. */
|
||||
I915_WRITE(_3D_CHICKEN, (0xFFFF << 16) |
|
||||
_3D_CHICKEN_SF_DISABLE_FASTCLIP_CULL);
|
||||
I915_WRITE(_3D_CHICKEN3, (0xFFFF << 16) |
|
||||
_3D_CHICKEN3_SF_DISABLE_FASTCLIP_CULL);
|
||||
|
||||
/*
|
||||
* According to the spec the following bits should be
|
||||
@@ -3427,6 +3459,11 @@ static void gen6_init_clock_gating(struct drm_device *dev)
|
||||
DISPPLANE_TRICKLE_FEED_DISABLE);
|
||||
intel_flush_display_plane(dev_priv, pipe);
|
||||
}
|
||||
|
||||
/* The default value should be 0x200 according to docs, but the two
|
||||
* platforms I checked have a 0 for this. (Maybe BIOS overrides?) */
|
||||
I915_WRITE(GEN6_GT_MODE, _MASKED_BIT_DISABLE(0xffff));
|
||||
I915_WRITE(GEN6_GT_MODE, _MASKED_BIT_ENABLE(GEN6_GT_MODE_HI));
|
||||
}
|
||||
|
||||
static void gen7_setup_fixed_func_scheduler(struct drm_i915_private *dev_priv)
|
||||
|
Reference in New Issue
Block a user