diff options
| author | Alex Deucher <alexander.deucher@amd.com> | 2012-01-12 15:42:37 -0500 |
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2012-01-13 04:00:16 -0500 |
| commit | 0b41da60c0393d3c7b75b6c898fa1ee7c24a40db (patch) | |
| tree | f31e8c27b06954913ac150bd7e43792c1ab1fb3e /drivers/gpu | |
| parent | 0e1133157986340e80a1c65ebf3bd20b74eb8075 (diff) | |
drm/radeon/kms/ni: fix packet2 handling for VM IB parser
Packet2 is only one dword.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu')
| -rw-r--r-- | drivers/gpu/drm/radeon/evergreen_cs.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/radeon/evergreen_cs.c b/drivers/gpu/drm/radeon/evergreen_cs.c index f7442e62c03f..8e8cd85e5c00 100644 --- a/drivers/gpu/drm/radeon/evergreen_cs.c +++ b/drivers/gpu/drm/radeon/evergreen_cs.c | |||
| @@ -1793,10 +1793,12 @@ int evergreen_ib_parse(struct radeon_device *rdev, struct radeon_ib *ib) | |||
| 1793 | ret = -EINVAL; | 1793 | ret = -EINVAL; |
| 1794 | break; | 1794 | break; |
| 1795 | case PACKET_TYPE2: | 1795 | case PACKET_TYPE2: |
| 1796 | idx += 1; | ||
| 1796 | break; | 1797 | break; |
| 1797 | case PACKET_TYPE3: | 1798 | case PACKET_TYPE3: |
| 1798 | pkt.opcode = CP_PACKET3_GET_OPCODE(ib->ptr[idx]); | 1799 | pkt.opcode = CP_PACKET3_GET_OPCODE(ib->ptr[idx]); |
| 1799 | ret = evergreen_vm_packet3_check(rdev, ib->ptr, &pkt); | 1800 | ret = evergreen_vm_packet3_check(rdev, ib->ptr, &pkt); |
| 1801 | idx += pkt.count + 2; | ||
| 1800 | break; | 1802 | break; |
| 1801 | default: | 1803 | default: |
| 1802 | dev_err(rdev->dev, "Unknown packet type %d !\n", pkt.type); | 1804 | dev_err(rdev->dev, "Unknown packet type %d !\n", pkt.type); |
| @@ -1805,7 +1807,6 @@ int evergreen_ib_parse(struct radeon_device *rdev, struct radeon_ib *ib) | |||
| 1805 | } | 1807 | } |
| 1806 | if (ret) | 1808 | if (ret) |
| 1807 | break; | 1809 | break; |
| 1808 | idx += pkt.count + 2; | ||
| 1809 | } while (idx < ib->length_dw); | 1810 | } while (idx < ib->length_dw); |
| 1810 | 1811 | ||
| 1811 | return ret; | 1812 | return ret; |
