[Intel-gfx] [PATCH 07/12] drm/i915: only enable drm agp support when required

Daniel Vetter daniel at ffwll.ch
Tue Jun 12 05:21:05 PDT 2012


On Tue, Jun 12, 2012 at 02:58:25PM +0300, Jani Nikula wrote:
> 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.

Nice catch, will fix.

> Should there be a deinit of drm_pci_agp_init() if something goes wrong
> afterwards?

drm core should do that for use (but currently doesn't) by deinit agp if
it's initialized. The follow-up patches to wrestle the drm driver init
paths /should/ take care of this though.
-Daniel
-- 
Daniel Vetter
Mail: daniel at ffwll.ch
Mobile: +41 (0)79 365 57 48


More information about the dri-devel mailing list