#define FAMILY_RV 0x8E
#define FAMILY_NV 0x8F
#define FAMILY_VGH 0x90
+#define FAMILY_YC 0x92
// AMDGPU_FAMILY_IS(familyId, familyName)
#define FAMILY_IS(f, fn) (f == FAMILY_##fn)
#define FAMILY_IS_AI(f) FAMILY_IS(f, AI)
#define FAMILY_IS_RV(f) FAMILY_IS(f, RV)
#define FAMILY_IS_NV(f) FAMILY_IS(f, NV)
+#define FAMILY_IS_YC(f) FAMILY_IS(f, YC)
#define AMDGPU_UNKNOWN 0xFF
#define AMDGPU_VANGOGH_RANGE 0x01, 0xFF
+#define AMDGPU_YELLOW_CARP_RANGE 0x01, 0xFF
+
#define AMDGPU_EXPAND_FIX(x) x
#define AMDGPU_RANGE_HELPER(val, min, max) ((val >= min) && (val < max))
#define AMDGPU_IN_RANGE(val, ...) AMDGPU_EXPAND_FIX(AMDGPU_RANGE_HELPER(val, __VA_ARGS__))
#define ASICREV_IS_VANGOGH(r) ASICREV_IS(r, VANGOGH)
+#define ASICREV_IS_YELLOW_CARP(r) ASICREV_IS(r, YELLOW_CARP)
+
#endif // _AMDGPU_ASIC_ADDR_H
{
ADDR_ASSERT(!"Unknown chip revision");
}
+
+ break;
+
+ case FAMILY_YC:
+ if (ASICREV_IS_YELLOW_CARP(chipRevision))
+ {
+ m_settings.supportRbPlus = 1;
+ m_settings.dccUnsup3DSwDis = 0;
+ }
+ else
+ {
+ ADDR_ASSERT(!"Unknown chip revision");
+ }
+
break;
default:
case FAMILY_VGH:
identify_chip(VANGOGH);
break;
+ case FAMILY_YC:
+ identify_chip(YELLOW_CARP);
+ break;
}
if (!info->name) {
* DCC is enabled (ie. WRITE_COMPRESS_ENABLE should be 0).
*/
info->has_image_load_dcc_bug = info->family == CHIP_DIMGREY_CAVEFISH ||
- info->family == CHIP_VANGOGH;
+ info->family == CHIP_VANGOGH ||
+ info->family == CHIP_YELLOW_CARP;
/* DB has a bug when ITERATE_256 is set to 1 that can cause a hang. The
* workaround is to set DECOMPRESS_ON_Z_PLANES to 2 for 4X MSAA D/S images.
pc_lines = 512;
break;
case CHIP_VANGOGH:
+ case CHIP_YELLOW_CARP:
pc_lines = 256;
break;
default:
case CHIP_NAVY_FLOUNDER:
case CHIP_DIMGREY_CAVEFISH:
case CHIP_VANGOGH:
+ case CHIP_YELLOW_CARP:
dec->reg.data0 = RDECODE_VCN2_5_GPCOM_VCPU_DATA0;
dec->reg.data1 = RDECODE_VCN2_5_GPCOM_VCPU_DATA1;
dec->reg.cmd = RDECODE_VCN2_5_GPCOM_VCPU_CMD;
switch (param) {
case PIPE_VIDEO_CAP_SUPPORTED:
+ if (codec < PIPE_VIDEO_FORMAT_MPEG4_AVC &&
+ sscreen->info.family >= CHIP_YELLOW_CARP)
+ return false;
switch (codec) {
case PIPE_VIDEO_FORMAT_MPEG12:
return profile != PIPE_VIDEO_PROFILE_MPEG1;