AMD_RESET_METHOD_PCI,
};
+#define AMDGPU_VIDEO_CODEC_TYPE_MPEG2 0
+#define AMDGPU_VIDEO_CODEC_TYPE_MPEG4 1
+#define AMDGPU_VIDEO_CODEC_TYPE_VC1 2
+#define AMDGPU_VIDEO_CODEC_TYPE_MPEG4_AVC 3
+#define AMDGPU_VIDEO_CODEC_TYPE_HEVC 4
+#define AMDGPU_VIDEO_CODEC_TYPE_JPEG 5
+#define AMDGPU_VIDEO_CODEC_TYPE_VP9 6
+#define AMDGPU_VIDEO_CODEC_TYPE_AV1 7
+
+struct amdgpu_video_codec_info {
+ u32 codec_type;
+ u32 max_width;
+ u32 max_height;
+ u32 max_pixels_per_frame;
+ u32 max_level;
+};
+
+struct amdgpu_video_codecs {
+ const u32 codec_count;
+ const struct amdgpu_video_codec_info *codec_array;
+};
+
/*
* ASIC specific functions.
*/
void (*pre_asic_init)(struct amdgpu_device *adev);
/* enter/exit umd stable pstate */
int (*update_umd_stable_pstate)(struct amdgpu_device *adev, bool enter);
+ /* query video codecs */
+ int (*query_video_codecs)(struct amdgpu_device *adev, bool encode,
+ const struct amdgpu_video_codecs **codecs);
};
/*
#define amdgpu_asic_pre_asic_init(adev) (adev)->asic_funcs->pre_asic_init((adev))
#define amdgpu_asic_update_umd_stable_pstate(adev, enter) \
((adev)->asic_funcs->update_umd_stable_pstate ? (adev)->asic_funcs->update_umd_stable_pstate((adev), (enter)) : 0)
+#define amdgpu_asic_query_video_codecs(adev, e, c) (adev)->asic_funcs->query_video_codecs((adev), (e), (c))
#define amdgpu_inc_vram_lost(adev) atomic_inc(&((adev)->vram_lost_counter));