hc
2024-05-10 cde9070d9970eef1f7ec2360586c802a16230ad8
kernel/drivers/gpu/drm/amd/amdgpu/cik.c
....@@ -24,7 +24,8 @@
2424 #include <linux/firmware.h>
2525 #include <linux/slab.h>
2626 #include <linux/module.h>
27
-#include <drm/drmP.h>
27
+#include <linux/pci.h>
28
+
2829 #include "amdgpu.h"
2930 #include "amdgpu_atombios.h"
3031 #include "amdgpu_ih.h"
....@@ -965,6 +966,25 @@
965966
966967 static const struct amdgpu_allowed_register_entry cik_allowed_read_registers[] = {
967968 {mmGRBM_STATUS},
969
+ {mmGRBM_STATUS2},
970
+ {mmGRBM_STATUS_SE0},
971
+ {mmGRBM_STATUS_SE1},
972
+ {mmGRBM_STATUS_SE2},
973
+ {mmGRBM_STATUS_SE3},
974
+ {mmSRBM_STATUS},
975
+ {mmSRBM_STATUS2},
976
+ {mmSDMA0_STATUS_REG + SDMA0_REGISTER_OFFSET},
977
+ {mmSDMA0_STATUS_REG + SDMA1_REGISTER_OFFSET},
978
+ {mmCP_STAT},
979
+ {mmCP_STALLED_STAT1},
980
+ {mmCP_STALLED_STAT2},
981
+ {mmCP_STALLED_STAT3},
982
+ {mmCP_CPF_BUSY_STAT},
983
+ {mmCP_CPF_STALLED_STAT1},
984
+ {mmCP_CPF_STATUS},
985
+ {mmCP_CPC_BUSY_STAT},
986
+ {mmCP_CPC_STALLED_STAT1},
987
+ {mmCP_CPC_STATUS},
968988 {mmGB_ADDR_CONFIG},
969989 {mmMC_ARB_RAMCFG},
970990 {mmGB_TILE_MODE0},
....@@ -1269,6 +1289,72 @@
12691289 }
12701290
12711291 /**
1292
+ * cik_asic_pci_config_reset - soft reset GPU
1293
+ *
1294
+ * @adev: amdgpu_device pointer
1295
+ *
1296
+ * Use PCI Config method to reset the GPU.
1297
+ *
1298
+ * Returns 0 for success.
1299
+ */
1300
+static int cik_asic_pci_config_reset(struct amdgpu_device *adev)
1301
+{
1302
+ int r;
1303
+
1304
+ amdgpu_atombios_scratch_regs_engine_hung(adev, true);
1305
+
1306
+ r = cik_gpu_pci_config_reset(adev);
1307
+
1308
+ amdgpu_atombios_scratch_regs_engine_hung(adev, false);
1309
+
1310
+ return r;
1311
+}
1312
+
1313
+static bool cik_asic_supports_baco(struct amdgpu_device *adev)
1314
+{
1315
+ switch (adev->asic_type) {
1316
+ case CHIP_BONAIRE:
1317
+ case CHIP_HAWAII:
1318
+ return amdgpu_dpm_is_baco_supported(adev);
1319
+ default:
1320
+ return false;
1321
+ }
1322
+}
1323
+
1324
+static enum amd_reset_method
1325
+cik_asic_reset_method(struct amdgpu_device *adev)
1326
+{
1327
+ bool baco_reset;
1328
+
1329
+ if (amdgpu_reset_method == AMD_RESET_METHOD_LEGACY ||
1330
+ amdgpu_reset_method == AMD_RESET_METHOD_BACO)
1331
+ return amdgpu_reset_method;
1332
+
1333
+ if (amdgpu_reset_method != -1)
1334
+ dev_warn(adev->dev, "Specified reset:%d isn't supported, using AUTO instead.\n",
1335
+ amdgpu_reset_method);
1336
+
1337
+ switch (adev->asic_type) {
1338
+ case CHIP_BONAIRE:
1339
+ /* disable baco reset until it works */
1340
+ /* smu7_asic_get_baco_capability(adev, &baco_reset); */
1341
+ baco_reset = false;
1342
+ break;
1343
+ case CHIP_HAWAII:
1344
+ baco_reset = cik_asic_supports_baco(adev);
1345
+ break;
1346
+ default:
1347
+ baco_reset = false;
1348
+ break;
1349
+ }
1350
+
1351
+ if (baco_reset)
1352
+ return AMD_RESET_METHOD_BACO;
1353
+ else
1354
+ return AMD_RESET_METHOD_LEGACY;
1355
+}
1356
+
1357
+/**
12721358 * cik_asic_reset - soft reset GPU
12731359 *
12741360 * @adev: amdgpu_device pointer
....@@ -1281,11 +1367,13 @@
12811367 {
12821368 int r;
12831369
1284
- amdgpu_atombios_scratch_regs_engine_hung(adev, true);
1285
-
1286
- r = cik_gpu_pci_config_reset(adev);
1287
-
1288
- amdgpu_atombios_scratch_regs_engine_hung(adev, false);
1370
+ if (cik_asic_reset_method(adev) == AMD_RESET_METHOD_BACO) {
1371
+ dev_info(adev->dev, "BACO reset\n");
1372
+ r = amdgpu_dpm_baco_reset(adev);
1373
+ } else {
1374
+ dev_info(adev->dev, "PCI CONFIG reset\n");
1375
+ r = cik_asic_pci_config_reset(adev);
1376
+ }
12891377
12901378 return r;
12911379 }
....@@ -1377,7 +1465,6 @@
13771465 static void cik_pcie_gen3_enable(struct amdgpu_device *adev)
13781466 {
13791467 struct pci_dev *root = adev->pdev->bus->self;
1380
- int bridge_pos, gpu_pos;
13811468 u32 speed_cntl, current_data_rate;
13821469 int i;
13831470 u16 tmp16;
....@@ -1412,12 +1499,7 @@
14121499 DRM_INFO("enabling PCIE gen 2 link speeds, disable with amdgpu.pcie_gen2=0\n");
14131500 }
14141501
1415
- bridge_pos = pci_pcie_cap(root);
1416
- if (!bridge_pos)
1417
- return;
1418
-
1419
- gpu_pos = pci_pcie_cap(adev->pdev);
1420
- if (!gpu_pos)
1502
+ if (!pci_is_pcie(root) || !pci_is_pcie(adev->pdev))
14211503 return;
14221504
14231505 if (adev->pm.pcie_gen_mask & CAIL_PCIE_LINK_SPEED_SUPPORT_GEN3) {
....@@ -1427,14 +1509,8 @@
14271509 u16 bridge_cfg2, gpu_cfg2;
14281510 u32 max_lw, current_lw, tmp;
14291511
1430
- pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL, &bridge_cfg);
1431
- pci_read_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL, &gpu_cfg);
1432
-
1433
- tmp16 = bridge_cfg | PCI_EXP_LNKCTL_HAWD;
1434
- pci_write_config_word(root, bridge_pos + PCI_EXP_LNKCTL, tmp16);
1435
-
1436
- tmp16 = gpu_cfg | PCI_EXP_LNKCTL_HAWD;
1437
- pci_write_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL, tmp16);
1512
+ pcie_capability_set_word(root, PCI_EXP_LNKCTL, PCI_EXP_LNKCTL_HAWD);
1513
+ pcie_capability_set_word(adev->pdev, PCI_EXP_LNKCTL, PCI_EXP_LNKCTL_HAWD);
14381514
14391515 tmp = RREG32_PCIE(ixPCIE_LC_STATUS1);
14401516 max_lw = (tmp & PCIE_LC_STATUS1__LC_DETECTED_LINK_WIDTH_MASK) >>
....@@ -1458,15 +1534,23 @@
14581534
14591535 for (i = 0; i < 10; i++) {
14601536 /* check status */
1461
- pci_read_config_word(adev->pdev, gpu_pos + PCI_EXP_DEVSTA, &tmp16);
1537
+ pcie_capability_read_word(adev->pdev,
1538
+ PCI_EXP_DEVSTA,
1539
+ &tmp16);
14621540 if (tmp16 & PCI_EXP_DEVSTA_TRPND)
14631541 break;
14641542
1465
- pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL, &bridge_cfg);
1466
- pci_read_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL, &gpu_cfg);
1543
+ pcie_capability_read_word(root, PCI_EXP_LNKCTL,
1544
+ &bridge_cfg);
1545
+ pcie_capability_read_word(adev->pdev,
1546
+ PCI_EXP_LNKCTL,
1547
+ &gpu_cfg);
14671548
1468
- pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL2, &bridge_cfg2);
1469
- pci_read_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL2, &gpu_cfg2);
1549
+ pcie_capability_read_word(root, PCI_EXP_LNKCTL2,
1550
+ &bridge_cfg2);
1551
+ pcie_capability_read_word(adev->pdev,
1552
+ PCI_EXP_LNKCTL2,
1553
+ &gpu_cfg2);
14701554
14711555 tmp = RREG32_PCIE(ixPCIE_LC_CNTL4);
14721556 tmp |= PCIE_LC_CNTL4__LC_SET_QUIESCE_MASK;
....@@ -1479,26 +1563,38 @@
14791563 msleep(100);
14801564
14811565 /* linkctl */
1482
- pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL, &tmp16);
1483
- tmp16 &= ~PCI_EXP_LNKCTL_HAWD;
1484
- tmp16 |= (bridge_cfg & PCI_EXP_LNKCTL_HAWD);
1485
- pci_write_config_word(root, bridge_pos + PCI_EXP_LNKCTL, tmp16);
1486
-
1487
- pci_read_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL, &tmp16);
1488
- tmp16 &= ~PCI_EXP_LNKCTL_HAWD;
1489
- tmp16 |= (gpu_cfg & PCI_EXP_LNKCTL_HAWD);
1490
- pci_write_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL, tmp16);
1566
+ pcie_capability_clear_and_set_word(root, PCI_EXP_LNKCTL,
1567
+ PCI_EXP_LNKCTL_HAWD,
1568
+ bridge_cfg &
1569
+ PCI_EXP_LNKCTL_HAWD);
1570
+ pcie_capability_clear_and_set_word(adev->pdev, PCI_EXP_LNKCTL,
1571
+ PCI_EXP_LNKCTL_HAWD,
1572
+ gpu_cfg &
1573
+ PCI_EXP_LNKCTL_HAWD);
14911574
14921575 /* linkctl2 */
1493
- pci_read_config_word(root, bridge_pos + PCI_EXP_LNKCTL2, &tmp16);
1494
- tmp16 &= ~((1 << 4) | (7 << 9));
1495
- tmp16 |= (bridge_cfg2 & ((1 << 4) | (7 << 9)));
1496
- pci_write_config_word(root, bridge_pos + PCI_EXP_LNKCTL2, tmp16);
1576
+ pcie_capability_read_word(root, PCI_EXP_LNKCTL2,
1577
+ &tmp16);
1578
+ tmp16 &= ~(PCI_EXP_LNKCTL2_ENTER_COMP |
1579
+ PCI_EXP_LNKCTL2_TX_MARGIN);
1580
+ tmp16 |= (bridge_cfg2 &
1581
+ (PCI_EXP_LNKCTL2_ENTER_COMP |
1582
+ PCI_EXP_LNKCTL2_TX_MARGIN));
1583
+ pcie_capability_write_word(root,
1584
+ PCI_EXP_LNKCTL2,
1585
+ tmp16);
14971586
1498
- pci_read_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL2, &tmp16);
1499
- tmp16 &= ~((1 << 4) | (7 << 9));
1500
- tmp16 |= (gpu_cfg2 & ((1 << 4) | (7 << 9)));
1501
- pci_write_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL2, tmp16);
1587
+ pcie_capability_read_word(adev->pdev,
1588
+ PCI_EXP_LNKCTL2,
1589
+ &tmp16);
1590
+ tmp16 &= ~(PCI_EXP_LNKCTL2_ENTER_COMP |
1591
+ PCI_EXP_LNKCTL2_TX_MARGIN);
1592
+ tmp16 |= (gpu_cfg2 &
1593
+ (PCI_EXP_LNKCTL2_ENTER_COMP |
1594
+ PCI_EXP_LNKCTL2_TX_MARGIN));
1595
+ pcie_capability_write_word(adev->pdev,
1596
+ PCI_EXP_LNKCTL2,
1597
+ tmp16);
15021598
15031599 tmp = RREG32_PCIE(ixPCIE_LC_CNTL4);
15041600 tmp &= ~PCIE_LC_CNTL4__LC_SET_QUIESCE_MASK;
....@@ -1513,15 +1609,16 @@
15131609 speed_cntl &= ~PCIE_LC_SPEED_CNTL__LC_FORCE_DIS_SW_SPEED_CHANGE_MASK;
15141610 WREG32_PCIE(ixPCIE_LC_SPEED_CNTL, speed_cntl);
15151611
1516
- pci_read_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL2, &tmp16);
1517
- tmp16 &= ~0xf;
1612
+ pcie_capability_read_word(adev->pdev, PCI_EXP_LNKCTL2, &tmp16);
1613
+ tmp16 &= ~PCI_EXP_LNKCTL2_TLS;
1614
+
15181615 if (adev->pm.pcie_gen_mask & CAIL_PCIE_LINK_SPEED_SUPPORT_GEN3)
1519
- tmp16 |= 3; /* gen3 */
1616
+ tmp16 |= PCI_EXP_LNKCTL2_TLS_8_0GT; /* gen3 */
15201617 else if (adev->pm.pcie_gen_mask & CAIL_PCIE_LINK_SPEED_SUPPORT_GEN2)
1521
- tmp16 |= 2; /* gen2 */
1618
+ tmp16 |= PCI_EXP_LNKCTL2_TLS_5_0GT; /* gen2 */
15221619 else
1523
- tmp16 |= 1; /* gen1 */
1524
- pci_write_config_word(adev->pdev, gpu_pos + PCI_EXP_LNKCTL2, tmp16);
1620
+ tmp16 |= PCI_EXP_LNKCTL2_TLS_2_5GT; /* gen1 */
1621
+ pcie_capability_write_word(adev->pdev, PCI_EXP_LNKCTL2, tmp16);
15251622
15261623 speed_cntl = RREG32_PCIE(ixPCIE_LC_SPEED_CNTL);
15271624 speed_cntl |= PCIE_LC_SPEED_CNTL__LC_INITIATE_LINK_SPEED_CHANGE_MASK;
....@@ -1708,12 +1805,6 @@
17081805 >> CC_DRM_ID_STRAPS__ATI_REV_ID__SHIFT;
17091806 }
17101807
1711
-static void cik_detect_hw_virtualization(struct amdgpu_device *adev)
1712
-{
1713
- if (is_virtual_machine()) /* passthrough mode */
1714
- adev->virt.caps |= AMDGPU_PASSTHROUGH_MODE;
1715
-}
1716
-
17171808 static void cik_flush_hdp(struct amdgpu_device *adev, struct amdgpu_ring *ring)
17181809 {
17191810 if (!ring || !ring->funcs->emit_wreg) {
....@@ -1741,12 +1832,92 @@
17411832 return true;
17421833 }
17431834
1835
+static void cik_get_pcie_usage(struct amdgpu_device *adev, uint64_t *count0,
1836
+ uint64_t *count1)
1837
+{
1838
+ uint32_t perfctr = 0;
1839
+ uint64_t cnt0_of, cnt1_of;
1840
+ int tmp;
1841
+
1842
+ /* This reports 0 on APUs, so return to avoid writing/reading registers
1843
+ * that may or may not be different from their GPU counterparts
1844
+ */
1845
+ if (adev->flags & AMD_IS_APU)
1846
+ return;
1847
+
1848
+ /* Set the 2 events that we wish to watch, defined above */
1849
+ /* Reg 40 is # received msgs, Reg 104 is # of posted requests sent */
1850
+ perfctr = REG_SET_FIELD(perfctr, PCIE_PERF_CNTL_TXCLK, EVENT0_SEL, 40);
1851
+ perfctr = REG_SET_FIELD(perfctr, PCIE_PERF_CNTL_TXCLK, EVENT1_SEL, 104);
1852
+
1853
+ /* Write to enable desired perf counters */
1854
+ WREG32_PCIE(ixPCIE_PERF_CNTL_TXCLK, perfctr);
1855
+ /* Zero out and enable the perf counters
1856
+ * Write 0x5:
1857
+ * Bit 0 = Start all counters(1)
1858
+ * Bit 2 = Global counter reset enable(1)
1859
+ */
1860
+ WREG32_PCIE(ixPCIE_PERF_COUNT_CNTL, 0x00000005);
1861
+
1862
+ msleep(1000);
1863
+
1864
+ /* Load the shadow and disable the perf counters
1865
+ * Write 0x2:
1866
+ * Bit 0 = Stop counters(0)
1867
+ * Bit 1 = Load the shadow counters(1)
1868
+ */
1869
+ WREG32_PCIE(ixPCIE_PERF_COUNT_CNTL, 0x00000002);
1870
+
1871
+ /* Read register values to get any >32bit overflow */
1872
+ tmp = RREG32_PCIE(ixPCIE_PERF_CNTL_TXCLK);
1873
+ cnt0_of = REG_GET_FIELD(tmp, PCIE_PERF_CNTL_TXCLK, COUNTER0_UPPER);
1874
+ cnt1_of = REG_GET_FIELD(tmp, PCIE_PERF_CNTL_TXCLK, COUNTER1_UPPER);
1875
+
1876
+ /* Get the values and add the overflow */
1877
+ *count0 = RREG32_PCIE(ixPCIE_PERF_COUNT0_TXCLK) | (cnt0_of << 32);
1878
+ *count1 = RREG32_PCIE(ixPCIE_PERF_COUNT1_TXCLK) | (cnt1_of << 32);
1879
+}
1880
+
1881
+static bool cik_need_reset_on_init(struct amdgpu_device *adev)
1882
+{
1883
+ u32 clock_cntl, pc;
1884
+
1885
+ if (adev->flags & AMD_IS_APU)
1886
+ return false;
1887
+
1888
+ /* check if the SMC is already running */
1889
+ clock_cntl = RREG32_SMC(ixSMC_SYSCON_CLOCK_CNTL_0);
1890
+ pc = RREG32_SMC(ixSMC_PC_C);
1891
+ if ((0 == REG_GET_FIELD(clock_cntl, SMC_SYSCON_CLOCK_CNTL_0, ck_disable)) &&
1892
+ (0x20100 <= pc))
1893
+ return true;
1894
+
1895
+ return false;
1896
+}
1897
+
1898
+static uint64_t cik_get_pcie_replay_count(struct amdgpu_device *adev)
1899
+{
1900
+ uint64_t nak_r, nak_g;
1901
+
1902
+ /* Get the number of NAKs received and generated */
1903
+ nak_r = RREG32_PCIE(ixPCIE_RX_NUM_NAK);
1904
+ nak_g = RREG32_PCIE(ixPCIE_RX_NUM_NAK_GENERATED);
1905
+
1906
+ /* Add the total number of NAKs, i.e the number of replays */
1907
+ return (nak_r + nak_g);
1908
+}
1909
+
1910
+static void cik_pre_asic_init(struct amdgpu_device *adev)
1911
+{
1912
+}
1913
+
17441914 static const struct amdgpu_asic_funcs cik_asic_funcs =
17451915 {
17461916 .read_disabled_bios = &cik_read_disabled_bios,
17471917 .read_bios_from_rom = &cik_read_bios_from_rom,
17481918 .read_register = &cik_read_register,
17491919 .reset = &cik_asic_reset,
1920
+ .reset_method = &cik_asic_reset_method,
17501921 .set_vga_state = &cik_vga_set_state,
17511922 .get_xclk = &cik_get_xclk,
17521923 .set_uvd_clocks = &cik_set_uvd_clocks,
....@@ -1755,6 +1926,12 @@
17551926 .flush_hdp = &cik_flush_hdp,
17561927 .invalidate_hdp = &cik_invalidate_hdp,
17571928 .need_full_reset = &cik_need_full_reset,
1929
+ .init_doorbell_index = &legacy_doorbell_index_init,
1930
+ .get_pcie_usage = &cik_get_pcie_usage,
1931
+ .need_reset_on_init = &cik_need_reset_on_init,
1932
+ .get_pcie_replay_count = &cik_get_pcie_replay_count,
1933
+ .supports_baco = &cik_asic_supports_baco,
1934
+ .pre_asic_init = &cik_pre_asic_init,
17581935 };
17591936
17601937 static int cik_common_early_init(void *handle)
....@@ -1995,17 +2172,14 @@
19952172
19962173 int cik_set_ip_blocks(struct amdgpu_device *adev)
19972174 {
1998
- cik_detect_hw_virtualization(adev);
1999
-
20002175 switch (adev->asic_type) {
20012176 case CHIP_BONAIRE:
20022177 amdgpu_device_ip_block_add(adev, &cik_common_ip_block);
20032178 amdgpu_device_ip_block_add(adev, &gmc_v7_0_ip_block);
20042179 amdgpu_device_ip_block_add(adev, &cik_ih_ip_block);
2005
- if (amdgpu_dpm == -1)
2006
- amdgpu_device_ip_block_add(adev, &pp_smu_ip_block);
2007
- else
2008
- amdgpu_device_ip_block_add(adev, &ci_smu_ip_block);
2180
+ amdgpu_device_ip_block_add(adev, &gfx_v7_2_ip_block);
2181
+ amdgpu_device_ip_block_add(adev, &cik_sdma_ip_block);
2182
+ amdgpu_device_ip_block_add(adev, &pp_smu_ip_block);
20092183 if (adev->enable_virtual_display)
20102184 amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);
20112185 #if defined(CONFIG_DRM_AMD_DC)
....@@ -2014,8 +2188,6 @@
20142188 #endif
20152189 else
20162190 amdgpu_device_ip_block_add(adev, &dce_v8_2_ip_block);
2017
- amdgpu_device_ip_block_add(adev, &gfx_v7_2_ip_block);
2018
- amdgpu_device_ip_block_add(adev, &cik_sdma_ip_block);
20192191 amdgpu_device_ip_block_add(adev, &uvd_v4_2_ip_block);
20202192 amdgpu_device_ip_block_add(adev, &vce_v2_0_ip_block);
20212193 break;
....@@ -2023,10 +2195,9 @@
20232195 amdgpu_device_ip_block_add(adev, &cik_common_ip_block);
20242196 amdgpu_device_ip_block_add(adev, &gmc_v7_0_ip_block);
20252197 amdgpu_device_ip_block_add(adev, &cik_ih_ip_block);
2026
- if (amdgpu_dpm == -1)
2027
- amdgpu_device_ip_block_add(adev, &pp_smu_ip_block);
2028
- else
2029
- amdgpu_device_ip_block_add(adev, &ci_smu_ip_block);
2198
+ amdgpu_device_ip_block_add(adev, &gfx_v7_3_ip_block);
2199
+ amdgpu_device_ip_block_add(adev, &cik_sdma_ip_block);
2200
+ amdgpu_device_ip_block_add(adev, &pp_smu_ip_block);
20302201 if (adev->enable_virtual_display)
20312202 amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);
20322203 #if defined(CONFIG_DRM_AMD_DC)
....@@ -2035,8 +2206,6 @@
20352206 #endif
20362207 else
20372208 amdgpu_device_ip_block_add(adev, &dce_v8_5_ip_block);
2038
- amdgpu_device_ip_block_add(adev, &gfx_v7_3_ip_block);
2039
- amdgpu_device_ip_block_add(adev, &cik_sdma_ip_block);
20402209 amdgpu_device_ip_block_add(adev, &uvd_v4_2_ip_block);
20412210 amdgpu_device_ip_block_add(adev, &vce_v2_0_ip_block);
20422211 break;
....@@ -2044,6 +2213,8 @@
20442213 amdgpu_device_ip_block_add(adev, &cik_common_ip_block);
20452214 amdgpu_device_ip_block_add(adev, &gmc_v7_0_ip_block);
20462215 amdgpu_device_ip_block_add(adev, &cik_ih_ip_block);
2216
+ amdgpu_device_ip_block_add(adev, &gfx_v7_1_ip_block);
2217
+ amdgpu_device_ip_block_add(adev, &cik_sdma_ip_block);
20472218 amdgpu_device_ip_block_add(adev, &kv_smu_ip_block);
20482219 if (adev->enable_virtual_display)
20492220 amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);
....@@ -2053,8 +2224,7 @@
20532224 #endif
20542225 else
20552226 amdgpu_device_ip_block_add(adev, &dce_v8_1_ip_block);
2056
- amdgpu_device_ip_block_add(adev, &gfx_v7_1_ip_block);
2057
- amdgpu_device_ip_block_add(adev, &cik_sdma_ip_block);
2227
+
20582228 amdgpu_device_ip_block_add(adev, &uvd_v4_2_ip_block);
20592229 amdgpu_device_ip_block_add(adev, &vce_v2_0_ip_block);
20602230 break;
....@@ -2063,6 +2233,8 @@
20632233 amdgpu_device_ip_block_add(adev, &cik_common_ip_block);
20642234 amdgpu_device_ip_block_add(adev, &gmc_v7_0_ip_block);
20652235 amdgpu_device_ip_block_add(adev, &cik_ih_ip_block);
2236
+ amdgpu_device_ip_block_add(adev, &gfx_v7_2_ip_block);
2237
+ amdgpu_device_ip_block_add(adev, &cik_sdma_ip_block);
20662238 amdgpu_device_ip_block_add(adev, &kv_smu_ip_block);
20672239 if (adev->enable_virtual_display)
20682240 amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);
....@@ -2072,8 +2244,6 @@
20722244 #endif
20732245 else
20742246 amdgpu_device_ip_block_add(adev, &dce_v8_3_ip_block);
2075
- amdgpu_device_ip_block_add(adev, &gfx_v7_2_ip_block);
2076
- amdgpu_device_ip_block_add(adev, &cik_sdma_ip_block);
20772247 amdgpu_device_ip_block_add(adev, &uvd_v4_2_ip_block);
20782248 amdgpu_device_ip_block_add(adev, &vce_v2_0_ip_block);
20792249 break;