Message ID | 1397224517-29864-1-git-send-email-daniel.vetter@ffwll.ch (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Fri, 11 Apr 2014 15:55:17 +0200 Daniel Vetter <daniel.vetter@ffwll.ch> wrote: > Apparently stuff works that way on those machines. > > I agree with Chris' concern that this is a bit risky but imo worth a > shot in -next just for fun. Afaics all these machines have the pci > resources allocated like that by the BIOS, so I suspect that it's all > ok. > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76983 > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=71031 > Tested-by: lu hua <huax.lu@intel.com> > Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> > --- > drivers/gpu/drm/i915/i915_gem_stolen.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/i915_gem_stolen.c > b/drivers/gpu/drm/i915/i915_gem_stolen.c index > 62ef55ba061c..99d147af173a 100644 --- > a/drivers/gpu/drm/i915/i915_gem_stolen.c +++ > b/drivers/gpu/drm/i915/i915_gem_stolen.c @@ -93,7 +93,11 @@ static > unsigned long i915_stolen_to_physical(struct drm_device *dev) r = > devm_request_mem_region(dev->dev, base + 1, dev_priv->gtt.stolen_size > - 1, "Graphics Stolen Memory"); > - if (r == NULL) { > + /* > + * GEN3 firmware likes to smash pci bridges into the > stolen > + * range. Apparently this works. > + */ > + if (r == NULL && !IS_GEN3(dev)) { > DRM_ERROR("conflict detected with stolen > region: [0x%08x - 0x%08x]\n", base, base + > (uint32_t)dev_priv->gtt.stolen_size); base = 0; Yeah just to allay fears: the decode priority on the GMCH is fixed and specific. The stolen range is demarcated by some regs which the GMCH decodes before it tries going out into PCI space. So it's safe to see the stolen range under the bus0 window (probably even under some device window down the range) but does make things messier for us. Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org> Looks like the reporter gave a t-b too. Jesse
On Fri, Dec 05, 2014 at 10:30:47AM -0800, Jesse Barnes wrote: > On Fri, 11 Apr 2014 15:55:17 +0200 > Daniel Vetter <daniel.vetter@ffwll.ch> wrote: > > > Apparently stuff works that way on those machines. > > > > I agree with Chris' concern that this is a bit risky but imo worth a > > shot in -next just for fun. Afaics all these machines have the pci > > resources allocated like that by the BIOS, so I suspect that it's all > > ok. > > > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76983 > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=71031 > > Tested-by: lu hua <huax.lu@intel.com> > > Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> > > --- > > drivers/gpu/drm/i915/i915_gem_stolen.c | 6 +++++- > > 1 file changed, 5 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/i915/i915_gem_stolen.c > > b/drivers/gpu/drm/i915/i915_gem_stolen.c index > > 62ef55ba061c..99d147af173a 100644 --- > > a/drivers/gpu/drm/i915/i915_gem_stolen.c +++ > > b/drivers/gpu/drm/i915/i915_gem_stolen.c @@ -93,7 +93,11 @@ static > > unsigned long i915_stolen_to_physical(struct drm_device *dev) r = > > devm_request_mem_region(dev->dev, base + 1, dev_priv->gtt.stolen_size > > - 1, "Graphics Stolen Memory"); > > - if (r == NULL) { > > + /* > > + * GEN3 firmware likes to smash pci bridges into the > > stolen > > + * range. Apparently this works. > > + */ > > + if (r == NULL && !IS_GEN3(dev)) { > > DRM_ERROR("conflict detected with stolen > > region: [0x%08x - 0x%08x]\n", base, base + > > (uint32_t)dev_priv->gtt.stolen_size); base = 0; > > > Yeah just to allay fears: the decode priority on the GMCH is fixed and > specific. The stolen range is demarcated by some regs which the GMCH > decodes before it tries going out into PCI space. So it's safe to see > the stolen range under the bus0 window (probably even under some device > window down the range) but does make things messier for us. > > Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org> > > Looks like the reporter gave a t-b too. The other t-b from the other bugzilla is missing though: Tested-by: Paul Menzel <paulepanter@users.sourceforge.net> Cc: stable@vger.kernel.org This regression goes back to commit eaba1b8f3379b5d100bd146b9a41d28348bdfd09 Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Thu Jul 4 12:28:35 2013 +0100 drm/i915: Verify that our stolen memory doesn't conflict Jani, can you please pick this up for 3.19? Thanks, Daniel
On Fri, 05 Dec 2014, Daniel Vetter <daniel@ffwll.ch> wrote: > On Fri, Dec 05, 2014 at 10:30:47AM -0800, Jesse Barnes wrote: >> On Fri, 11 Apr 2014 15:55:17 +0200 >> Daniel Vetter <daniel.vetter@ffwll.ch> wrote: >> >> > Apparently stuff works that way on those machines. >> > >> > I agree with Chris' concern that this is a bit risky but imo worth a >> > shot in -next just for fun. Afaics all these machines have the pci >> > resources allocated like that by the BIOS, so I suspect that it's all >> > ok. >> > >> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76983 >> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=71031 >> > Tested-by: lu hua <huax.lu@intel.com> >> > Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> >> > --- >> > drivers/gpu/drm/i915/i915_gem_stolen.c | 6 +++++- >> > 1 file changed, 5 insertions(+), 1 deletion(-) >> > >> > diff --git a/drivers/gpu/drm/i915/i915_gem_stolen.c >> > b/drivers/gpu/drm/i915/i915_gem_stolen.c index >> > 62ef55ba061c..99d147af173a 100644 --- >> > a/drivers/gpu/drm/i915/i915_gem_stolen.c +++ >> > b/drivers/gpu/drm/i915/i915_gem_stolen.c @@ -93,7 +93,11 @@ static >> > unsigned long i915_stolen_to_physical(struct drm_device *dev) r = >> > devm_request_mem_region(dev->dev, base + 1, dev_priv->gtt.stolen_size >> > - 1, "Graphics Stolen Memory"); >> > - if (r == NULL) { >> > + /* >> > + * GEN3 firmware likes to smash pci bridges into the >> > stolen >> > + * range. Apparently this works. >> > + */ >> > + if (r == NULL && !IS_GEN3(dev)) { >> > DRM_ERROR("conflict detected with stolen >> > region: [0x%08x - 0x%08x]\n", base, base + >> > (uint32_t)dev_priv->gtt.stolen_size); base = 0; >> >> >> Yeah just to allay fears: the decode priority on the GMCH is fixed and >> specific. The stolen range is demarcated by some regs which the GMCH >> decodes before it tries going out into PCI space. So it's safe to see >> the stolen range under the bus0 window (probably even under some device >> window down the range) but does make things messier for us. >> >> Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org> >> >> Looks like the reporter gave a t-b too. > > The other t-b from the other bugzilla is missing though: > > Tested-by: Paul Menzel <paulepanter@users.sourceforge.net> > Cc: stable@vger.kernel.org > > This regression goes back to > > commit eaba1b8f3379b5d100bd146b9a41d28348bdfd09 > Author: Chris Wilson <chris@chris-wilson.co.uk> > Date: Thu Jul 4 12:28:35 2013 +0100 > > drm/i915: Verify that our stolen memory doesn't conflict > > Jani, can you please pick this up for 3.19? Pushed to drm-intel-next-fixes, thanks for the patch and review. BR, Jani. > > Thanks, Daniel > -- > Daniel Vetter > Software Engineer, Intel Corporation > +41 (0) 79 365 57 48 - http://blog.ffwll.ch
diff --git a/drivers/gpu/drm/i915/i915_gem_stolen.c b/drivers/gpu/drm/i915/i915_gem_stolen.c index 62ef55ba061c..99d147af173a 100644 --- a/drivers/gpu/drm/i915/i915_gem_stolen.c +++ b/drivers/gpu/drm/i915/i915_gem_stolen.c @@ -93,7 +93,11 @@ static unsigned long i915_stolen_to_physical(struct drm_device *dev) r = devm_request_mem_region(dev->dev, base + 1, dev_priv->gtt.stolen_size - 1, "Graphics Stolen Memory"); - if (r == NULL) { + /* + * GEN3 firmware likes to smash pci bridges into the stolen + * range. Apparently this works. + */ + if (r == NULL && !IS_GEN3(dev)) { DRM_ERROR("conflict detected with stolen region: [0x%08x - 0x%08x]\n", base, base + (uint32_t)dev_priv->gtt.stolen_size); base = 0;