Loading drivers/gpu/drm/amd/amdgpu/si.c +136 −4 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ #include "si_dma.h" #include "dce_v6_0.h" #include "si.h" #include "dce_virtual.h" static const u32 tahiti_golden_registers[] = { Loading Loading @@ -1897,6 +1898,74 @@ static const struct amdgpu_ip_block_version verde_ip_blocks[] = }; static const struct amdgpu_ip_block_version verde_ip_blocks_vd[] = { { .type = AMD_IP_BLOCK_TYPE_COMMON, .major = 1, .minor = 0, .rev = 0, .funcs = &si_common_ip_funcs, }, { .type = AMD_IP_BLOCK_TYPE_GMC, .major = 6, .minor = 0, .rev = 0, .funcs = &gmc_v6_0_ip_funcs, }, { .type = AMD_IP_BLOCK_TYPE_IH, .major = 1, .minor = 0, .rev = 0, .funcs = &si_ih_ip_funcs, }, { .type = AMD_IP_BLOCK_TYPE_SMC, .major = 6, .minor = 0, .rev = 0, .funcs = &amdgpu_pp_ip_funcs, }, { .type = AMD_IP_BLOCK_TYPE_DCE, .major = 6, .minor = 0, .rev = 0, .funcs = &dce_virtual_ip_funcs, }, { .type = AMD_IP_BLOCK_TYPE_GFX, .major = 6, .minor = 0, .rev = 0, .funcs = &gfx_v6_0_ip_funcs, }, { .type = AMD_IP_BLOCK_TYPE_SDMA, .major = 1, .minor = 0, .rev = 0, .funcs = &si_dma_ip_funcs, }, /* { .type = AMD_IP_BLOCK_TYPE_UVD, .major = 3, .minor = 1, .rev = 0, .funcs = &si_null_ip_funcs, }, { .type = AMD_IP_BLOCK_TYPE_VCE, .major = 1, .minor = 0, .rev = 0, .funcs = &si_null_ip_funcs, }, */ }; static const struct amdgpu_ip_block_version hainan_ip_blocks[] = { { Loading Loading @@ -1943,6 +2012,59 @@ static const struct amdgpu_ip_block_version hainan_ip_blocks[] = }, }; static const struct amdgpu_ip_block_version hainan_ip_blocks_vd[] = { { .type = AMD_IP_BLOCK_TYPE_COMMON, .major = 1, .minor = 0, .rev = 0, .funcs = &si_common_ip_funcs, }, { .type = AMD_IP_BLOCK_TYPE_GMC, .major = 6, .minor = 0, .rev = 0, .funcs = &gmc_v6_0_ip_funcs, }, { .type = AMD_IP_BLOCK_TYPE_IH, .major = 1, .minor = 0, .rev = 0, .funcs = &si_ih_ip_funcs, }, { .type = AMD_IP_BLOCK_TYPE_SMC, .major = 6, .minor = 0, .rev = 0, .funcs = &amdgpu_pp_ip_funcs, }, { .type = AMD_IP_BLOCK_TYPE_DCE, .major = 1, .minor = 0, .rev = 0, .funcs = &dce_virtual_ip_funcs, }, { .type = AMD_IP_BLOCK_TYPE_GFX, .major = 6, .minor = 0, .rev = 0, .funcs = &gfx_v6_0_ip_funcs, }, { .type = AMD_IP_BLOCK_TYPE_SDMA, .major = 1, .minor = 0, .rev = 0, .funcs = &si_dma_ip_funcs, }, }; int si_set_ip_blocks(struct amdgpu_device *adev) { switch (adev->asic_type) { Loading @@ -1950,12 +2072,22 @@ int si_set_ip_blocks(struct amdgpu_device *adev) case CHIP_TAHITI: case CHIP_PITCAIRN: case CHIP_OLAND: if (adev->enable_virtual_display) { adev->ip_blocks = verde_ip_blocks_vd; adev->num_ip_blocks = ARRAY_SIZE(verde_ip_blocks_vd); } else { adev->ip_blocks = verde_ip_blocks; adev->num_ip_blocks = ARRAY_SIZE(verde_ip_blocks); } break; case CHIP_HAINAN: if (adev->enable_virtual_display) { adev->ip_blocks = hainan_ip_blocks_vd; adev->num_ip_blocks = ARRAY_SIZE(hainan_ip_blocks_vd); } else { adev->ip_blocks = hainan_ip_blocks; adev->num_ip_blocks = ARRAY_SIZE(hainan_ip_blocks); } break; default: BUG(); Loading Loading
drivers/gpu/drm/amd/amdgpu/si.c +136 −4 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ #include "si_dma.h" #include "dce_v6_0.h" #include "si.h" #include "dce_virtual.h" static const u32 tahiti_golden_registers[] = { Loading Loading @@ -1897,6 +1898,74 @@ static const struct amdgpu_ip_block_version verde_ip_blocks[] = }; static const struct amdgpu_ip_block_version verde_ip_blocks_vd[] = { { .type = AMD_IP_BLOCK_TYPE_COMMON, .major = 1, .minor = 0, .rev = 0, .funcs = &si_common_ip_funcs, }, { .type = AMD_IP_BLOCK_TYPE_GMC, .major = 6, .minor = 0, .rev = 0, .funcs = &gmc_v6_0_ip_funcs, }, { .type = AMD_IP_BLOCK_TYPE_IH, .major = 1, .minor = 0, .rev = 0, .funcs = &si_ih_ip_funcs, }, { .type = AMD_IP_BLOCK_TYPE_SMC, .major = 6, .minor = 0, .rev = 0, .funcs = &amdgpu_pp_ip_funcs, }, { .type = AMD_IP_BLOCK_TYPE_DCE, .major = 6, .minor = 0, .rev = 0, .funcs = &dce_virtual_ip_funcs, }, { .type = AMD_IP_BLOCK_TYPE_GFX, .major = 6, .minor = 0, .rev = 0, .funcs = &gfx_v6_0_ip_funcs, }, { .type = AMD_IP_BLOCK_TYPE_SDMA, .major = 1, .minor = 0, .rev = 0, .funcs = &si_dma_ip_funcs, }, /* { .type = AMD_IP_BLOCK_TYPE_UVD, .major = 3, .minor = 1, .rev = 0, .funcs = &si_null_ip_funcs, }, { .type = AMD_IP_BLOCK_TYPE_VCE, .major = 1, .minor = 0, .rev = 0, .funcs = &si_null_ip_funcs, }, */ }; static const struct amdgpu_ip_block_version hainan_ip_blocks[] = { { Loading Loading @@ -1943,6 +2012,59 @@ static const struct amdgpu_ip_block_version hainan_ip_blocks[] = }, }; static const struct amdgpu_ip_block_version hainan_ip_blocks_vd[] = { { .type = AMD_IP_BLOCK_TYPE_COMMON, .major = 1, .minor = 0, .rev = 0, .funcs = &si_common_ip_funcs, }, { .type = AMD_IP_BLOCK_TYPE_GMC, .major = 6, .minor = 0, .rev = 0, .funcs = &gmc_v6_0_ip_funcs, }, { .type = AMD_IP_BLOCK_TYPE_IH, .major = 1, .minor = 0, .rev = 0, .funcs = &si_ih_ip_funcs, }, { .type = AMD_IP_BLOCK_TYPE_SMC, .major = 6, .minor = 0, .rev = 0, .funcs = &amdgpu_pp_ip_funcs, }, { .type = AMD_IP_BLOCK_TYPE_DCE, .major = 1, .minor = 0, .rev = 0, .funcs = &dce_virtual_ip_funcs, }, { .type = AMD_IP_BLOCK_TYPE_GFX, .major = 6, .minor = 0, .rev = 0, .funcs = &gfx_v6_0_ip_funcs, }, { .type = AMD_IP_BLOCK_TYPE_SDMA, .major = 1, .minor = 0, .rev = 0, .funcs = &si_dma_ip_funcs, }, }; int si_set_ip_blocks(struct amdgpu_device *adev) { switch (adev->asic_type) { Loading @@ -1950,12 +2072,22 @@ int si_set_ip_blocks(struct amdgpu_device *adev) case CHIP_TAHITI: case CHIP_PITCAIRN: case CHIP_OLAND: if (adev->enable_virtual_display) { adev->ip_blocks = verde_ip_blocks_vd; adev->num_ip_blocks = ARRAY_SIZE(verde_ip_blocks_vd); } else { adev->ip_blocks = verde_ip_blocks; adev->num_ip_blocks = ARRAY_SIZE(verde_ip_blocks); } break; case CHIP_HAINAN: if (adev->enable_virtual_display) { adev->ip_blocks = hainan_ip_blocks_vd; adev->num_ip_blocks = ARRAY_SIZE(hainan_ip_blocks_vd); } else { adev->ip_blocks = hainan_ip_blocks; adev->num_ip_blocks = ARRAY_SIZE(hainan_ip_blocks); } break; default: BUG(); Loading