[Intel-gfx] [PATCH] drm/i915: refuse to load on gen6+ without kms

Chris Wilson chris at chris-wilson.co.uk
Mon Mar 26 23:21:57 CEST 2012


On Mon, 26 Mar 2012 21:50:17 +0200, Daniel Vetter <daniel at ffwll.ch> wrote:
> On Mon, Mar 26, 2012 at 08:44:51PM +0100, Chris Wilson wrote:
> > On Mon, 26 Mar 2012 21:33:18 +0200, Daniel Vetter <daniel.vetter at ffwll.ch> wrote:
> > > Spurred by an irc discussion, let's start to clear up which parts of
> > > our kms + ums/gem + ums/dri1 + vbios/dri1 kernel driver pieces
> > > userspace in the wild actually uses.
> > > 
> > > The idea is that we introduce checks at entry-points (module load
> > > time, ioctls, ...) first and then reap any obviously dead code in a
> > > second step.
> > > 
> > > As a first step refuse to load without kms on chips where userspace
> > > never supported ums. Now upstream hasn't supported ums on ilk, ever.
> > > But RHEL had the great idea to backport the kms support to their ums
> > > driver.
> > > 
> > > Cc: Dave Airlie <airlied at gmail.com>
> > > Signed-Off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> > > ---
> > >  drivers/gpu/drm/i915/i915_dma.c |   10 +++++++++-
> > >  1 files changed, 9 insertions(+), 1 deletions(-)
> > > 
> > > diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
> > > index 64dfbb8..8567fdf 100644
> > > --- a/drivers/gpu/drm/i915/i915_dma.c
> > > +++ b/drivers/gpu/drm/i915/i915_dma.c
> > > @@ -1955,9 +1955,17 @@ i915_mtrr_setup(struct drm_i915_private *dev_priv, unsigned long base,
> > >  int i915_driver_load(struct drm_device *dev, unsigned long flags)
> > >  {
> > >  	struct drm_i915_private *dev_priv;
> > > +	struct intel_device_info *info;
> > >  	int ret = 0, mmio_bar;
> > >  	uint32_t agp_size;
> > >  
> > > +	info = (struct intel_device_info *) flags;
> > > +
> > > +	/* Refuse to load on gen6+ without kms enabled. */
> > > +	if (info->gen >= 6 && !drm_core_check_feature(dev, DRIVER_MODESET))
> > > +		return -ENODEV;
> > 
> > The problem here is that this highlights that with the default
> > configuration we have no driver for our current hardware in the kernel.
> 
> Well, with the default configuration we _do_ have no driver for our
> hardware. Non-kms doesn't do anything really on it's own, and without any
> userspace existing no-one will call the entervt or gem_init ioctls.
> 
> No change at all imo.

Just to make me happy, can you add a warning here that we are refusing
to load the driver because the user hasn't set a flag?
DRM_INFO("Not loading driver without KMS as this is an unsupported
configuration for this hardware; please enable CONFIG_DRM_I915_KMS or
pass i915.modeset=1 to proceed.\n");
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre



More information about the Intel-gfx mailing list