[PATCH] drm/i915: only enable drm agp support when required
Daniel Vetter
daniel.vetter at ffwll.ch
Tue Jun 12 04:19:56 PDT 2012
We need it for all things ums (which essentially only means up to
gen5) and to support b0rked XvMC userspace on gen3.
v2: Fixup error paths as noticed by Jani Nikula.
Signed-Off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
---
drivers/gpu/drm/i915/i915_dma.c | 22 +++++++++++++---------
1 files changed, 13 insertions(+), 9 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index e4203df..1f6a36a 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,19 @@ 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)
+ goto free_priv;
+
+ if (!dev->agp) {
+ DRM_ERROR("Cannot initialize the agpgart module.\n");
+ ret = -EINVAL;
+ goto free_priv;
+ }
+ }
+
if (i915_get_bridge_dev(dev)) {
ret = -EIO;
goto free_priv;
--
1.7.7.6
More information about the dri-devel
mailing list