diff options
author | Paul Bolle <pebolle@tiscali.nl> | 2011-03-16 17:10:06 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2011-03-16 23:50:43 -0400 |
commit | a3a88a668ffe8f9771a525a2b00570f8a4c29286 (patch) | |
tree | 05022f51b985846654634927ce21323faa6bd448 /drivers/gpu/drm/radeon/r600_cs.c | |
parent | 3409fc1b22e2717237f9f23112645f5d190cff4d (diff) |
drm: radeon: *_cs_packet_parse_vline() cleanup
Simplify the way the return value is set a number of times (mostly on
error).
Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/r600_cs.c')
-rw-r--r-- | drivers/gpu/drm/radeon/r600_cs.c | 25 |
1 files changed, 9 insertions, 16 deletions
diff --git a/drivers/gpu/drm/radeon/r600_cs.c b/drivers/gpu/drm/radeon/r600_cs.c index 0a0848f0346d..3324620b2db6 100644 --- a/drivers/gpu/drm/radeon/r600_cs.c +++ b/drivers/gpu/drm/radeon/r600_cs.c | |||
@@ -780,33 +780,28 @@ static int r600_cs_packet_parse_vline(struct radeon_cs_parser *p) | |||
780 | if (wait_reg_mem.type != PACKET_TYPE3 || | 780 | if (wait_reg_mem.type != PACKET_TYPE3 || |
781 | wait_reg_mem.opcode != PACKET3_WAIT_REG_MEM) { | 781 | wait_reg_mem.opcode != PACKET3_WAIT_REG_MEM) { |
782 | DRM_ERROR("vline wait missing WAIT_REG_MEM segment\n"); | 782 | DRM_ERROR("vline wait missing WAIT_REG_MEM segment\n"); |
783 | r = -EINVAL; | 783 | return -EINVAL; |
784 | return r; | ||
785 | } | 784 | } |
786 | 785 | ||
787 | wait_reg_mem_info = radeon_get_ib_value(p, wait_reg_mem.idx + 1); | 786 | wait_reg_mem_info = radeon_get_ib_value(p, wait_reg_mem.idx + 1); |
788 | /* bit 4 is reg (0) or mem (1) */ | 787 | /* bit 4 is reg (0) or mem (1) */ |
789 | if (wait_reg_mem_info & 0x10) { | 788 | if (wait_reg_mem_info & 0x10) { |
790 | DRM_ERROR("vline WAIT_REG_MEM waiting on MEM rather than REG\n"); | 789 | DRM_ERROR("vline WAIT_REG_MEM waiting on MEM rather than REG\n"); |
791 | r = -EINVAL; | 790 | return -EINVAL; |
792 | return r; | ||
793 | } | 791 | } |
794 | /* waiting for value to be equal */ | 792 | /* waiting for value to be equal */ |
795 | if ((wait_reg_mem_info & 0x7) != 0x3) { | 793 | if ((wait_reg_mem_info & 0x7) != 0x3) { |
796 | DRM_ERROR("vline WAIT_REG_MEM function not equal\n"); | 794 | DRM_ERROR("vline WAIT_REG_MEM function not equal\n"); |
797 | r = -EINVAL; | 795 | return -EINVAL; |
798 | return r; | ||
799 | } | 796 | } |
800 | if ((radeon_get_ib_value(p, wait_reg_mem.idx + 2) << 2) != AVIVO_D1MODE_VLINE_STATUS) { | 797 | if ((radeon_get_ib_value(p, wait_reg_mem.idx + 2) << 2) != AVIVO_D1MODE_VLINE_STATUS) { |
801 | DRM_ERROR("vline WAIT_REG_MEM bad reg\n"); | 798 | DRM_ERROR("vline WAIT_REG_MEM bad reg\n"); |
802 | r = -EINVAL; | 799 | return -EINVAL; |
803 | return r; | ||
804 | } | 800 | } |
805 | 801 | ||
806 | if (radeon_get_ib_value(p, wait_reg_mem.idx + 5) != AVIVO_D1MODE_VLINE_STAT) { | 802 | if (radeon_get_ib_value(p, wait_reg_mem.idx + 5) != AVIVO_D1MODE_VLINE_STAT) { |
807 | DRM_ERROR("vline WAIT_REG_MEM bad bit mask\n"); | 803 | DRM_ERROR("vline WAIT_REG_MEM bad bit mask\n"); |
808 | r = -EINVAL; | 804 | return -EINVAL; |
809 | return r; | ||
810 | } | 805 | } |
811 | 806 | ||
812 | /* jump over the NOP */ | 807 | /* jump over the NOP */ |
@@ -825,8 +820,7 @@ static int r600_cs_packet_parse_vline(struct radeon_cs_parser *p) | |||
825 | obj = drm_mode_object_find(p->rdev->ddev, crtc_id, DRM_MODE_OBJECT_CRTC); | 820 | obj = drm_mode_object_find(p->rdev->ddev, crtc_id, DRM_MODE_OBJECT_CRTC); |
826 | if (!obj) { | 821 | if (!obj) { |
827 | DRM_ERROR("cannot find crtc %d\n", crtc_id); | 822 | DRM_ERROR("cannot find crtc %d\n", crtc_id); |
828 | r = -EINVAL; | 823 | return -EINVAL; |
829 | goto out; | ||
830 | } | 824 | } |
831 | crtc = obj_to_crtc(obj); | 825 | crtc = obj_to_crtc(obj); |
832 | radeon_crtc = to_radeon_crtc(crtc); | 826 | radeon_crtc = to_radeon_crtc(crtc); |
@@ -849,14 +843,13 @@ static int r600_cs_packet_parse_vline(struct radeon_cs_parser *p) | |||
849 | break; | 843 | break; |
850 | default: | 844 | default: |
851 | DRM_ERROR("unknown crtc reloc\n"); | 845 | DRM_ERROR("unknown crtc reloc\n"); |
852 | r = -EINVAL; | 846 | return -EINVAL; |
853 | goto out; | ||
854 | } | 847 | } |
855 | ib[h_idx] = header; | 848 | ib[h_idx] = header; |
856 | ib[h_idx + 4] = AVIVO_D2MODE_VLINE_STATUS >> 2; | 849 | ib[h_idx + 4] = AVIVO_D2MODE_VLINE_STATUS >> 2; |
857 | } | 850 | } |
858 | out: | 851 | |
859 | return r; | 852 | return 0; |
860 | } | 853 | } |
861 | 854 | ||
862 | static int r600_packet0_check(struct radeon_cs_parser *p, | 855 | static int r600_packet0_check(struct radeon_cs_parser *p, |