diff options
Diffstat (limited to 'drivers/gpu/drm/radeon/r300.c')
-rw-r--r-- | drivers/gpu/drm/radeon/r300.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/gpu/drm/radeon/r300.c b/drivers/gpu/drm/radeon/r300.c index cd9ea98e9c6f..656d9238bb06 100644 --- a/drivers/gpu/drm/radeon/r300.c +++ b/drivers/gpu/drm/radeon/r300.c | |||
@@ -44,6 +44,7 @@ int r100_gui_wait_for_idle(struct radeon_device *rdev); | |||
44 | int r100_cs_packet_parse(struct radeon_cs_parser *p, | 44 | int r100_cs_packet_parse(struct radeon_cs_parser *p, |
45 | struct radeon_cs_packet *pkt, | 45 | struct radeon_cs_packet *pkt, |
46 | unsigned idx); | 46 | unsigned idx); |
47 | int r100_cs_packet_parse_vline(struct radeon_cs_parser *p); | ||
47 | int r100_cs_packet_next_reloc(struct radeon_cs_parser *p, | 48 | int r100_cs_packet_next_reloc(struct radeon_cs_parser *p, |
48 | struct radeon_cs_reloc **cs_reloc); | 49 | struct radeon_cs_reloc **cs_reloc); |
49 | int r100_cs_parse_packet0(struct radeon_cs_parser *p, | 50 | int r100_cs_parse_packet0(struct radeon_cs_parser *p, |
@@ -972,7 +973,7 @@ static inline void r300_cs_track_clear(struct r300_cs_track *track) | |||
972 | 973 | ||
973 | static const unsigned r300_reg_safe_bm[159] = { | 974 | static const unsigned r300_reg_safe_bm[159] = { |
974 | 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, | 975 | 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, |
975 | 0xFFFFFFBF, 0xFFFFFFFF, 0xFFFFFFBF, 0xFFFFFFFF, | 976 | 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, |
976 | 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, | 977 | 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, |
977 | 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, | 978 | 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, |
978 | 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, | 979 | 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, |
@@ -1029,6 +1030,16 @@ static int r300_packet0_check(struct radeon_cs_parser *p, | |||
1029 | ib_chunk = &p->chunks[p->chunk_ib_idx]; | 1030 | ib_chunk = &p->chunks[p->chunk_ib_idx]; |
1030 | track = (struct r300_cs_track*)p->track; | 1031 | track = (struct r300_cs_track*)p->track; |
1031 | switch(reg) { | 1032 | switch(reg) { |
1033 | case AVIVO_D1MODE_VLINE_START_END: | ||
1034 | case RADEON_CRTC_GUI_TRIG_VLINE: | ||
1035 | r = r100_cs_packet_parse_vline(p); | ||
1036 | if (r) { | ||
1037 | DRM_ERROR("No reloc for ib[%d]=0x%04X\n", | ||
1038 | idx, reg); | ||
1039 | r100_cs_dump_packet(p, pkt); | ||
1040 | return r; | ||
1041 | } | ||
1042 | break; | ||
1032 | case RADEON_DST_PITCH_OFFSET: | 1043 | case RADEON_DST_PITCH_OFFSET: |
1033 | case RADEON_SRC_PITCH_OFFSET: | 1044 | case RADEON_SRC_PITCH_OFFSET: |
1034 | r = r100_cs_packet_next_reloc(p, &reloc); | 1045 | r = r100_cs_packet_next_reloc(p, &reloc); |