[Intel-gfx] [PATCH] drm/i915: Kill legeacy AGP for gen3 kms

Ville Syrjälä ville.syrjala at linux.intel.com
Thu Nov 14 00:20:48 CET 2013


On Wed, Nov 13, 2013 at 10:14:16PM +0100, Daniel Vetter wrote:
> Thus far we've tried to carefully work around the fact that old
> userspace relied on the AGP-backed legacy buffer mapping ioctls for a
> bit too long. But it's really horribly, and now some new users for it
> started to show up again:
> 
> http://www.mail-archive.com/mesa-dev@lists.freedesktop.org/msg45547.html
> 
> This uses drmAgpSize to figure out the GTT size, which is both the
> wrong thing to inquire and also might force us to keep this crap
> around for another few years.
> 
> So I want to stop this particular zombie from raising ever again. Now
> it's only been 4 years since XvMC was fixed for gen3, so a bit early
> by the usual rules. But since Linus explicitly said that an ABI
> breakage only counts if someone actually observes it I want to tempt
> fate an accelarate the demise of AGP.
> 
> We probably need to wait 2-3 kernel releases with this shipping until
> we go on a killing spree code-wise.
> 
> v2: Remove intel_agp_enabled since it's unused (Ville).
> 
> Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
> Cc: Dave Airlie <airlied at gmail.com>
> Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>

Reviewed-by: Ville Syrjälä <ville.syrjala at linux.intel.com>

> ---
>  drivers/char/agp/intel-agp.c    |  5 -----
>  drivers/gpu/drm/i915/i915_drv.c | 17 +----------------
>  2 files changed, 1 insertion(+), 21 deletions(-)
> 
> diff --git a/drivers/char/agp/intel-agp.c b/drivers/char/agp/intel-agp.c
> index a426ee1f57a6..9ef0a48a5b28 100644
> --- a/drivers/char/agp/intel-agp.c
> +++ b/drivers/char/agp/intel-agp.c
> @@ -14,9 +14,6 @@
>  #include "intel-agp.h"
>  #include <drm/intel-gtt.h>
>  
> -int intel_agp_enabled;
> -EXPORT_SYMBOL(intel_agp_enabled);
> -
>  static int intel_fetch_size(void)
>  {
>  	int i;
> @@ -814,8 +811,6 @@ static int agp_intel_probe(struct pci_dev *pdev,
>  found_gmch:
>  	pci_set_drvdata(pdev, bridge);
>  	err = agp_add_bridge(bridge);
> -	if (!err)
> -		intel_agp_enabled = 1;
>  	return err;
>  }
>  
> diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> index 8f93c1c1a622..9200c5c47d46 100644
> --- a/drivers/gpu/drm/i915/i915_drv.c
> +++ b/drivers/gpu/drm/i915/i915_drv.c
> @@ -155,11 +155,6 @@ MODULE_PARM_DESC(prefault_disable,
>  		"Disable page prefaulting for pread/pwrite/reloc (default:false). For developers only.");
>  
>  static struct drm_driver driver;
> -#if IS_ENABLED(CONFIG_AGP_INTEL)
> -extern int intel_agp_enabled;
> -#else
> -static int intel_agp_enabled = 1;
> -#endif
>  
>  static const struct intel_device_info intel_i830_info = {
>  	.gen = 2, .is_mobile = 1, .cursor_needs_physical = 1, .num_pipes = 2,
> @@ -829,17 +824,7 @@ static int i915_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
>  	if (PCI_FUNC(pdev->devfn))
>  		return -ENODEV;
>  
> -	/* We've managed to ship a kms-enabled ddx that shipped with an XvMC
> -	 * implementation for gen3 (and only gen3) that used legacy drm maps
> -	 * (gasp!) to share buffers between X and the client. Hence we need to
> -	 * keep around the fake agp stuff for gen3, even when kms is enabled. */
> -	if (intel_info->gen != 3) {
> -		driver.driver_features &=
> -			~(DRIVER_USE_AGP | DRIVER_REQUIRE_AGP);
> -	} else if (!intel_agp_enabled) {
> -		DRM_ERROR("drm/i915 can't work without intel_agp module!\n");
> -		return -ENODEV;
> -	}
> +	driver.driver_features &= ~(DRIVER_USE_AGP | DRIVER_REQUIRE_AGP);
>  
>  	return drm_get_pci_dev(pdev, ent, &driver);
>  }
> -- 
> 1.8.4.3

-- 
Ville Syrjälä
Intel OTC



More information about the Intel-gfx mailing list