mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-03 19:26:01 -04:00
drm/amdgpu: Clean up IP version checks in gmcv9.0
Clean up some IP version checks in gmcv9.0 Signed-off-by: Lijo Lazar <lijo.lazar@amd.com> Reviewed-by: Asad Kamal <asad.kamal@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
@@ -411,6 +411,11 @@ static const uint32_t ecc_umc_mcumc_ctrl_mask_addrs[] = {
|
||||
(0x001d43e0 + 0x00001800),
|
||||
};
|
||||
|
||||
static inline bool gmc_v9_0_is_multi_chiplet(struct amdgpu_device *adev)
|
||||
{
|
||||
return !!adev->aid_mask;
|
||||
}
|
||||
|
||||
static int gmc_v9_0_ecc_interrupt_state(struct amdgpu_device *adev,
|
||||
struct amdgpu_irq_src *src,
|
||||
unsigned int type,
|
||||
@@ -647,9 +652,7 @@ static int gmc_v9_0_process_interrupt(struct amdgpu_device *adev,
|
||||
addr, entry->client_id,
|
||||
soc15_ih_clientid_name[entry->client_id]);
|
||||
|
||||
if (amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 3) ||
|
||||
amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 4) ||
|
||||
amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 5, 0))
|
||||
if (gmc_v9_0_is_multi_chiplet(adev))
|
||||
dev_err(adev->dev, " cookie node_id %d fault from die %s%d%s\n",
|
||||
node_id, node_id % 4 == 3 ? "RSV" : "AID", node_id / 4,
|
||||
node_id % 4 == 1 ? ".XCD0" : node_id % 4 == 2 ? ".XCD1" : "");
|
||||
@@ -798,9 +801,7 @@ static bool gmc_v9_0_use_invalidate_semaphore(struct amdgpu_device *adev,
|
||||
uint32_t vmhub)
|
||||
{
|
||||
if (amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 2) ||
|
||||
amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 3) ||
|
||||
amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 4) ||
|
||||
amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 5, 0))
|
||||
gmc_v9_0_is_multi_chiplet(adev))
|
||||
return false;
|
||||
|
||||
return ((vmhub == AMDGPU_MMHUB0(0) ||
|
||||
@@ -1278,9 +1279,8 @@ static void gmc_v9_0_override_vm_pte_flags(struct amdgpu_device *adev,
|
||||
/* Only GFX 9.4.3 APUs associate GPUs with NUMA nodes. Local system
|
||||
* memory can use more efficient MTYPEs.
|
||||
*/
|
||||
if (amdgpu_ip_version(adev, GC_HWIP, 0) != IP_VERSION(9, 4, 3) &&
|
||||
amdgpu_ip_version(adev, GC_HWIP, 0) != IP_VERSION(9, 4, 4) &&
|
||||
amdgpu_ip_version(adev, GC_HWIP, 0) != IP_VERSION(9, 5, 0))
|
||||
if (!(adev->flags & AMD_IS_APU) ||
|
||||
amdgpu_ip_version(adev, GC_HWIP, 0) != IP_VERSION(9, 4, 3))
|
||||
return;
|
||||
|
||||
/* Only direct-mapped memory allows us to determine the NUMA node from
|
||||
@@ -1555,9 +1555,7 @@ static void gmc_v9_0_set_mmhub_ras_funcs(struct amdgpu_device *adev)
|
||||
|
||||
static void gmc_v9_0_set_gfxhub_funcs(struct amdgpu_device *adev)
|
||||
{
|
||||
if (amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 3) ||
|
||||
amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 4) ||
|
||||
amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 5, 0))
|
||||
if (gmc_v9_0_is_multi_chiplet(adev))
|
||||
adev->gfxhub.funcs = &gfxhub_v1_2_funcs;
|
||||
else
|
||||
adev->gfxhub.funcs = &gfxhub_v1_0_funcs;
|
||||
@@ -1624,9 +1622,7 @@ static int gmc_v9_0_early_init(struct amdgpu_ip_block *ip_block)
|
||||
*/
|
||||
if (amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 0) ||
|
||||
amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 1) ||
|
||||
amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 3) ||
|
||||
amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 4) ||
|
||||
amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 5, 0))
|
||||
gmc_v9_0_is_multi_chiplet(adev))
|
||||
adev->gmc.xgmi.supported = true;
|
||||
|
||||
if (amdgpu_ip_version(adev, XGMI_HWIP, 0) == IP_VERSION(6, 1, 0)) {
|
||||
@@ -1635,8 +1631,7 @@ static int gmc_v9_0_early_init(struct amdgpu_ip_block *ip_block)
|
||||
adev->smuio.funcs->is_host_gpu_xgmi_supported(adev);
|
||||
}
|
||||
|
||||
if (amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 3) ||
|
||||
amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 4)) {
|
||||
if (amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 3)) {
|
||||
enum amdgpu_pkg_type pkg_type =
|
||||
adev->smuio.funcs->get_pkg_type(adev);
|
||||
/* On GFXIP 9.4.3. APU, there is no physical VRAM domain present
|
||||
@@ -2077,9 +2072,7 @@ static int gmc_v9_0_sw_init(struct amdgpu_ip_block *ip_block)
|
||||
|
||||
spin_lock_init(&adev->gmc.invalidate_lock);
|
||||
|
||||
if (amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 3) ||
|
||||
amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 4) ||
|
||||
amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 5, 0)) {
|
||||
if (gmc_v9_0_is_multi_chiplet(adev)) {
|
||||
gmc_v9_4_3_init_vram_info(adev);
|
||||
} else if (!adev->bios) {
|
||||
if (adev->flags & AMD_IS_APU) {
|
||||
@@ -2229,9 +2222,7 @@ static int gmc_v9_0_sw_init(struct amdgpu_ip_block *ip_block)
|
||||
|
||||
amdgpu_gmc_get_vbios_allocations(adev);
|
||||
|
||||
if (amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 3) ||
|
||||
amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 4) ||
|
||||
amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 5, 0)) {
|
||||
if (gmc_v9_0_is_multi_chiplet(adev)) {
|
||||
r = gmc_v9_0_init_mem_ranges(adev);
|
||||
if (r)
|
||||
return r;
|
||||
@@ -2260,9 +2251,7 @@ static int gmc_v9_0_sw_init(struct amdgpu_ip_block *ip_block)
|
||||
adev->vm_manager.first_kfd_vmid =
|
||||
(amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 1) ||
|
||||
amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 2) ||
|
||||
amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 3) ||
|
||||
amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 4) ||
|
||||
amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 5, 0)) ?
|
||||
gmc_v9_0_is_multi_chiplet(adev)) ?
|
||||
3 :
|
||||
8;
|
||||
|
||||
@@ -2274,9 +2263,7 @@ static int gmc_v9_0_sw_init(struct amdgpu_ip_block *ip_block)
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
if (amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 3) ||
|
||||
amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 4) ||
|
||||
amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 5, 0))
|
||||
if (gmc_v9_0_is_multi_chiplet(adev))
|
||||
amdgpu_gmc_sysfs_init(adev);
|
||||
|
||||
return 0;
|
||||
@@ -2286,9 +2273,7 @@ static int gmc_v9_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
||||
{
|
||||
struct amdgpu_device *adev = ip_block->adev;
|
||||
|
||||
if (amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 3) ||
|
||||
amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 4) ||
|
||||
amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 5, 0))
|
||||
if (gmc_v9_0_is_multi_chiplet(adev))
|
||||
amdgpu_gmc_sysfs_fini(adev);
|
||||
|
||||
amdgpu_gmc_ras_fini(adev);
|
||||
|
||||
Reference in New Issue
Block a user