From d7c5d046553c3a28779f934c0830423c39f85e0f Mon Sep 17 00:00:00 2001 From: Ben Widawsky Date: Tue, 24 Jul 2012 20:47:30 -0700 Subject: [PATCH] --- yaml --- r: 329259 b: refs/heads/master c: 2e4291e0bc6cff9514515a899a8158ea62b3ff90 h: refs/heads/master i: 329257: 82b313f8ce9ebdfa7d47e508814d7190ca6bf86e 329255: cbb7ad03aa2ed25aa1fc08fc03ffb1a59b88a9b2 v: v3 --- [refs] | 2 +- trunk/drivers/gpu/drm/i915/i915_gem_context.c | 5 ++++- trunk/drivers/gpu/drm/i915/i915_reg.h | 8 ++++++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index e1fe7c6529cd..7b305c98b15e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f047e395ddc9da6c307a10629a237502e627ed85 +refs/heads/master: 2e4291e0bc6cff9514515a899a8158ea62b3ff90 diff --git a/trunk/drivers/gpu/drm/i915/i915_gem_context.c b/trunk/drivers/gpu/drm/i915/i915_gem_context.c index 5d0d6ad489e2..5c2d354cebbd 100644 --- a/trunk/drivers/gpu/drm/i915/i915_gem_context.c +++ b/trunk/drivers/gpu/drm/i915/i915_gem_context.c @@ -112,7 +112,10 @@ static int get_context_size(struct drm_device *dev) break; case 7: reg = I915_READ(GEN7_CXT_SIZE); - ret = GEN7_CXT_TOTAL_SIZE(reg) * 64; + if (IS_HASWELL(dev)) + ret = HSW_CXT_TOTAL_SIZE(reg) * 64; + else + ret = GEN7_CXT_TOTAL_SIZE(reg) * 64; break; default: BUG(); diff --git a/trunk/drivers/gpu/drm/i915/i915_reg.h b/trunk/drivers/gpu/drm/i915/i915_reg.h index 81a3de6b093c..1310caaaafd6 100644 --- a/trunk/drivers/gpu/drm/i915/i915_reg.h +++ b/trunk/drivers/gpu/drm/i915/i915_reg.h @@ -1498,6 +1498,14 @@ GEN7_CXT_EXTENDED_SIZE(ctx_reg) + \ GEN7_CXT_GT1_SIZE(ctx_reg) + \ GEN7_CXT_VFSTATE_SIZE(ctx_reg)) +#define HSW_CXT_POWER_SIZE(ctx_reg) ((ctx_reg >> 26) & 0x3f) +#define HSW_CXT_RING_SIZE(ctx_reg) ((ctx_reg >> 23) & 0x7) +#define HSW_CXT_RENDER_SIZE(ctx_reg) ((ctx_reg >> 15) & 0xff) +#define HSW_CXT_TOTAL_SIZE(ctx_reg) (HSW_CXT_POWER_SIZE(ctx_reg) + \ + HSW_CXT_RING_SIZE(ctx_reg) + \ + HSW_CXT_RENDER_SIZE(ctx_reg) + \ + GEN7_CXT_VFSTATE_SIZE(ctx_reg)) + /* * Overlay regs