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;
+               }
+       }
+
        if (i915_get_bridge_dev(dev)) {
                ret = -EIO;
                goto free_priv;
-- 
1.7.7.6

Reply via email to