On Tue, Jan 28, 2014 at 10:10 AM, Goel, Akash <[email protected]> wrote: > Hi Daniel, > > Please let us know about this patch, will this be up-streamed.
1. I've just sent out the merge confirmation mail minutes ago. 2. Please _never_ drop mailing lists when poking me (or in general, really). See the internally documented bkm in the patch submission guidelines. Cheers, Daniel > > Best Regards > Akash > > -----Original Message----- > From: Goel, Akash > Sent: Monday, January 13, 2014 4:25 PM > To: [email protected] > Cc: Goel, Akash > Subject: [PATCH 2/7] drm/i915: Resolving the memory region conflict for > Stolen area > > From: Akash Goel <[email protected]> > > There is a conflict seen when requesting the kernel to reserve the physical > space used for the stolen area. This is because some BIOS are wrapping the > stolen area in the root PCI bus, but have an off-by-one error. As a > workaround we retry the reservation with an offset of 1 instead of 0. > > v2: updated commit message & the comment in source file (Daniel) > > Signed-off-by: Akash Goel <[email protected]> > --- > drivers/gpu/drm/i915/i915_gem_stolen.c | 20 +++++++++++++++++--- > 1 file changed, 17 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_gem_stolen.c > b/drivers/gpu/drm/i915/i915_gem_stolen.c > index 1a24e84..114a806 100644 > --- a/drivers/gpu/drm/i915/i915_gem_stolen.c > +++ b/drivers/gpu/drm/i915/i915_gem_stolen.c > @@ -82,9 +82,23 @@ static unsigned long i915_stolen_to_physical(struct > drm_device *dev) > r = devm_request_mem_region(dev->dev, base, dev_priv->gtt.stolen_size, > "Graphics Stolen Memory"); > if (r == NULL) { > - DRM_ERROR("conflict detected with stolen region: [0x%08x - > 0x%08x]\n", > - base, base + (uint32_t)dev_priv->gtt.stolen_size); > - base = 0; > + /* > + * One more attempt but this time requesting region from > + * base + 1, as we have seen that this resolves the region > + * conflict with the PCI Bus. > + * This is a BIOS w/a: Some BIOS wrap stolen in the root > + * PCI bus, but have an off-by-one error. Hence retry the > + * reservation starting from 1 instead of 0. > + */ > + r = devm_request_mem_region(dev->dev, base + 1, > + dev_priv->gtt.stolen_size - 1, > + "Graphics Stolen Memory"); > + if (r == NULL) { > + DRM_ERROR("conflict detected with stolen region:"\ > + "[0x%08x - 0x%08x]\n", > + base, base + > (uint32_t)dev_priv->gtt.stolen_size); > + base = 0; > + } > } > > return base; > -- > 1.8.5.2 > -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/intel-gfx
