From: bugzilla-daemon@freedesktop.org
To: dri-devel@lists.freedesktop.org
Subject: [Bug 56139] [bisected] kernel 3.7.0-rc1 breaks 6950 (CAYMAN)
Date: Mon, 05 Nov 2012 16:20:59 +0000 [thread overview]
Message-ID: <bug-56139-502-P1r4uil8Hf@http.bugs.freedesktop.org/> (raw)
In-Reply-To: <bug-56139-502@http.bugs.freedesktop.org/>
[-- Attachment #1.1: Type: text/plain, Size: 4119 bytes --]
https://bugs.freedesktop.org/show_bug.cgi?id=56139
--- Comment #15 from Alex Deucher <agd5f@yahoo.com> ---
(In reply to comment #14)
> (In reply to comment #12)
> > (In reply to comment #11)
> > > Found what is wrong with the help of a few printk and by comparing to the
> > > code being replaced. All the logic is good (going through crtc, disabling
> > > them, waiting for vblank) BUT setting "tmp |=
> > > EVERGREEN_CRTC_DISP_READ_REQUEST_DISABLE;" is wrong.
> > >
> > > If I do as in the previous code by setting tmp = 0 and then continuing with:
> > > radeon_wait_for_vblank(rdev, i);
> > > WREG32(EVERGREEN_CRTC_CONTROL + crtc_offsets[i], tmp);
> > > everything works fine as before.
> > >
> > > What is expected from "tmp |= EVERGREEN_CRTC_DISP_READ_REQUEST_DISABLE;"?
> > > From what I read with printk, it is far from a 0 or a 1. Is this normal?
> >
> > That's the most important bit in the entire sequence. It's a bit field in a
> > register (bit 24 to be exact). That bit is the bit that actually disables
> > the requests from the display controller in the memory controller. The
> > whole point of this code is to disable all clients of the memory controller
> > (mc_stop()) so that we can change the location of vram within the GPU's
> > address space. Once we've moved vram, we can re-enable the clients
> > (mc_resume()) so that they point to the new vram location.
>
> Thank you, you confirmed what I had assumed. I had already understood that
> it was the most important part in the sequence since it is associated to a
> "write" instruction. I don't have the (decimal/binary) values with me right
> now, but I'll be able to give you what was read from the register and from
> the result returned from the bitwise OR assignment we are pushing in the
> register. I'll confirm which bit(s) are changing. I'm sure the assignment
> was setting one (or more) bit in the register to "1". Is bit 24 the only one
> expected to change in the register? Should it be put to "1" or "0"?
>
Setting bit 24 to 1 disables memory requests from the display controller.
Setting bit 24 to 0, enables memory requests from the display controller.
> Another question: why were we setting "0" in the register before? By doing
> so, we were setting the whole register to "0" (the whole 32 bits), right? If
> I remember correctly, from what I saw yesterday with the help of printk, it
> seems we are setting at least one bit to "1" in this register, which would
> be the opposite of what was being done before and therefore of what was
> working correctly with my video card. I'm just trying to understand why we
> were doing something in the first place that was working correctly and that
> was introduce to fix this problem in the first place, both at boot time for
> grub (set gfxpayload=keep) and when suspending/resuming, and we are now
> doing the opposite, thus breaking the code for some setups. Is it possible
> that the bit/register logic is not the same for all Radeon GPUs? After all,
> we already introduced a different path for DCE6.
Bit 0 for CRTC_CONTROL turns on/off the entire crtc. If bit 0 is 0 the crtc is
disabled. If bit 0 is 1, the crtc is enabled. If the crtc is disabled (bit 0
= 0) bit 24 is irrelevant. There are separate bits to enable the crtc and
disable memory requests since there are cases (like this one) where we want to
keep the crtc timing running so that the monitor stays synced, but disable
reads from memory so we can reconfigure the memory controller. If we disable
the crtc entirely, the monitor would lose sync and you would get additional
flicker during boot up. Ideally, eventually we'd like to just hand over
control from the firmware without touching the display hardware so the user
gets a flicker free boot experience.
DCE4 and 5 have the same logic and bit layout for these registers. The logic
is different on DCE6 chips. On DCE6, the the memory controller request bit is
now tied in with the crtc blanking bit. When the crtc is blanked, memory
requests are also disabled.
--
You are receiving this mail because:
You are the assignee for the bug.
[-- Attachment #1.2: Type: text/html, Size: 5384 bytes --]
[-- Attachment #2: Type: text/plain, Size: 159 bytes --]
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2012-11-05 16:20 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-18 13:48 [Bug 56139] New: [bisected] kernel 3.7.0-rc1 breaks 6950 (CAYMAN) bugzilla-daemon
2012-10-18 13:51 ` [Bug 56139] " bugzilla-daemon
2012-10-18 14:16 ` bugzilla-daemon
2012-10-18 23:46 ` bugzilla-daemon
2012-10-22 5:57 ` bugzilla-daemon
2012-10-26 3:17 ` bugzilla-daemon
2012-10-26 14:08 ` bugzilla-daemon
2012-10-27 4:51 ` bugzilla-daemon
2012-10-31 18:29 ` bugzilla-daemon
2012-10-31 19:13 ` bugzilla-daemon
2012-11-01 0:38 ` bugzilla-daemon
2012-11-01 5:30 ` bugzilla-daemon
2012-11-05 6:58 ` bugzilla-daemon
2012-11-05 14:03 ` bugzilla-daemon
2012-11-05 14:28 ` bugzilla-daemon
2012-11-05 14:55 ` bugzilla-daemon
2012-11-05 16:20 ` bugzilla-daemon [this message]
2012-11-05 16:34 ` bugzilla-daemon
2012-11-05 22:46 ` bugzilla-daemon
2012-11-06 0:33 ` bugzilla-daemon
2012-11-06 1:02 ` bugzilla-daemon
2012-11-06 22:32 ` bugzilla-daemon
2012-11-06 22:50 ` bugzilla-daemon
2012-11-06 22:55 ` bugzilla-daemon
2012-11-06 22:56 ` bugzilla-daemon
2012-11-06 22:59 ` bugzilla-daemon
2012-11-11 18:55 ` bugzilla-daemon
2013-04-17 9:11 ` Huacai Chen
2012-11-12 4:04 ` [Bug 56139] [bisected] kernel 3.7.0-rc1 breaks 6950 (boot/grub2 and suspend/resume) (CAYMAN) bugzilla-daemon
2012-11-12 4:27 ` bugzilla-daemon
2012-11-12 5:32 ` bugzilla-daemon
2012-11-12 23:31 ` bugzilla-daemon
2012-11-13 15:15 ` bugzilla-daemon
2012-11-13 15:45 ` bugzilla-daemon
2012-11-14 16:14 ` bugzilla-daemon
2012-11-18 17:05 ` bugzilla-daemon
2012-11-18 19:04 ` bugzilla-daemon
2012-11-18 19:40 ` bugzilla-daemon
2012-11-18 19:41 ` bugzilla-daemon
2012-11-19 14:05 ` bugzilla-daemon
2012-11-19 14:18 ` bugzilla-daemon
2012-11-19 14:19 ` bugzilla-daemon
2012-11-19 23:31 ` bugzilla-daemon
2012-11-20 6:08 ` bugzilla-daemon
2012-11-20 15:23 ` bugzilla-daemon
2012-11-28 6:44 ` bugzilla-daemon
2012-11-28 14:29 ` bugzilla-daemon
2012-11-28 17:08 ` bugzilla-daemon
2013-01-05 5:57 ` bugzilla-daemon
2013-01-31 0:52 ` bugzilla-daemon
2013-01-31 13:35 ` bugzilla-daemon
2013-02-20 5:34 ` bugzilla-daemon
2013-02-23 10:28 ` bugzilla-daemon
2013-02-24 3:21 ` bugzilla-daemon
2013-02-25 1:56 ` bugzilla-daemon
2013-02-25 13:57 ` bugzilla-daemon
2013-03-11 4:41 ` bugzilla-daemon
2013-03-11 4:51 ` bugzilla-daemon
2013-03-11 13:38 ` bugzilla-daemon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=bug-56139-502-P1r4uil8Hf@http.bugs.freedesktop.org/ \
--to=bugzilla-daemon@freedesktop.org \
--cc=dri-devel@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).