From mboxrd@z Thu Jan 1 00:00:00 1970 From: bugzilla-daemon@freedesktop.org Subject: [Bug 56139] [bisected] kernel 3.7.0-rc1 breaks 6950 (CAYMAN) Date: Mon, 05 Nov 2012 14:03:53 +0000 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============2036162730==" Return-path: Received: from culpepper.freedesktop.org (unknown [131.252.210.165]) by gabe.freedesktop.org (Postfix) with ESMTP id 52B929F386 for ; Mon, 5 Nov 2012 06:03:53 -0800 (PST) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org --===============2036162730== Content-Type: multipart/alternative; boundary="1352124233.dCdeb50.15416"; charset="us-ascii" --1352124233.dCdeb50.15416 Date: Mon, 5 Nov 2012 14:03:53 +0000 MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" https://bugs.freedesktop.org/show_bug.cgi?id=56139 --- Comment #12 from Alex Deucher --- (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. -- You are receiving this mail because: You are the assignee for the bug. --1352124233.dCdeb50.15416 Date: Mon, 5 Nov 2012 14:03:53 +0000 MIME-Version: 1.0 Content-Type: text/html; charset="UTF-8"

Comment # 12 on bug 56139 from
(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.


You are receiving this mail because:
  • You are the assignee for the bug.
--1352124233.dCdeb50.15416-- --===============2036162730== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel --===============2036162730==--