diff options
author | Dave Airlie <airlied@linux.ie> | 2009-11-12 15:53:44 +1000 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2009-11-24 13:02:07 +1000 |
commit | 23115b0592bde5da249fcbdad7714c1f96a8e5f5 (patch) | |
tree | 01567a364e6e1cd7a0996abbc43dda19c5c4713c /drivers/gpu/drm | |
parent | ef63062716415d6e271815872b6c6654ffa9ac26 (diff) | |
download | linux-next-23115b0592bde5da249fcbdad7714c1f96a8e5f5.tar.gz |
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')
-rw-r--r-- | drivers/gpu/drm/radeon/atom.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/atom.c b/drivers/gpu/drm/radeon/atom.c index 901befe03da2..d67c42555ab9 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; |