On Thu, Sep 11, 2014 at 01:28:29PM +0200, Daniel Vetter wrote: > Based upon a patch from Deepak, but reworked to only apply on gen7+ > and with the logic a bit clarified. > > Cc: Deepak S <deepak.s@xxxxxxxxx> > Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx> > --- > drivers/gpu/drm/i915/i915_gem_stolen.c | 13 +++++++++++-- > drivers/gpu/drm/i915/i915_reg.h | 8 ++++++++ > 2 files changed, 19 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_gem_stolen.c b/drivers/gpu/drm/i915/i915_gem_stolen.c > index 21c025a209c0..15d42b3e2029 100644 > --- a/drivers/gpu/drm/i915/i915_gem_stolen.c > +++ b/drivers/gpu/drm/i915/i915_gem_stolen.c > @@ -289,6 +289,7 @@ void i915_gem_cleanup_stolen(struct drm_device *dev) > int i915_gem_init_stolen(struct drm_device *dev) > { > struct drm_i915_private *dev_priv = dev->dev_private; > + u32 tmp; > int bios_reserved = 0; > > #ifdef CONFIG_INTEL_IOMMU > @@ -308,8 +309,16 @@ int i915_gem_init_stolen(struct drm_device *dev) > DRM_DEBUG_KMS("found %zd bytes of stolen memory at %08lx\n", > dev_priv->gtt.stolen_size, dev_priv->mm.stolen_base); > > - if (IS_VALLEYVIEW(dev)) > - bios_reserved = 1024*1024; /* top 1M on VLV/BYT */ > + if (INTEL_INFO(dev)->gen >= 8) { > + tmp = I915_READ(GEN7_BIOS_RESERVED); > + tmp >>= GEN8_BIOS_RESERVED_SHIFT; > + tmp &= GEN8_BIOS_RESERVED_SHIFT; ^^^^^ MASK The docs are a bit confusing on this topic, but othwewise this seems to be OK wrt. most of the docs. So with that one thing fixed: Reviewed-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > + bios_reserved = (1024*1024) << tmp; > + } else if (IS_GEN7(dev)) { > + tmp = I915_READ(GEN7_BIOS_RESERVED); > + bios_reserved = tmp & GEN7_BIOS_RESERVED_256K ? > + 256*1024 : 1024*1024; > + } > > if (WARN_ON(bios_reserved > dev_priv->gtt.stolen_size)) > return 0; > diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h > index 15c0eaa9f97f..eb1430974a9a 100644 > --- a/drivers/gpu/drm/i915/i915_reg.h > +++ b/drivers/gpu/drm/i915/i915_reg.h > @@ -143,6 +143,14 @@ > #define GAB_CTL 0x24000 > #define GAB_CTL_CONT_AFTER_PAGEFAULT (1<<8) > > +#define GEN7_BIOS_RESERVED 0x1082C0 > +#define GEN7_BIOS_RESERVED_1M (0 << 5) > +#define GEN7_BIOS_RESERVED_256K (1 << 5) > +#define GEN8_BIOS_RESERVED_SHIFT 7 > +#define GEN7_BIOS_RESERVED_MASK 0x1 > +#define GEN8_BIOS_RESERVED_MASK 0x3 > + > + > /* VGA stuff */ > > #define VGA_ST01_MDA 0x3ba > -- > 2.0.1 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Ville Syrjälä Intel OTC _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx