OSDN Git Service

drm/amdgpu: Added support for MV packet
authorJames Zhu <James.Zhu@amd.com>
Tue, 3 Apr 2018 14:41:32 +0000 (10:41 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 11 Apr 2018 18:08:02 +0000 (13:08 -0500)
Motion vector packet needs support in physical mode.

Signed-off-by: James Zhu <James.Zhu@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c

index a33804b..d7261e0 100644 (file)
@@ -755,6 +755,18 @@ int amdgpu_vce_ring_parse_cs(struct amdgpu_cs_parser *p, uint32_t ib_idx)
                        if (r)
                                goto out;
                        break;
+
+               case 0x0500000d: /* MV buffer */
+                       r = amdgpu_vce_validate_bo(p, ib_idx, idx + 3,
+                                                       idx + 2, 0, 0);
+                       if (r)
+                               goto out;
+
+                       r = amdgpu_vce_validate_bo(p, ib_idx, idx + 8,
+                                                       idx + 7, 0, 0);
+                       if (r)
+                               goto out;
+                       break;
                }
 
                idx += len / 4;
@@ -860,6 +872,18 @@ int amdgpu_vce_ring_parse_cs(struct amdgpu_cs_parser *p, uint32_t ib_idx)
                                goto out;
                        break;
 
+               case 0x0500000d: /* MV buffer */
+                       r = amdgpu_vce_cs_reloc(p, ib_idx, idx + 3,
+                                                       idx + 2, *size, 0);
+                       if (r)
+                               goto out;
+
+                       r = amdgpu_vce_cs_reloc(p, ib_idx, idx + 8,
+                                                       idx + 7, *size / 12, 0);
+                       if (r)
+                               goto out;
+                       break;
+
                default:
                        DRM_ERROR("invalid VCE command (0x%x)!\n", cmd);
                        r = -EINVAL;