From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 2/7] drm/i915: Resolving the memory region conflict for Stolen area Date: Thu, 27 Feb 2014 10:59:51 +0200 Message-ID: <87k3ch6id4.fsf@intel.com> References: <1389610521-12158-1-git-send-email-akash.goel@intel.com> <20140226082148.7ba1c0b9@jbarnes-desktop> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id EC85BFB59A for ; Thu, 27 Feb 2014 01:00:07 -0800 (PST) In-Reply-To: <20140226082148.7ba1c0b9@jbarnes-desktop> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org To: Jesse Barnes , akash.goel@intel.com Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org On Wed, 26 Feb 2014, Jesse Barnes wrote: > On Mon, 13 Jan 2014 16:25:21 +0530 > akash.goel@intel.com wrote: > >> From: Akash Goel >> >> 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 >> --- >> 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; > > Reviewed-by: Jesse Barnes > Tested-by: Arjan van de Ven Pushed to -fixes, thanks for the patch, review, and testing. Jani. > > Thanks, > -- > Jesse Barnes, Intel Open Source Technology Center > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Jani Nikula, Intel Open Source Technology Center