Skip to content

Commit 5457880

Browse files
committed
Merge branch 'pci/controller/dwc-sophgo'
- Disable L0s and L1 on Sophgo 2044 PCIe Root Ports (Inochi Amaoto) * pci/controller/dwc-sophgo: PCI: sophgo: Disable L0s and L1 on Sophgo 2044 PCIe Root Ports
2 parents 42e8a4e + 613f325 commit 5457880

1 file changed

Lines changed: 18 additions & 0 deletions

File tree

drivers/pci/controller/dwc/pcie-sophgo.c

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,22 @@ static void sophgo_pcie_msi_enable(struct dw_pcie_rp *pp)
161161
raw_spin_unlock_irqrestore(&pp->lock, flags);
162162
}
163163

164+
static void sophgo_pcie_disable_l0s_l1(struct dw_pcie_rp *pp)
165+
{
166+
struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
167+
u32 offset, val;
168+
169+
offset = dw_pcie_find_capability(pci, PCI_CAP_ID_EXP);
170+
171+
dw_pcie_dbi_ro_wr_en(pci);
172+
173+
val = dw_pcie_readl_dbi(pci, PCI_EXP_LNKCAP + offset);
174+
val &= ~(PCI_EXP_LNKCAP_ASPM_L0S | PCI_EXP_LNKCAP_ASPM_L1);
175+
dw_pcie_writel_dbi(pci, PCI_EXP_LNKCAP + offset, val);
176+
177+
dw_pcie_dbi_ro_wr_dis(pci);
178+
}
179+
164180
static int sophgo_pcie_host_init(struct dw_pcie_rp *pp)
165181
{
166182
int irq;
@@ -171,6 +187,8 @@ static int sophgo_pcie_host_init(struct dw_pcie_rp *pp)
171187

172188
irq_set_chained_handler_and_data(irq, sophgo_pcie_intx_handler, pp);
173189

190+
sophgo_pcie_disable_l0s_l1(pp);
191+
174192
sophgo_pcie_msi_enable(pp);
175193

176194
return 0;

0 commit comments

Comments
 (0)