Messages in this thread | | | Date | Fri, 12 Aug 2011 10:37:20 -0700 | From | "Justin P. Mattock" <> | Subject | Re: i915 suspend crash: BUG: unable to handle kernel NULL pointer deferrence |
| |
on 08/12/2011 10:11 AM, Keith Packard wrote: > On Fri, 12 Aug 2011 08:57:41 -0700, "Justin P. Mattock"<justinmattock@gmail.com> wrote: > >> [ 96.384971] [drm:i915_get_vblank_timestamp] *ERROR* Invalid crtc 0 > > You're not using KMS are you... > > UMS mode disables a ton of features in the driver; you've hit a couple > that weren't getting skipped in all cases. > > Here's some patches that make sure two of the disabled features are > correctly bypassed. If these work for you, I'll create a couple of > patches, one per bug. Afterwards, you should really consider switching > to KMS... > > (meanwhile, thanks for finding bugs in ancient code!) > > diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c > index 02f96fd..9cbb0cd 100644 > --- a/drivers/gpu/drm/i915/i915_irq.c > +++ b/drivers/gpu/drm/i915/i915_irq.c > @@ -2058,8 +2058,10 @@ void intel_irq_init(struct drm_device *dev) > dev->driver->get_vblank_counter = gm45_get_vblank_counter; > } > > - > - dev->driver->get_vblank_timestamp = i915_get_vblank_timestamp; > + if (drm_core_check_feature(dev, DRIVER_MODESET)) > + dev->driver->get_vblank_timestamp = i915_get_vblank_timestamp; > + else > + dev->driver->get_vblank_timestamp = NULL; > dev->driver->get_scanout_position = i915_get_crtc_scanoutpos; > > if (IS_IVYBRIDGE(dev)) { > diff --git a/drivers/gpu/drm/i915/i915_suspend.c b/drivers/gpu/drm/i915/i915_suspend.c > index 87677d6..f107423 100644 > --- a/drivers/gpu/drm/i915/i915_suspend.c > +++ b/drivers/gpu/drm/i915/i915_suspend.c > @@ -871,7 +871,8 @@ int i915_restore_state(struct drm_device *dev) > } > mutex_unlock(&dev->struct_mutex); > > - intel_init_clock_gating(dev); > + if (drm_core_check_feature(dev, DRIVER_MODESET)) > + intel_init_clock_gating(dev); > > if (IS_IRONLAKE_M(dev)) { > ironlake_enable_drps(dev); > >
I have: Enable modesetting on intel by default (DRM_I915_KMS) not set in my .config. I will enable that and see if this fixes this issue, if not then I will test those patches out.
| |