#ifdef KFD_SUPPORT_IOMMU_V2
 static const struct kfd_device_info kaveri_device_info = {
-       .asic_family = CHIP_KAVERI,
        .asic_name = "kaveri",
        .gfx_target_version = 70000,
        .max_pasid_bits = 16,
 };
 
 static const struct kfd_device_info carrizo_device_info = {
-       .asic_family = CHIP_CARRIZO,
        .asic_name = "carrizo",
        .gfx_target_version = 80001,
        .max_pasid_bits = 16,
 };
 
 static const struct kfd_device_info raven_device_info = {
-       .asic_family = CHIP_RAVEN,
        .asic_name = "raven",
        .gfx_target_version = 90002,
        .max_pasid_bits = 16,
 
 #ifdef CONFIG_DRM_AMDGPU_CIK
 static const struct kfd_device_info hawaii_device_info = {
-       .asic_family = CHIP_HAWAII,
        .asic_name = "hawaii",
        .gfx_target_version = 70001,
        .max_pasid_bits = 16,
 #endif
 
 static const struct kfd_device_info tonga_device_info = {
-       .asic_family = CHIP_TONGA,
        .asic_name = "tonga",
        .gfx_target_version = 80002,
        .max_pasid_bits = 16,
 };
 
 static const struct kfd_device_info fiji_device_info = {
-       .asic_family = CHIP_FIJI,
        .asic_name = "fiji",
        .gfx_target_version = 80003,
        .max_pasid_bits = 16,
 };
 
 static const struct kfd_device_info fiji_vf_device_info = {
-       .asic_family = CHIP_FIJI,
        .asic_name = "fiji",
        .gfx_target_version = 80003,
        .max_pasid_bits = 16,
 
 
 static const struct kfd_device_info polaris10_device_info = {
-       .asic_family = CHIP_POLARIS10,
        .asic_name = "polaris10",
        .gfx_target_version = 80003,
        .max_pasid_bits = 16,
 };
 
 static const struct kfd_device_info polaris10_vf_device_info = {
-       .asic_family = CHIP_POLARIS10,
        .asic_name = "polaris10",
        .gfx_target_version = 80003,
        .max_pasid_bits = 16,
 };
 
 static const struct kfd_device_info polaris11_device_info = {
-       .asic_family = CHIP_POLARIS11,
        .asic_name = "polaris11",
        .gfx_target_version = 80003,
        .max_pasid_bits = 16,
 };
 
 static const struct kfd_device_info polaris12_device_info = {
-       .asic_family = CHIP_POLARIS12,
        .asic_name = "polaris12",
        .gfx_target_version = 80003,
        .max_pasid_bits = 16,
 };
 
 static const struct kfd_device_info vegam_device_info = {
-       .asic_family = CHIP_VEGAM,
        .asic_name = "vegam",
        .gfx_target_version = 80003,
        .max_pasid_bits = 16,
 };
 
 static const struct kfd_device_info vega10_device_info = {
-       .asic_family = CHIP_VEGA10,
        .asic_name = "vega10",
        .gfx_target_version = 90000,
        .max_pasid_bits = 16,
 };
 
 static const struct kfd_device_info vega10_vf_device_info = {
-       .asic_family = CHIP_VEGA10,
        .asic_name = "vega10",
        .gfx_target_version = 90000,
        .max_pasid_bits = 16,
 };
 
 static const struct kfd_device_info vega12_device_info = {
-       .asic_family = CHIP_VEGA12,
        .asic_name = "vega12",
        .gfx_target_version = 90004,
        .max_pasid_bits = 16,
 };
 
 static const struct kfd_device_info vega20_device_info = {
-       .asic_family = CHIP_VEGA20,
        .asic_name = "vega20",
        .gfx_target_version = 90006,
        .max_pasid_bits = 16,
 };
 
 static const struct kfd_device_info arcturus_device_info = {
-       .asic_family = CHIP_ARCTURUS,
        .asic_name = "arcturus",
        .gfx_target_version = 90008,
        .max_pasid_bits = 16,
 };
 
 static const struct kfd_device_info aldebaran_device_info = {
-       .asic_family = CHIP_ALDEBARAN,
        .asic_name = "aldebaran",
        .gfx_target_version = 90010,
        .max_pasid_bits = 16,
 };
 
 static const struct kfd_device_info renoir_device_info = {
-       .asic_family = CHIP_RENOIR,
        .asic_name = "renoir",
        .gfx_target_version = 90012,
        .max_pasid_bits = 16,
 };
 
 static const struct kfd_device_info navi10_device_info = {
-       .asic_family = CHIP_NAVI10,
        .asic_name = "navi10",
        .gfx_target_version = 100100,
        .max_pasid_bits = 16,
 };
 
 static const struct kfd_device_info navi12_device_info = {
-       .asic_family = CHIP_NAVI12,
        .asic_name = "navi12",
        .gfx_target_version = 100101,
        .max_pasid_bits = 16,
 };
 
 static const struct kfd_device_info navi14_device_info = {
-       .asic_family = CHIP_NAVI14,
        .asic_name = "navi14",
        .gfx_target_version = 100102,
        .max_pasid_bits = 16,
 };
 
 static const struct kfd_device_info sienna_cichlid_device_info = {
-       .asic_family = CHIP_SIENNA_CICHLID,
        .asic_name = "sienna_cichlid",
        .gfx_target_version = 100300,
        .max_pasid_bits = 16,
 };
 
 static const struct kfd_device_info navy_flounder_device_info = {
-       .asic_family = CHIP_NAVY_FLOUNDER,
        .asic_name = "navy_flounder",
        .gfx_target_version = 100301,
        .max_pasid_bits = 16,
 };
 
 static const struct kfd_device_info vangogh_device_info = {
-       .asic_family = CHIP_VANGOGH,
        .asic_name = "vangogh",
        .gfx_target_version = 100303,
        .max_pasid_bits = 16,
 };
 
 static const struct kfd_device_info dimgrey_cavefish_device_info = {
-       .asic_family = CHIP_DIMGREY_CAVEFISH,
        .asic_name = "dimgrey_cavefish",
        .gfx_target_version = 100302,
        .max_pasid_bits = 16,
 };
 
 static const struct kfd_device_info beige_goby_device_info = {
-       .asic_family = CHIP_BEIGE_GOBY,
        .asic_name = "beige_goby",
        .gfx_target_version = 100304,
        .max_pasid_bits = 16,
 };
 
 static const struct kfd_device_info yellow_carp_device_info = {
-       .asic_family = CHIP_YELLOW_CARP,
        .asic_name = "yellow_carp",
        .gfx_target_version = 100305,
        .max_pasid_bits = 16,
 };
 
 static const struct kfd_device_info cyan_skillfish_device_info = {
-       .asic_family = CHIP_CYAN_SKILLFISH,
        .asic_name = "cyan_skillfish",
        .gfx_target_version = 100103,
        .max_pasid_bits = 16,
 
                                struct queue *q)
 {
        /* On GFX v7, CP doesn't flush TC at dequeue */
-       if (q->device->device_info->asic_family == CHIP_HAWAII)
+       if (q->device->adev->asic_type == CHIP_HAWAII)
                if (flush_texture_cache_nocpsch(q->device, qpd))
                        pr_err("Failed to flush TC\n");
 
        pr_info("SW scheduler is used");
        init_interrupts(dqm);
        
-       if (dqm->dev->device_info->asic_family == CHIP_HAWAII)
+       if (dqm->dev->adev->asic_type == CHIP_HAWAII)
                return pm_init(&dqm->packet_mgr, dqm);
        dqm->sched_running = true;
 
 
 static int stop_nocpsch(struct device_queue_manager *dqm)
 {
-       if (dqm->dev->device_info->asic_family == CHIP_HAWAII)
+       if (dqm->dev->adev->asic_type == CHIP_HAWAII)
                pm_uninit(&dqm->packet_mgr, false);
        dqm->sched_running = false;
 
        if (!dqm)
                return NULL;
 
-       switch (dev->device_info->asic_family) {
+       switch (dev->adev->asic_type) {
        /* HWS is not available on Hawaii. */
        case CHIP_HAWAII:
        /* HWS depends on CWSR for timely dequeue. CWSR is not
                goto out_free;
        }
 
-       switch (dev->device_info->asic_family) {
+       switch (dev->adev->asic_type) {
        case CHIP_CARRIZO:
                device_queue_manager_init_vi(&dqm->asic_ops);
                break;
                        device_queue_manager_init_v9(&dqm->asic_ops);
                else {
                        WARN(1, "Unexpected ASIC family %u",
-                            dev->device_info->asic_family);
+                            dev->adev->asic_type);
                        goto out_free;
                }
        }
 
                                HSA_CAP_WATCH_POINTS_TOTALBITS_MASK);
                }
 
-               if (dev->gpu->device_info->asic_family == CHIP_TONGA)
+               if (dev->gpu->adev->asic_type == CHIP_TONGA)
                        dev->node_props.capability |=
                                        HSA_CAP_AQL_QUEUE_DOUBLE_MAP;
 
        /* set gpu (dev) flags. */
        } else {
                if (!dev->gpu->pci_atomic_requested ||
-                               dev->gpu->device_info->asic_family ==
-                                                       CHIP_HAWAII)
+                               dev->gpu->adev->asic_type == CHIP_HAWAII)
                        link->flags |= CRAT_IOLINK_FLAGS_NO_ATOMICS_32_BIT |
                                CRAT_IOLINK_FLAGS_NO_ATOMICS_64_BIT;
        }
        kfd_fill_mem_clk_max_info(dev);
        kfd_fill_iolink_non_crat_info(dev);
 
-       switch (dev->gpu->device_info->asic_family) {
+       switch (dev->gpu->adev->asic_type) {
        case CHIP_KAVERI:
        case CHIP_HAWAII:
        case CHIP_TONGA:
                                HSA_CAP_DOORBELL_TYPE_TOTALBITS_MASK);
                else
                        WARN(1, "Unexpected ASIC family %u",
-                            dev->gpu->device_info->asic_family);
+                            dev->gpu->adev->asic_type);
        }
 
        /*
         *              because it doesn't consider masked out CUs
         * max_waves_per_simd: Carrizo reports wrong max_waves_per_simd
         */
-       if (dev->gpu->device_info->asic_family == CHIP_CARRIZO) {
+       if (dev->gpu->adev->asic_type == CHIP_CARRIZO) {
                dev->node_props.simd_count =
                        cu_info.simd_per_cu * cu_info.cu_active_number;
                dev->node_props.max_waves_per_simd = 10;