diff options
Diffstat (limited to 'drivers/gpu/drm/radeon/r600_cs.c')
-rw-r--r-- | drivers/gpu/drm/radeon/r600_cs.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/gpu/drm/radeon/r600_cs.c b/drivers/gpu/drm/radeon/r600_cs.c index 5dceea6f71ae..7b399dc5fd54 100644 --- a/drivers/gpu/drm/radeon/r600_cs.c +++ b/drivers/gpu/drm/radeon/r600_cs.c | |||
@@ -749,7 +749,10 @@ static int r600_cs_track_check(struct radeon_cs_parser *p) | |||
749 | } | 749 | } |
750 | 750 | ||
751 | for (i = 0; i < 8; i++) { | 751 | for (i = 0; i < 8; i++) { |
752 | if ((tmp >> (i * 4)) & 0xF) { | 752 | u32 format = G_0280A0_FORMAT(track->cb_color_info[i]); |
753 | |||
754 | if (format != V_0280A0_COLOR_INVALID && | ||
755 | (tmp >> (i * 4)) & 0xF) { | ||
753 | /* at least one component is enabled */ | 756 | /* at least one component is enabled */ |
754 | if (track->cb_color_bo[i] == NULL) { | 757 | if (track->cb_color_bo[i] == NULL) { |
755 | dev_warn(p->dev, "%s:%d mask 0x%08X | 0x%08X no cb for %d\n", | 758 | dev_warn(p->dev, "%s:%d mask 0x%08X | 0x%08X no cb for %d\n", |
@@ -2386,7 +2389,7 @@ int r600_cs_legacy(struct drm_device *dev, void *data, struct drm_file *filp, | |||
2386 | ib_chunk = &parser.chunks[parser.chunk_ib_idx]; | 2389 | ib_chunk = &parser.chunks[parser.chunk_ib_idx]; |
2387 | parser.ib.length_dw = ib_chunk->length_dw; | 2390 | parser.ib.length_dw = ib_chunk->length_dw; |
2388 | *l = parser.ib.length_dw; | 2391 | *l = parser.ib.length_dw; |
2389 | if (DRM_COPY_FROM_USER(ib, ib_chunk->user_ptr, ib_chunk->length_dw * 4)) { | 2392 | if (copy_from_user(ib, ib_chunk->user_ptr, ib_chunk->length_dw * 4)) { |
2390 | r = -EFAULT; | 2393 | r = -EFAULT; |
2391 | r600_cs_parser_fini(&parser, r); | 2394 | r600_cs_parser_fini(&parser, r); |
2392 | return r; | 2395 | return r; |