Just to avoid confusion as rdev->cp.wptr is unsigned, by negative I implied 
that it was ~0 or 0xffffffffU; when read in r600_cp_resume.
So an increment: add $1, %eax before the OOPs wrapped it back to 0. as EAX or 
the ring buffer write pointer index at the time of the panic was shown as 0. 
Since the increment had happened before the fault, it had to be ~0 or 
0xffffffffU on resume which is again an invalid write pointer value for the 
radeon ring buffer.

So we retry till we get a sane value for the read and write pointer for
the radeon ring buffer on RESUME in r600_cp_resume. Have a strong hunch
that it would fix the panic as this seems to be a timing issue with
reading registers on resume. (maybe the device isn't ready yet when the
resume tries to fetch the read and write indexes)

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/820746

Title:
  Black screen on boot - Oops: 0002 [#1] SMP on Lenovo T400 laptop with
  radeon

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/820746/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to