I915: OOPSes on linux-3.14-rc7
Daniel Vetter
daniel at ffwll.ch
Fri Mar 21 08:11:31 PDT 2014
On Fri, Mar 21, 2014 at 12:26:51PM +0100, Peter Senna Tschudin wrote:
> On Thu, Mar 20, 2014 at 10:17 PM, Daniel Vetter <daniel at ffwll.ch> wrote:
> > On Thu, Mar 20, 2014 at 05:56:20PM +0100, Peter Senna Tschudin wrote:
> >> When Fedora updated the Kernel package from 3.12 to 3.13 my notebook
> >> stopped booting (Kernel freezes) when a 2560 x 1440 high res monitor
> >> is attached. I have tried using 3.13.6 from kernel.org and the problem
> >> persists. The problem can be partially solved by passing nomodeset to
> >> Kernel which will make the Kernel to boot, but the screens never comes
> >> to life. When using 3.14-rc7 it boots again, the screen works, but
> >> with some oops messages.
> >>
> >> How can I help fixing this issue?
> >>
> >> I've reported te bug at:
> >> https://bugzilla.redhat.com/show_bug.cgi?id=1072557
> >
> > For the oops message (well it's just a WARNING, a real oops would kill
> > your driver for real) please file a bug report on bugs.freedesktop.org
> > against dri -> drm (intel).
> >
> > The information we need is the full dmesg fore the entire boot when
> > enabling drm.debug=0xe on the kernel cmdline.
> It is attached.
>
> >
> > For the boot hang you've reported on the redhat bz if you want to move it
> > forward I suggest to do a reverse bisect betwen 3.13 and 3.14-rc7 to
> > figure out which bug _fixed_ your problem and then tell me that. I'll
> > submit it for backporting to stable kernels. Google should find you some
> > nice howtos for reverse bisecting kerneels.
> Thank you. I'll do that.
It's an issue with our fastboot clock readout code. Please apply the below
patch and add an updated dmesg (again with drm.debug=0xe) to your bug
report.
-Daniel
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 7be5984431bb..3c0f8f095a6b 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -450,6 +450,8 @@ static void i9xx_clock(int refclk, intel_clock_t *clock)
{
clock->m = i9xx_dpll_compute_m(clock);
clock->p = clock->p1 * clock->p2;
+ printk("p1 = %u, p2 = %u, n = %u\n", clock->p1, clock->p2,
+ clock->n);
if (WARN_ON(clock->n + 2 == 0 || clock->p == 0))
return;
clock->vco = DIV_ROUND_CLOSEST(refclk * clock->m, clock->n + 2);
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
More information about the dri-devel
mailing list