diff options
| -rw-r--r-- | drivers/gpu/drm/radeon/atom.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/gpu/drm/radeon/atom.c b/drivers/gpu/drm/radeon/atom.c index e3b44562d265..2a3df5599ab4 100644 --- a/drivers/gpu/drm/radeon/atom.c +++ b/drivers/gpu/drm/radeon/atom.c | |||
| @@ -24,6 +24,7 @@ | |||
| 24 | 24 | ||
| 25 | #include <linux/module.h> | 25 | #include <linux/module.h> |
| 26 | #include <linux/sched.h> | 26 | #include <linux/sched.h> |
| 27 | #include <asm/unaligned.h> | ||
| 27 | 28 | ||
| 28 | #define ATOM_DEBUG | 29 | #define ATOM_DEBUG |
| 29 | 30 | ||
| @@ -212,7 +213,9 @@ static uint32_t atom_get_src_int(atom_exec_context *ctx, uint8_t attr, | |||
| 212 | case ATOM_ARG_PS: | 213 | case ATOM_ARG_PS: |
| 213 | idx = U8(*ptr); | 214 | idx = U8(*ptr); |
| 214 | (*ptr)++; | 215 | (*ptr)++; |
| 215 | val = le32_to_cpu(ctx->ps[idx]); | 216 | /* get_unaligned_le32 avoids unaligned accesses from atombios |
| 217 | * tables, noticed on a DEC Alpha. */ | ||
| 218 | val = get_unaligned_le32((u32 *)&ctx->ps[idx]); | ||
| 216 | if (print) | 219 | if (print) |
| 217 | DEBUG("PS[0x%02X,0x%04X]", idx, val); | 220 | DEBUG("PS[0x%02X,0x%04X]", idx, val); |
| 218 | break; | 221 | break; |
