Commit ce36f00d authored by Matt Turner's avatar Matt Turner Committed by Dave Airlie

drm/radeon/kms/atom: use get_unaligned_le32() for ctx->ps

Noticed on a DEC Alpha.

Start up into console mode caused 15 unaligned accesses, and starting X
caused another 48.
Signed-off-by: default avatarMatt Turner <mattst88@gmail.com>
CC: Jerome Glisse <jglisse@redhat.com>
CC: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent e22238ea
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/sched.h> #include <linux/sched.h>
#include <asm/unaligned.h>
#define ATOM_DEBUG #define ATOM_DEBUG
...@@ -212,7 +213,9 @@ static uint32_t atom_get_src_int(atom_exec_context *ctx, uint8_t attr, ...@@ -212,7 +213,9 @@ static uint32_t atom_get_src_int(atom_exec_context *ctx, uint8_t attr,
case ATOM_ARG_PS: case ATOM_ARG_PS:
idx = U8(*ptr); idx = U8(*ptr);
(*ptr)++; (*ptr)++;
val = le32_to_cpu(ctx->ps[idx]); /* get_unaligned_le32 avoids unaligned accesses from atombios
* tables, noticed on a DEC Alpha. */
val = get_unaligned_le32((u32 *)&ctx->ps[idx]);
if (print) if (print)
DEBUG("PS[0x%02X,0x%04X]", idx, val); DEBUG("PS[0x%02X,0x%04X]", idx, val);
break; break;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment