mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 20:54:03 +02:00
Merge branch 'pci/controller/misc'
- Use common wait time definitions for PCIe link monitoring instead of defining driver-private duplicates (Thierry Reding) - Add LECARC PMU IDs to the DWC RAS/DES VSEC list so it can take advantage of the existing debugfs support for silicon debug, error injection, and event counters (Brett Zhou) * pci/controller/misc: PCI: dwc: Add PCI ID for LECARC PCIe PMU PCI: Use standard wait times for PCIe link monitoring
This commit is contained in:
commit
70cbec6fec
|
|
@ -16,6 +16,8 @@
|
|||
#include "pcie-cadence-host-common.h"
|
||||
#include "../pci-host-common.h"
|
||||
|
||||
#include "../../pci.h"
|
||||
|
||||
#define LINK_RETRAIN_TIMEOUT HZ
|
||||
|
||||
u64 bar_max_size[] = {
|
||||
|
|
@ -54,12 +56,12 @@ int cdns_pcie_host_wait_for_link(struct cdns_pcie *pcie,
|
|||
int retries;
|
||||
|
||||
/* Check if the link is up or not */
|
||||
for (retries = 0; retries < LINK_WAIT_MAX_RETRIES; retries++) {
|
||||
for (retries = 0; retries < PCIE_LINK_WAIT_MAX_RETRIES; retries++) {
|
||||
if (pcie_link_up(pcie)) {
|
||||
dev_info(dev, "Link up\n");
|
||||
return 0;
|
||||
}
|
||||
usleep_range(LINK_WAIT_USLEEP_MIN, LINK_WAIT_USLEEP_MAX);
|
||||
msleep(PCIE_LINK_WAIT_SLEEP_MS);
|
||||
}
|
||||
|
||||
return -ETIMEDOUT;
|
||||
|
|
|
|||
|
|
@ -10,11 +10,6 @@
|
|||
|
||||
#include <linux/bitfield.h>
|
||||
|
||||
/* Parameters for the waiting for link up routine */
|
||||
#define LINK_WAIT_MAX_RETRIES 10
|
||||
#define LINK_WAIT_USLEEP_MIN 90000
|
||||
#define LINK_WAIT_USLEEP_MAX 100000
|
||||
|
||||
/* Local Management Registers */
|
||||
#define CDNS_PCIE_LM_BASE 0x00100000
|
||||
|
||||
|
|
|
|||
|
|
@ -218,11 +218,11 @@ int mobiveil_bringup_link(struct mobiveil_pcie *pcie)
|
|||
int retries;
|
||||
|
||||
/* check if the link is up or not */
|
||||
for (retries = 0; retries < LINK_WAIT_MAX_RETRIES; retries++) {
|
||||
for (retries = 0; retries < PCIE_LINK_WAIT_MAX_RETRIES; retries++) {
|
||||
if (mobiveil_pcie_link_up(pcie))
|
||||
return 0;
|
||||
|
||||
usleep_range(LINK_WAIT_MIN, LINK_WAIT_MAX);
|
||||
msleep(PCIE_LINK_WAIT_SLEEP_MS);
|
||||
}
|
||||
|
||||
dev_err(&pcie->pdev->dev, "link never came up\n");
|
||||
|
|
|
|||
|
|
@ -122,11 +122,6 @@
|
|||
#define IB_WIN_SIZE ((u64)256 * 1024 * 1024 * 1024)
|
||||
#define MAX_PIO_WINDOWS 8
|
||||
|
||||
/* Parameters for the waiting for link up routine */
|
||||
#define LINK_WAIT_MAX_RETRIES 10
|
||||
#define LINK_WAIT_MIN 90000
|
||||
#define LINK_WAIT_MAX 100000
|
||||
|
||||
#define PAGED_ADDR_BNDRY 0xc00
|
||||
#define OFFSET_TO_PAGE_ADDR(off) \
|
||||
((off & PAGE_LO_MASK) | PAGED_ADDR_BNDRY)
|
||||
|
|
|
|||
|
|
@ -256,9 +256,6 @@ enum {
|
|||
#define PIO_RETRY_CNT 750000 /* 1.5 s */
|
||||
#define PIO_RETRY_DELAY 2 /* 2 us*/
|
||||
|
||||
#define LINK_WAIT_MAX_RETRIES 10
|
||||
#define LINK_WAIT_USLEEP_MIN 90000
|
||||
#define LINK_WAIT_USLEEP_MAX 100000
|
||||
#define RETRAIN_WAIT_MAX_RETRIES 10
|
||||
#define RETRAIN_WAIT_USLEEP_US 2000
|
||||
|
||||
|
|
@ -350,13 +347,13 @@ static int advk_pcie_wait_for_link(struct advk_pcie *pcie)
|
|||
int retries;
|
||||
|
||||
/* check if the link is up or not */
|
||||
for (retries = 0; retries < LINK_WAIT_MAX_RETRIES; retries++) {
|
||||
for (retries = 0; retries < PCIE_LINK_WAIT_MAX_RETRIES; retries++) {
|
||||
if (advk_pcie_link_up(pcie)) {
|
||||
pci_host_common_link_train_delay(pcie->link_gen);
|
||||
return 0;
|
||||
}
|
||||
|
||||
usleep_range(LINK_WAIT_USLEEP_MIN, LINK_WAIT_USLEEP_MAX);
|
||||
msleep(PCIE_LINK_WAIT_SLEEP_MS);
|
||||
}
|
||||
|
||||
return -ETIMEDOUT;
|
||||
|
|
|
|||
|
|
@ -140,11 +140,6 @@
|
|||
#define PCIE_PHY_LINKUP_BIT BIT(0)
|
||||
#define PHY_RDY_LINKUP_BIT BIT(1)
|
||||
|
||||
/* Parameters for the waiting for link up routine */
|
||||
#define LINK_WAIT_MAX_RETRIES 10
|
||||
#define LINK_WAIT_USLEEP_MIN 90000
|
||||
#define LINK_WAIT_USLEEP_MAX 100000
|
||||
|
||||
struct nwl_msi { /* MSI information */
|
||||
DECLARE_BITMAP(bitmap, INT_PCI_MSI_NR);
|
||||
struct irq_domain *dev_domain;
|
||||
|
|
@ -203,10 +198,10 @@ static int nwl_wait_for_link(struct nwl_pcie *pcie)
|
|||
int retries;
|
||||
|
||||
/* check if the link is up or not */
|
||||
for (retries = 0; retries < LINK_WAIT_MAX_RETRIES; retries++) {
|
||||
for (retries = 0; retries < PCIE_LINK_WAIT_MAX_RETRIES; retries++) {
|
||||
if (nwl_phy_link_up(pcie))
|
||||
return 0;
|
||||
usleep_range(LINK_WAIT_USLEEP_MIN, LINK_WAIT_USLEEP_MAX);
|
||||
msleep(PCIE_LINK_WAIT_SLEEP_MS);
|
||||
}
|
||||
|
||||
dev_err(dev, "PHY link never came up\n");
|
||||
|
|
|
|||
|
|
@ -45,11 +45,6 @@
|
|||
#define STG_SYSCON_LNKSTA_OFFSET 0x170
|
||||
#define DATA_LINK_ACTIVE BIT(5)
|
||||
|
||||
/* Parameters for the waiting for link up routine */
|
||||
#define LINK_WAIT_MAX_RETRIES 10
|
||||
#define LINK_WAIT_USLEEP_MIN 90000
|
||||
#define LINK_WAIT_USLEEP_MAX 100000
|
||||
|
||||
struct starfive_jh7110_pcie {
|
||||
struct plda_pcie_rp plda;
|
||||
struct reset_control *resets;
|
||||
|
|
@ -217,12 +212,12 @@ static int starfive_pcie_host_wait_for_link(struct starfive_jh7110_pcie *pcie)
|
|||
int retries;
|
||||
|
||||
/* Check if the link is up or not */
|
||||
for (retries = 0; retries < LINK_WAIT_MAX_RETRIES; retries++) {
|
||||
for (retries = 0; retries < PCIE_LINK_WAIT_MAX_RETRIES; retries++) {
|
||||
if (starfive_pcie_link_up(&pcie->plda)) {
|
||||
dev_info(pcie->plda.dev, "port link up\n");
|
||||
return 0;
|
||||
}
|
||||
usleep_range(LINK_WAIT_USLEEP_MIN, LINK_WAIT_USLEEP_MAX);
|
||||
msleep(PCIE_LINK_WAIT_SLEEP_MS);
|
||||
}
|
||||
|
||||
return -ETIMEDOUT;
|
||||
|
|
|
|||
|
|
@ -11,6 +11,8 @@
|
|||
|
||||
#include <linux/pci_ids.h>
|
||||
|
||||
#define PCI_VENDOR_ID_LECARC 0x0720
|
||||
|
||||
struct dwc_pcie_vsec_id {
|
||||
u16 vendor_id;
|
||||
u16 vsec_id;
|
||||
|
|
@ -32,6 +34,8 @@ static const struct dwc_pcie_vsec_id dwc_pcie_rasdes_vsec_ids[] = {
|
|||
.vsec_id = 0x02, .vsec_rev = 0x4 },
|
||||
{ .vendor_id = PCI_VENDOR_ID_SAMSUNG,
|
||||
.vsec_id = 0x02, .vsec_rev = 0x4 },
|
||||
{ .vendor_id = PCI_VENDOR_ID_LECARC,
|
||||
.vsec_id = 0x02, .vsec_rev = 0x4 },
|
||||
{}
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user