diff options
-rw-r--r-- | drivers/gpu/drm/nouveau/nv40_graph.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/drivers/gpu/drm/nouveau/nv40_graph.c b/drivers/gpu/drm/nouveau/nv40_graph.c index d3e0a2a6acf8..7e8547cb5833 100644 --- a/drivers/gpu/drm/nouveau/nv40_graph.c +++ b/drivers/gpu/drm/nouveau/nv40_graph.c | |||
@@ -252,8 +252,9 @@ nv40_grctx_init(struct drm_device *dev) | |||
252 | memcpy(pgraph->ctxprog, fw->data, fw->size); | 252 | memcpy(pgraph->ctxprog, fw->data, fw->size); |
253 | 253 | ||
254 | cp = pgraph->ctxprog; | 254 | cp = pgraph->ctxprog; |
255 | if (cp->signature != 0x5043564e || cp->version != 0 || | 255 | if (le32_to_cpu(cp->signature) != 0x5043564e || |
256 | cp->length != ((fw->size - 7) / 4)) { | 256 | cp->version != 0 || |
257 | le16_to_cpu(cp->length) != ((fw->size - 7) / 4)) { | ||
257 | NV_ERROR(dev, "ctxprog invalid\n"); | 258 | NV_ERROR(dev, "ctxprog invalid\n"); |
258 | release_firmware(fw); | 259 | release_firmware(fw); |
259 | nv40_grctx_fini(dev); | 260 | nv40_grctx_fini(dev); |
@@ -281,8 +282,9 @@ nv40_grctx_init(struct drm_device *dev) | |||
281 | memcpy(pgraph->ctxvals, fw->data, fw->size); | 282 | memcpy(pgraph->ctxvals, fw->data, fw->size); |
282 | 283 | ||
283 | cv = (void *)pgraph->ctxvals; | 284 | cv = (void *)pgraph->ctxvals; |
284 | if (cv->signature != 0x5643564e || cv->version != 0 || | 285 | if (le32_to_cpu(cv->signature) != 0x5643564e || |
285 | cv->length != ((fw->size - 9) / 8)) { | 286 | cv->version != 0 || |
287 | le32_to_cpu(cv->length) != ((fw->size - 9) / 8)) { | ||
286 | NV_ERROR(dev, "ctxvals invalid\n"); | 288 | NV_ERROR(dev, "ctxvals invalid\n"); |
287 | release_firmware(fw); | 289 | release_firmware(fw); |
288 | nv40_grctx_fini(dev); | 290 | nv40_grctx_fini(dev); |
@@ -294,8 +296,9 @@ nv40_grctx_init(struct drm_device *dev) | |||
294 | cp = pgraph->ctxprog; | 296 | cp = pgraph->ctxprog; |
295 | 297 | ||
296 | nv_wr32(dev, NV40_PGRAPH_CTXCTL_UCODE_INDEX, 0); | 298 | nv_wr32(dev, NV40_PGRAPH_CTXCTL_UCODE_INDEX, 0); |
297 | for (i = 0; i < cp->length; i++) | 299 | for (i = 0; i < le16_to_cpu(cp->length); i++) |
298 | nv_wr32(dev, NV40_PGRAPH_CTXCTL_UCODE_DATA, cp->data[i]); | 300 | nv_wr32(dev, NV40_PGRAPH_CTXCTL_UCODE_DATA, |
301 | le32_to_cpu(cp->data[i])); | ||
299 | 302 | ||
300 | pgraph->accel_blocked = false; | 303 | pgraph->accel_blocked = false; |
301 | return 0; | 304 | return 0; |
@@ -329,8 +332,9 @@ nv40_grctx_vals_load(struct drm_device *dev, struct nouveau_gpuobj *ctx) | |||
329 | if (!cv) | 332 | if (!cv) |
330 | return; | 333 | return; |
331 | 334 | ||
332 | for (i = 0; i < cv->length; i++) | 335 | for (i = 0; i < le32_to_cpu(cv->length); i++) |
333 | nv_wo32(dev, ctx, cv->data[i].offset, cv->data[i].value); | 336 | nv_wo32(dev, ctx, le32_to_cpu(cv->data[i].offset), |
337 | le32_to_cpu(cv->data[i].value)); | ||
334 | } | 338 | } |
335 | 339 | ||
336 | /* | 340 | /* |