that error in kern.log occurs in two places: ap...@april-laptop:~/linux-2.6.28$ find . -name \*.c|xargs grep 'trying to get vblank count for disabled pipe' ./drivers/gpu/drm/i915/i915_irq.c: DRM_ERROR("trying to get vblank count for disabled pipe %d\n", pipe); ./drivers/gpu/drm/i915/i915_irq.c: DRM_ERROR("trying to get vblank count for disabled pipe %d\n", pipe);
here's the two occurences: /* Called from drm generic code, passed a 'crtc', which * we use as a pipe index */ u32 i915_get_vblank_counter(struct drm_device *dev, int pipe) { drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; unsigned long high_frame; unsigned long low_frame; u32 high1, high2, low, count; high_frame = pipe ? PIPEBFRAMEHIGH : PIPEAFRAMEHIGH; low_frame = pipe ? PIPEBFRAMEPIXEL : PIPEAFRAMEPIXEL; if (!i915_pipe_enabled(dev, pipe)) { DRM_ERROR("trying to get vblank count for disabled pipe %d\n", pipe); return 0; } /* * High & low register fields aren't synchronized, so make sure * we get a low value that's stable across two reads of the high * register. */ do { high1 = ((I915_READ(high_frame) & PIPE_FRAME_HIGH_MASK) >> PIPE_FRAME_HIGH_SHIFT); low = ((I915_READ(low_frame) & PIPE_FRAME_LOW_MASK) >> PIPE_FRAME_LOW_SHIFT); high2 = ((I915_READ(high_frame) & PIPE_FRAME_HIGH_MASK) >> PIPE_FRAME_HIGH_SHIFT); } while (high1 != high2); count = (high1 << 8) | low; return count; } u32 gm45_get_vblank_counter(struct drm_device *dev, int pipe) { drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; int reg = pipe ? PIPEB_FRMCOUNT_GM45 : PIPEA_FRMCOUNT_GM45; if (!i915_pipe_enabled(dev, pipe)) { DRM_ERROR("trying to get vblank count for disabled pipe %d\n", pipe); return 0; } return I915_READ(reg); } -- [Gateway ML6720] computer freezes when suspending https://bugs.launchpad.net/bugs/353887 You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs