hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/gpu/drm/radeon/si.c
....@@ -7138,17 +7138,8 @@
71387138 u16 bridge_cfg2, gpu_cfg2;
71397139 u32 max_lw, current_lw, tmp;
71407140
7141
- pcie_capability_read_word(root, PCI_EXP_LNKCTL,
7142
- &bridge_cfg);
7143
- pcie_capability_read_word(rdev->pdev, PCI_EXP_LNKCTL,
7144
- &gpu_cfg);
7145
-
7146
- tmp16 = bridge_cfg | PCI_EXP_LNKCTL_HAWD;
7147
- pcie_capability_write_word(root, PCI_EXP_LNKCTL, tmp16);
7148
-
7149
- tmp16 = gpu_cfg | PCI_EXP_LNKCTL_HAWD;
7150
- pcie_capability_write_word(rdev->pdev, PCI_EXP_LNKCTL,
7151
- tmp16);
7141
+ pcie_capability_set_word(root, PCI_EXP_LNKCTL, PCI_EXP_LNKCTL_HAWD);
7142
+ pcie_capability_set_word(rdev->pdev, PCI_EXP_LNKCTL, PCI_EXP_LNKCTL_HAWD);
71527143
71537144 tmp = RREG32_PCIE(PCIE_LC_STATUS1);
71547145 max_lw = (tmp & LC_DETECTED_LINK_WIDTH_MASK) >> LC_DETECTED_LINK_WIDTH_SHIFT;
....@@ -7195,22 +7186,14 @@
71957186 msleep(100);
71967187
71977188 /* linkctl */
7198
- pcie_capability_read_word(root, PCI_EXP_LNKCTL,
7199
- &tmp16);
7200
- tmp16 &= ~PCI_EXP_LNKCTL_HAWD;
7201
- tmp16 |= (bridge_cfg & PCI_EXP_LNKCTL_HAWD);
7202
- pcie_capability_write_word(root,
7203
- PCI_EXP_LNKCTL,
7204
- tmp16);
7205
-
7206
- pcie_capability_read_word(rdev->pdev,
7207
- PCI_EXP_LNKCTL,
7208
- &tmp16);
7209
- tmp16 &= ~PCI_EXP_LNKCTL_HAWD;
7210
- tmp16 |= (gpu_cfg & PCI_EXP_LNKCTL_HAWD);
7211
- pcie_capability_write_word(rdev->pdev,
7212
- PCI_EXP_LNKCTL,
7213
- tmp16);
7189
+ pcie_capability_clear_and_set_word(root, PCI_EXP_LNKCTL,
7190
+ PCI_EXP_LNKCTL_HAWD,
7191
+ bridge_cfg &
7192
+ PCI_EXP_LNKCTL_HAWD);
7193
+ pcie_capability_clear_and_set_word(rdev->pdev, PCI_EXP_LNKCTL,
7194
+ PCI_EXP_LNKCTL_HAWD,
7195
+ gpu_cfg &
7196
+ PCI_EXP_LNKCTL_HAWD);
72147197
72157198 /* linkctl2 */
72167199 pcie_capability_read_word(root, PCI_EXP_LNKCTL2,