[Intel-gfx] [PATCH 1/4] drm/i915: Allocate the PCI resource for the MCHBAR
Jesse Barnes
jbarnes at virtuousgeek.org
Tue Aug 24 21:25:27 CEST 2010
On Tue, 24 Aug 2010 09:43:00 +0100
Chris Wilson <chris at chris-wilson.co.uk> wrote:
> We were failing when trying to allocate the resource for MMIO of the
> MCHBAR because we forgot to specify what type of resource we wanted.
>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Jesse Barnes <jbarnes at virtuousgeek.org>
> ---
> drivers/gpu/drm/i915/i915_dma.c | 20 ++++++++++----------
> 1 files changed, 10 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
> index 77af26d..f3433ba 100644
> --- a/drivers/gpu/drm/i915/i915_dma.c
> +++ b/drivers/gpu/drm/i915/i915_dma.c
> @@ -885,7 +885,7 @@ intel_alloc_mchbar_resource(struct drm_device *dev)
> int reg = IS_I965G(dev) ? MCHBAR_I965 : MCHBAR_I915;
> u32 temp_lo, temp_hi = 0;
> u64 mchbar_addr;
> - int ret = 0;
> + int ret;
>
> if (IS_I965G(dev))
> pci_read_config_dword(dev_priv->bridge_dev, reg + 4, &temp_hi);
> @@ -895,22 +895,23 @@ intel_alloc_mchbar_resource(struct drm_device *dev)
> /* If ACPI doesn't have it, assume we need to allocate it ourselves */
> #ifdef CONFIG_PNP
> if (mchbar_addr &&
> - pnp_range_reserved(mchbar_addr, mchbar_addr + MCHBAR_SIZE)) {
> - ret = 0;
> - goto out;
> - }
> + pnp_range_reserved(mchbar_addr, mchbar_addr + MCHBAR_SIZE))
> + return 0;
> #endif
>
> /* Get some space for it */
> - ret = pci_bus_alloc_resource(dev_priv->bridge_dev->bus, &dev_priv->mch_res,
> + dev_priv->mch_res.name = "i915 MCHBAR";
> + dev_priv->mch_res.flags = IORESOURCE_MEM;
> + ret = pci_bus_alloc_resource(dev_priv->bridge_dev->bus,
> + &dev_priv->mch_res,
> MCHBAR_SIZE, MCHBAR_SIZE,
> PCIBIOS_MIN_MEM,
> - 0, pcibios_align_resource,
> + 0, pcibios_align_resource,
> dev_priv->bridge_dev);
> if (ret) {
> DRM_DEBUG_DRIVER("failed bus alloc: %d\n", ret);
> dev_priv->mch_res.start = 0;
> - goto out;
> + return ret;
> }
>
> if (IS_I965G(dev))
> @@ -919,8 +920,7 @@ intel_alloc_mchbar_resource(struct drm_device *dev)
>
> pci_write_config_dword(dev_priv->bridge_dev, reg,
> lower_32_bits(dev_priv->mch_res.start));
> -out:
> - return ret;
> + return 0;
> }
>
> /* Setup MCHBAR if possible, return true if we should disable it again */
Really makes me wonder how this stuff makes it through testing.
Reviewed-by: Jesse Barnes <jbarnes at virtuousgeek.org>
--
Jesse Barnes, Intel Open Source Technology Center
More information about the Intel-gfx
mailing list