diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/cik.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/cik.c | 41 | 
1 files changed, 15 insertions, 26 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/cik.c b/drivers/gpu/drm/amd/amdgpu/cik.c index 4dfaa017cf7f..a3a643254d7a 100644 --- a/drivers/gpu/drm/amd/amdgpu/cik.c +++ b/drivers/gpu/drm/amd/amdgpu/cik.c @@ -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;  | 
