aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/atom.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@linux.ie>2009-11-12 15:53:44 +1000
committerDave Airlie <airlied@redhat.com>2009-11-24 13:02:07 +1000
commit23115b0592bde5da249fcbdad7714c1f96a8e5f5 (patch)
tree01567a364e6e1cd7a0996abbc43dda19c5c4713c /drivers/gpu/drm/radeon/atom.c
parentef63062716415d6e271815872b6c6654ffa9ac26 (diff)
downloadmrst-s0i3-test-23115b0592bde5da249fcbdad7714c1f96a8e5f5.tar.gz
mrst-s0i3-test-23115b0592bde5da249fcbdad7714c1f96a8e5f5.tar.xz
mrst-s0i3-test-23115b0592bde5da249fcbdad7714c1f96a8e5f5.zip
drm/radeon/kms: read back register before writing in IIO.
This fixes RH bugzilla #527874. On resume the atom posting wasn't working, however vbe posting was going fine, after 2 weeks over irc, and 8 hrs with the hardware, I tracked it down to the memory device table and it access the MC registers via IIO, it appears the rv515 atom iio table might not be fully functional, so adding a readback before doing a write either provides enough delay to make things resume correctly. Thanks to Peng Huang at Red Hat for coming to Brisbane. Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/atom.c')
-rw-r--r--drivers/gpu/drm/radeon/atom.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/atom.c b/drivers/gpu/drm/radeon/atom.c
index 901befe03da..d67c42555ab 100644
--- a/drivers/gpu/drm/radeon/atom.c
+++ b/drivers/gpu/drm/radeon/atom.c
@@ -107,6 +107,7 @@ static uint32_t atom_iio_execute(struct atom_context *ctx, int base,
base += 3;
break;
case ATOM_IIO_WRITE:
+ (void)ctx->card->reg_read(ctx->card, CU16(base + 1));
ctx->card->reg_write(ctx->card, CU16(base + 1), temp);
base += 3;
break;