forked from mirrors/linux
		
	PCI: dwc: Always enable CDM check if "snps,enable-cdm-check" exists
If the "snps,enable-cdm-check" property exists, we should enable the CDM
check.  But previously dw_pcie_setup() could exit before doing so if the
"num-lanes" property was absent or invalid.
Move the CDM enable earlier so we do it regardless of whether "num-lanes"
is present.
[bhelgaas: commit log]
Fixes: 07f123def7 ("PCI: dwc: Add support to enable CDM register check")
Link: https://lore.kernel.org/r/20220624143428.8334-7-Sergey.Semin@baikalelectronics.ru
Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Vidya Sagar <vidyas@nvidia.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
			
			
This commit is contained in:
		
							parent
							
								
									8161e9626b
								
							
						
					
					
						commit
						ec7b952f45
					
				
					 1 changed files with 7 additions and 7 deletions
				
			
		| 
						 | 
				
			
			@ -740,6 +740,13 @@ void dw_pcie_setup(struct dw_pcie *pci)
 | 
			
		|||
	val |= PORT_LINK_DLL_LINK_EN;
 | 
			
		||||
	dw_pcie_writel_dbi(pci, PCIE_PORT_LINK_CONTROL, val);
 | 
			
		||||
 | 
			
		||||
	if (of_property_read_bool(np, "snps,enable-cdm-check")) {
 | 
			
		||||
		val = dw_pcie_readl_dbi(pci, PCIE_PL_CHK_REG_CONTROL_STATUS);
 | 
			
		||||
		val |= PCIE_PL_CHK_REG_CHK_REG_CONTINUOUS |
 | 
			
		||||
		       PCIE_PL_CHK_REG_CHK_REG_START;
 | 
			
		||||
		dw_pcie_writel_dbi(pci, PCIE_PL_CHK_REG_CONTROL_STATUS, val);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	of_property_read_u32(np, "num-lanes", &pci->num_lanes);
 | 
			
		||||
	if (!pci->num_lanes) {
 | 
			
		||||
		dev_dbg(pci->dev, "Using h/w default number of lanes\n");
 | 
			
		||||
| 
						 | 
				
			
			@ -786,11 +793,4 @@ void dw_pcie_setup(struct dw_pcie *pci)
 | 
			
		|||
		break;
 | 
			
		||||
	}
 | 
			
		||||
	dw_pcie_writel_dbi(pci, PCIE_LINK_WIDTH_SPEED_CONTROL, val);
 | 
			
		||||
 | 
			
		||||
	if (of_property_read_bool(np, "snps,enable-cdm-check")) {
 | 
			
		||||
		val = dw_pcie_readl_dbi(pci, PCIE_PL_CHK_REG_CONTROL_STATUS);
 | 
			
		||||
		val |= PCIE_PL_CHK_REG_CHK_REG_CONTINUOUS |
 | 
			
		||||
		       PCIE_PL_CHK_REG_CHK_REG_START;
 | 
			
		||||
		dw_pcie_writel_dbi(pci, PCIE_PL_CHK_REG_CONTROL_STATUS, val);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue