Merge tag 'amd-drm-next-6.9-2024-03-01' of https://gitlab.freedesktop.org/agd5f/linux...
[linux-2.6-microblaze.git] / drivers / gpu / drm / amd / amdgpu / cik.c
index 4dfaa01..a3a6432 100644 (file)
@@ -1638,28 +1638,18 @@ static void cik_pcie_gen3_enable(struct amdgpu_device *adev)
                                                                   PCI_EXP_LNKCTL_HAWD);
 
                                /* linkctl2 */
-                               pcie_capability_read_word(root, PCI_EXP_LNKCTL2,
-                                                         &tmp16);
-                               tmp16 &= ~(PCI_EXP_LNKCTL2_ENTER_COMP |
-                                          PCI_EXP_LNKCTL2_TX_MARGIN);
-                               tmp16 |= (bridge_cfg2 &
-                                         (PCI_EXP_LNKCTL2_ENTER_COMP |
-                                          PCI_EXP_LNKCTL2_TX_MARGIN));
-                               pcie_capability_write_word(root,
-                                                          PCI_EXP_LNKCTL2,
-                                                          tmp16);
-
-                               pcie_capability_read_word(adev->pdev,
-                                                         PCI_EXP_LNKCTL2,
-                                                         &tmp16);
-                               tmp16 &= ~(PCI_EXP_LNKCTL2_ENTER_COMP |
-                                          PCI_EXP_LNKCTL2_TX_MARGIN);
-                               tmp16 |= (gpu_cfg2 &
-                                         (PCI_EXP_LNKCTL2_ENTER_COMP |
-                                          PCI_EXP_LNKCTL2_TX_MARGIN));
-                               pcie_capability_write_word(adev->pdev,
-                                                          PCI_EXP_LNKCTL2,
-                                                          tmp16);
+                               pcie_capability_clear_and_set_word(root, PCI_EXP_LNKCTL2,
+                                                                  PCI_EXP_LNKCTL2_ENTER_COMP |
+                                                                  PCI_EXP_LNKCTL2_TX_MARGIN,
+                                                                  bridge_cfg2 &
+                                                                  (PCI_EXP_LNKCTL2_ENTER_COMP |
+                                                                   PCI_EXP_LNKCTL2_TX_MARGIN));
+                               pcie_capability_clear_and_set_word(adev->pdev, PCI_EXP_LNKCTL2,
+                                                                  PCI_EXP_LNKCTL2_ENTER_COMP |
+                                                                  PCI_EXP_LNKCTL2_TX_MARGIN,
+                                                                  gpu_cfg2 &
+                                                                  (PCI_EXP_LNKCTL2_ENTER_COMP |
+                                                                   PCI_EXP_LNKCTL2_TX_MARGIN));
 
                                tmp = RREG32_PCIE(ixPCIE_LC_CNTL4);
                                tmp &= ~PCIE_LC_CNTL4__LC_SET_QUIESCE_MASK;
@@ -1674,16 +1664,15 @@ static void cik_pcie_gen3_enable(struct amdgpu_device *adev)
        speed_cntl &= ~PCIE_LC_SPEED_CNTL__LC_FORCE_DIS_SW_SPEED_CHANGE_MASK;
        WREG32_PCIE(ixPCIE_LC_SPEED_CNTL, speed_cntl);
 
-       pcie_capability_read_word(adev->pdev, PCI_EXP_LNKCTL2, &tmp16);
-       tmp16 &= ~PCI_EXP_LNKCTL2_TLS;
-
+       tmp16 = 0;
        if (adev->pm.pcie_gen_mask & CAIL_PCIE_LINK_SPEED_SUPPORT_GEN3)
                tmp16 |= PCI_EXP_LNKCTL2_TLS_8_0GT; /* gen3 */
        else if (adev->pm.pcie_gen_mask & CAIL_PCIE_LINK_SPEED_SUPPORT_GEN2)
                tmp16 |= PCI_EXP_LNKCTL2_TLS_5_0GT; /* gen2 */
        else
                tmp16 |= PCI_EXP_LNKCTL2_TLS_2_5GT; /* gen1 */
-       pcie_capability_write_word(adev->pdev, PCI_EXP_LNKCTL2, tmp16);
+       pcie_capability_clear_and_set_word(adev->pdev, PCI_EXP_LNKCTL2,
+                                          PCI_EXP_LNKCTL2_TLS, tmp16);
 
        speed_cntl = RREG32_PCIE(ixPCIE_LC_SPEED_CNTL);
        speed_cntl |= PCIE_LC_SPEED_CNTL__LC_INITIATE_LINK_SPEED_CHANGE_MASK;