[Intel-gfx] [PATCH 07/12] drm/i915: only enable drm agp support when required
Jani Nikula
jani.nikula at linux.intel.com
Tue Jun 12 13:58:25 CEST 2012
On Thu, 07 Jun 2012, Daniel Vetter <daniel.vetter at ffwll.ch> wrote:
> We need it for all things ums (which essentially only means up to
> gen5) and to support b0rked XvMC userspace on gen3.
>
> Signed-Off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> ---
> drivers/gpu/drm/i915/i915_dma.c | 21 ++++++++++++---------
> 1 files changed, 12 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
> index e4203df..0ab5d3d 100644
> --- a/drivers/gpu/drm/i915/i915_dma.c
> +++ b/drivers/gpu/drm/i915/i915_dma.c
> @@ -1422,15 +1422,6 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
> int ret = 0, mmio_bar;
> uint32_t aperture_size;
>
> - ret = drm_pci_agp_init(dev);
> - if (ret)
> - return ret;
> -
> - if (!dev->agp) {
> - DRM_ERROR("Cannot initialize the agpgart module.\n");
> - return -EINVAL;
> - }
> -
> info = (struct intel_device_info *) flags;
>
> /* Refuse to load on gen6+ without kms enabled. */
> @@ -1453,6 +1444,18 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
> dev_priv->dev = dev;
> dev_priv->info = info;
>
> + if (!drm_core_check_feature(dev, DRIVER_MODESET) ||
> + IS_GEN3(dev)) {
> + ret = drm_pci_agp_init(dev);
> + if (ret)
> + return ret;
> +
> + if (!dev->agp) {
> + DRM_ERROR("Cannot initialize the agpgart module.\n");
> + return -EINVAL;
> + }
You need to goto free_priv in the above error paths.
Should there be a deinit of drm_pci_agp_init() if something goes wrong
afterwards?
BR,
Jani.
> + }
> +
> if (i915_get_bridge_dev(dev)) {
> ret = -EIO;
> goto free_priv;
> --
> 1.7.7.6
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
More information about the Intel-gfx
mailing list