On Tue, 28 Jan 2014 10:14:03 +0100 Daniel Vetter <[email protected]> wrote:
> 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; It doesn't look like this was actually merged, and it belongs in -fixes with a cc: stable since it affects existing machines with these BIOS issues. Cc'ing Jani so he can pick it up when he returns. -- Jesse Barnes, Intel Open Source Technology Center _______________________________________________ Intel-gfx mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/intel-gfx
