drm/radeon: do not reenable crtc after moving vram start address
authorJerome Glisse <jglisse@redhat.com>
Fri, 27 Jul 2012 20:32:24 +0000 (16:32 -0400)
committerBen Hutchings <ben@decadent.org.uk>
Sun, 19 Aug 2012 17:15:37 +0000 (18:15 +0100)
commit09dcc7b678ecff242dfbc9555aaa3f4d41212bb2
tree68bf16f577c9815721be13fcdec0695850966d4b
parent48d504e2659ad6029fac8b1f7f87c744c9abb888
drm/radeon: do not reenable crtc after moving vram start address

commit 81ee8fb6b52ec69eeed37fe7943446af1dccecc5 upstream.

It seems we can not update the crtc scanout address. After disabling
crtc, update to base address do not take effect after crtc being
reenable leading to at least frame being scanout from the old crtc
base address. Disabling crtc display request lead to same behavior.

So after changing the vram address if we don't keep crtc disabled
we will have the GPU trying to read some random system memory address
with some iommu this will broke the crtc engine and will lead to
broken display and iommu error message.

So to avoid this, disable crtc. For flicker less boot we will need
to avoid moving the vram start address.

This patch should also fix :

https://bugs.freedesktop.org/show_bug.cgi?id=42373

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/gpu/drm/radeon/evergreen.c
drivers/gpu/drm/radeon/radeon_asic.h
drivers/gpu/drm/radeon/rv515.c