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