On Thu, 27 Feb 2014, Jani Nikula <jani.nikula@xxxxxxxxxxxxxxx> wrote: > On Wed, 26 Feb 2014, Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx> wrote: >> On Mon, 13 Jan 2014 16:25:21 +0530 >> akash.goel@xxxxxxxxx wrote: >> >>> From: Akash Goel <akash.goel@xxxxxxxxx> >>> >>> 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 <akash.goel@xxxxxxxxx> >>> --- >>> 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 <jbarnes@xxxxxxxxxxxxxxxx> >> Tested-by: Arjan van de Ven <arjan@xxxxxxxxxxxxxxx> > > Pushed to -fixes, thanks for the patch, review, and testing. Oh, forgot to add that I fixed the DRM_ERROR string split up that checkpatch complained about while applying. > > Jani. > > >> >> Thanks, >> -- >> Jesse Barnes, Intel Open Source Technology Center >> _______________________________________________ >> Intel-gfx mailing list >> Intel-gfx@xxxxxxxxxxxxxxxxxxxxx >> http://lists.freedesktop.org/mailman/listinfo/intel-gfx > > -- > Jani Nikula, Intel Open Source Technology Center -- Jani Nikula, Intel Open Source Technology Center _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx