提交 f1ab409d 编写于 作者: V Vidya Sagar 提交者: Bjorn Helgaas

Revert "PCI: tegra194: Rename tegra_pcie_dw to tegra194_pcie"

This reverts commit b5725691.

Revert b5725691 ("PCI: tegra194: Rename tegra_pcie_dw to
tegra194_pcie") to keep the names of data structures generic and not
contain any one particular chip name. This is a preparatory change for the
upcoming changes that add support for Tegra234.  This has no functional
impact.

Link: https://lore.kernel.org/r/20220721142052.25971-9-vidyas@nvidia.comSigned-off-by: NVidya Sagar <vidyas@nvidia.com>
Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
上级 bf32b8f9
...@@ -243,7 +243,7 @@ static const unsigned int pcie_gen_freq[] = { ...@@ -243,7 +243,7 @@ static const unsigned int pcie_gen_freq[] = {
GEN4_CORE_CLK_FREQ GEN4_CORE_CLK_FREQ
}; };
struct tegra194_pcie { struct tegra_pcie_dw {
struct device *dev; struct device *dev;
struct resource *appl_res; struct resource *appl_res;
struct resource *dbi_res; struct resource *dbi_res;
...@@ -287,22 +287,22 @@ struct tegra194_pcie { ...@@ -287,22 +287,22 @@ struct tegra194_pcie {
int ep_state; int ep_state;
}; };
struct tegra194_pcie_of_data { struct tegra_pcie_dw_of_data {
enum dw_pcie_device_mode mode; enum dw_pcie_device_mode mode;
}; };
static inline struct tegra194_pcie *to_tegra_pcie(struct dw_pcie *pci) static inline struct tegra_pcie_dw *to_tegra_pcie(struct dw_pcie *pci)
{ {
return container_of(pci, struct tegra194_pcie, pci); return container_of(pci, struct tegra_pcie_dw, pci);
} }
static inline void appl_writel(struct tegra194_pcie *pcie, const u32 value, static inline void appl_writel(struct tegra_pcie_dw *pcie, const u32 value,
const u32 reg) const u32 reg)
{ {
writel_relaxed(value, pcie->appl_base + reg); writel_relaxed(value, pcie->appl_base + reg);
} }
static inline u32 appl_readl(struct tegra194_pcie *pcie, const u32 reg) static inline u32 appl_readl(struct tegra_pcie_dw *pcie, const u32 reg)
{ {
return readl_relaxed(pcie->appl_base + reg); return readl_relaxed(pcie->appl_base + reg);
} }
...@@ -314,7 +314,7 @@ struct tegra_pcie_soc { ...@@ -314,7 +314,7 @@ struct tegra_pcie_soc {
static void apply_bad_link_workaround(struct pcie_port *pp) static void apply_bad_link_workaround(struct pcie_port *pp)
{ {
struct dw_pcie *pci = to_dw_pcie_from_pp(pp); struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
struct tegra194_pcie *pcie = to_tegra_pcie(pci); struct tegra_pcie_dw *pcie = to_tegra_pcie(pci);
u32 current_link_width; u32 current_link_width;
u16 val; u16 val;
...@@ -347,7 +347,7 @@ static void apply_bad_link_workaround(struct pcie_port *pp) ...@@ -347,7 +347,7 @@ static void apply_bad_link_workaround(struct pcie_port *pp)
static irqreturn_t tegra_pcie_rp_irq_handler(int irq, void *arg) static irqreturn_t tegra_pcie_rp_irq_handler(int irq, void *arg)
{ {
struct tegra194_pcie *pcie = arg; struct tegra_pcie_dw *pcie = arg;
struct dw_pcie *pci = &pcie->pci; struct dw_pcie *pci = &pcie->pci;
struct pcie_port *pp = &pci->pp; struct pcie_port *pp = &pci->pp;
u32 val, tmp; u32 val, tmp;
...@@ -418,7 +418,7 @@ static irqreturn_t tegra_pcie_rp_irq_handler(int irq, void *arg) ...@@ -418,7 +418,7 @@ static irqreturn_t tegra_pcie_rp_irq_handler(int irq, void *arg)
return IRQ_HANDLED; return IRQ_HANDLED;
} }
static void pex_ep_event_hot_rst_done(struct tegra194_pcie *pcie) static void pex_ep_event_hot_rst_done(struct tegra_pcie_dw *pcie)
{ {
u32 val; u32 val;
...@@ -446,7 +446,7 @@ static void pex_ep_event_hot_rst_done(struct tegra194_pcie *pcie) ...@@ -446,7 +446,7 @@ static void pex_ep_event_hot_rst_done(struct tegra194_pcie *pcie)
static irqreturn_t tegra_pcie_ep_irq_thread(int irq, void *arg) static irqreturn_t tegra_pcie_ep_irq_thread(int irq, void *arg)
{ {
struct tegra194_pcie *pcie = arg; struct tegra_pcie_dw *pcie = arg;
struct dw_pcie *pci = &pcie->pci; struct dw_pcie *pci = &pcie->pci;
u32 val, speed; u32 val, speed;
...@@ -492,7 +492,7 @@ static irqreturn_t tegra_pcie_ep_irq_thread(int irq, void *arg) ...@@ -492,7 +492,7 @@ static irqreturn_t tegra_pcie_ep_irq_thread(int irq, void *arg)
static irqreturn_t tegra_pcie_ep_hard_irq(int irq, void *arg) static irqreturn_t tegra_pcie_ep_hard_irq(int irq, void *arg)
{ {
struct tegra194_pcie *pcie = arg; struct tegra_pcie_dw *pcie = arg;
struct dw_pcie_ep *ep = &pcie->pci.ep; struct dw_pcie_ep *ep = &pcie->pci.ep;
int spurious = 1; int spurious = 1;
u32 status_l0, status_l1, link_status; u32 status_l0, status_l1, link_status;
...@@ -535,7 +535,7 @@ static irqreturn_t tegra_pcie_ep_hard_irq(int irq, void *arg) ...@@ -535,7 +535,7 @@ static irqreturn_t tegra_pcie_ep_hard_irq(int irq, void *arg)
return IRQ_HANDLED; return IRQ_HANDLED;
} }
static int tegra194_pcie_rd_own_conf(struct pci_bus *bus, u32 devfn, int where, static int tegra_pcie_dw_rd_own_conf(struct pci_bus *bus, u32 devfn, int where,
int size, u32 *val) int size, u32 *val)
{ {
/* /*
...@@ -552,7 +552,7 @@ static int tegra194_pcie_rd_own_conf(struct pci_bus *bus, u32 devfn, int where, ...@@ -552,7 +552,7 @@ static int tegra194_pcie_rd_own_conf(struct pci_bus *bus, u32 devfn, int where,
return pci_generic_config_read(bus, devfn, where, size, val); return pci_generic_config_read(bus, devfn, where, size, val);
} }
static int tegra194_pcie_wr_own_conf(struct pci_bus *bus, u32 devfn, int where, static int tegra_pcie_dw_wr_own_conf(struct pci_bus *bus, u32 devfn, int where,
int size, u32 val) int size, u32 val)
{ {
/* /*
...@@ -569,8 +569,8 @@ static int tegra194_pcie_wr_own_conf(struct pci_bus *bus, u32 devfn, int where, ...@@ -569,8 +569,8 @@ static int tegra194_pcie_wr_own_conf(struct pci_bus *bus, u32 devfn, int where,
static struct pci_ops tegra_pci_ops = { static struct pci_ops tegra_pci_ops = {
.map_bus = dw_pcie_own_conf_map_bus, .map_bus = dw_pcie_own_conf_map_bus,
.read = tegra194_pcie_rd_own_conf, .read = tegra_pcie_dw_rd_own_conf,
.write = tegra194_pcie_wr_own_conf, .write = tegra_pcie_dw_wr_own_conf,
}; };
#if defined(CONFIG_PCIEASPM) #if defined(CONFIG_PCIEASPM)
...@@ -592,7 +592,7 @@ static const u32 event_cntr_data_offset[] = { ...@@ -592,7 +592,7 @@ static const u32 event_cntr_data_offset[] = {
0x1dc 0x1dc
}; };
static void disable_aspm_l11(struct tegra194_pcie *pcie) static void disable_aspm_l11(struct tegra_pcie_dw *pcie)
{ {
u32 val; u32 val;
...@@ -601,7 +601,7 @@ static void disable_aspm_l11(struct tegra194_pcie *pcie) ...@@ -601,7 +601,7 @@ static void disable_aspm_l11(struct tegra194_pcie *pcie)
dw_pcie_writel_dbi(&pcie->pci, pcie->cfg_link_cap_l1sub, val); dw_pcie_writel_dbi(&pcie->pci, pcie->cfg_link_cap_l1sub, val);
} }
static void disable_aspm_l12(struct tegra194_pcie *pcie) static void disable_aspm_l12(struct tegra_pcie_dw *pcie)
{ {
u32 val; u32 val;
...@@ -610,7 +610,7 @@ static void disable_aspm_l12(struct tegra194_pcie *pcie) ...@@ -610,7 +610,7 @@ static void disable_aspm_l12(struct tegra194_pcie *pcie)
dw_pcie_writel_dbi(&pcie->pci, pcie->cfg_link_cap_l1sub, val); dw_pcie_writel_dbi(&pcie->pci, pcie->cfg_link_cap_l1sub, val);
} }
static inline u32 event_counter_prog(struct tegra194_pcie *pcie, u32 event) static inline u32 event_counter_prog(struct tegra_pcie_dw *pcie, u32 event)
{ {
u32 val; u32 val;
...@@ -627,7 +627,7 @@ static inline u32 event_counter_prog(struct tegra194_pcie *pcie, u32 event) ...@@ -627,7 +627,7 @@ static inline u32 event_counter_prog(struct tegra194_pcie *pcie, u32 event)
static int aspm_state_cnt(struct seq_file *s, void *data) static int aspm_state_cnt(struct seq_file *s, void *data)
{ {
struct tegra194_pcie *pcie = (struct tegra194_pcie *) struct tegra_pcie_dw *pcie = (struct tegra_pcie_dw *)
dev_get_drvdata(s->private); dev_get_drvdata(s->private);
u32 val; u32 val;
...@@ -658,7 +658,7 @@ static int aspm_state_cnt(struct seq_file *s, void *data) ...@@ -658,7 +658,7 @@ static int aspm_state_cnt(struct seq_file *s, void *data)
return 0; return 0;
} }
static void init_host_aspm(struct tegra194_pcie *pcie) static void init_host_aspm(struct tegra_pcie_dw *pcie)
{ {
struct dw_pcie *pci = &pcie->pci; struct dw_pcie *pci = &pcie->pci;
u32 val; u32 val;
...@@ -686,22 +686,22 @@ static void init_host_aspm(struct tegra194_pcie *pcie) ...@@ -686,22 +686,22 @@ static void init_host_aspm(struct tegra194_pcie *pcie)
dw_pcie_writel_dbi(pci, PCIE_PORT_AFR, val); dw_pcie_writel_dbi(pci, PCIE_PORT_AFR, val);
} }
static void init_debugfs(struct tegra194_pcie *pcie) static void init_debugfs(struct tegra_pcie_dw *pcie)
{ {
debugfs_create_devm_seqfile(pcie->dev, "aspm_state_cnt", pcie->debugfs, debugfs_create_devm_seqfile(pcie->dev, "aspm_state_cnt", pcie->debugfs,
aspm_state_cnt); aspm_state_cnt);
} }
#else #else
static inline void disable_aspm_l12(struct tegra194_pcie *pcie) { return; } static inline void disable_aspm_l12(struct tegra_pcie_dw *pcie) { return; }
static inline void disable_aspm_l11(struct tegra194_pcie *pcie) { return; } static inline void disable_aspm_l11(struct tegra_pcie_dw *pcie) { return; }
static inline void init_host_aspm(struct tegra194_pcie *pcie) { return; } static inline void init_host_aspm(struct tegra_pcie_dw *pcie) { return; }
static inline void init_debugfs(struct tegra194_pcie *pcie) { return; } static inline void init_debugfs(struct tegra_pcie_dw *pcie) { return; }
#endif #endif
static void tegra_pcie_enable_system_interrupts(struct pcie_port *pp) static void tegra_pcie_enable_system_interrupts(struct pcie_port *pp)
{ {
struct dw_pcie *pci = to_dw_pcie_from_pp(pp); struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
struct tegra194_pcie *pcie = to_tegra_pcie(pci); struct tegra_pcie_dw *pcie = to_tegra_pcie(pci);
u32 val; u32 val;
u16 val_w; u16 val_w;
...@@ -739,7 +739,7 @@ static void tegra_pcie_enable_system_interrupts(struct pcie_port *pp) ...@@ -739,7 +739,7 @@ static void tegra_pcie_enable_system_interrupts(struct pcie_port *pp)
static void tegra_pcie_enable_legacy_interrupts(struct pcie_port *pp) static void tegra_pcie_enable_legacy_interrupts(struct pcie_port *pp)
{ {
struct dw_pcie *pci = to_dw_pcie_from_pp(pp); struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
struct tegra194_pcie *pcie = to_tegra_pcie(pci); struct tegra_pcie_dw *pcie = to_tegra_pcie(pci);
u32 val; u32 val;
/* Enable legacy interrupt generation */ /* Enable legacy interrupt generation */
...@@ -760,7 +760,7 @@ static void tegra_pcie_enable_legacy_interrupts(struct pcie_port *pp) ...@@ -760,7 +760,7 @@ static void tegra_pcie_enable_legacy_interrupts(struct pcie_port *pp)
static void tegra_pcie_enable_msi_interrupts(struct pcie_port *pp) static void tegra_pcie_enable_msi_interrupts(struct pcie_port *pp)
{ {
struct dw_pcie *pci = to_dw_pcie_from_pp(pp); struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
struct tegra194_pcie *pcie = to_tegra_pcie(pci); struct tegra_pcie_dw *pcie = to_tegra_pcie(pci);
u32 val; u32 val;
/* Enable MSI interrupt generation */ /* Enable MSI interrupt generation */
...@@ -773,7 +773,7 @@ static void tegra_pcie_enable_msi_interrupts(struct pcie_port *pp) ...@@ -773,7 +773,7 @@ static void tegra_pcie_enable_msi_interrupts(struct pcie_port *pp)
static void tegra_pcie_enable_interrupts(struct pcie_port *pp) static void tegra_pcie_enable_interrupts(struct pcie_port *pp)
{ {
struct dw_pcie *pci = to_dw_pcie_from_pp(pp); struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
struct tegra194_pcie *pcie = to_tegra_pcie(pci); struct tegra_pcie_dw *pcie = to_tegra_pcie(pci);
/* Clear interrupt statuses before enabling interrupts */ /* Clear interrupt statuses before enabling interrupts */
appl_writel(pcie, 0xFFFFFFFF, APPL_INTR_STATUS_L0); appl_writel(pcie, 0xFFFFFFFF, APPL_INTR_STATUS_L0);
...@@ -798,7 +798,7 @@ static void tegra_pcie_enable_interrupts(struct pcie_port *pp) ...@@ -798,7 +798,7 @@ static void tegra_pcie_enable_interrupts(struct pcie_port *pp)
tegra_pcie_enable_msi_interrupts(pp); tegra_pcie_enable_msi_interrupts(pp);
} }
static void config_gen3_gen4_eq_presets(struct tegra194_pcie *pcie) static void config_gen3_gen4_eq_presets(struct tegra_pcie_dw *pcie)
{ {
struct dw_pcie *pci = &pcie->pci; struct dw_pcie *pci = &pcie->pci;
u32 val, offset, i; u32 val, offset, i;
...@@ -851,10 +851,10 @@ static void config_gen3_gen4_eq_presets(struct tegra194_pcie *pcie) ...@@ -851,10 +851,10 @@ static void config_gen3_gen4_eq_presets(struct tegra194_pcie *pcie)
dw_pcie_writel_dbi(pci, GEN3_RELATED_OFF, val); dw_pcie_writel_dbi(pci, GEN3_RELATED_OFF, val);
} }
static int tegra194_pcie_host_init(struct pcie_port *pp) static int tegra_pcie_dw_host_init(struct pcie_port *pp)
{ {
struct dw_pcie *pci = to_dw_pcie_from_pp(pp); struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
struct tegra194_pcie *pcie = to_tegra_pcie(pci); struct tegra_pcie_dw *pcie = to_tegra_pcie(pci);
u32 val; u32 val;
pp->bridge->ops = &tegra_pci_ops; pp->bridge->ops = &tegra_pci_ops;
...@@ -912,10 +912,10 @@ static int tegra194_pcie_host_init(struct pcie_port *pp) ...@@ -912,10 +912,10 @@ static int tegra194_pcie_host_init(struct pcie_port *pp)
return 0; return 0;
} }
static int tegra194_pcie_start_link(struct dw_pcie *pci) static int tegra_pcie_dw_start_link(struct dw_pcie *pci)
{ {
u32 val, offset, speed, tmp; u32 val, offset, speed, tmp;
struct tegra194_pcie *pcie = to_tegra_pcie(pci); struct tegra_pcie_dw *pcie = to_tegra_pcie(pci);
struct pcie_port *pp = &pci->pp; struct pcie_port *pp = &pci->pp;
bool retry = true; bool retry = true;
...@@ -980,7 +980,7 @@ static int tegra194_pcie_start_link(struct dw_pcie *pci) ...@@ -980,7 +980,7 @@ static int tegra194_pcie_start_link(struct dw_pcie *pci)
val &= ~PCI_DLF_EXCHANGE_ENABLE; val &= ~PCI_DLF_EXCHANGE_ENABLE;
dw_pcie_writel_dbi(pci, offset, val); dw_pcie_writel_dbi(pci, offset, val);
tegra194_pcie_host_init(pp); tegra_pcie_dw_host_init(pp);
dw_pcie_setup_rc(pp); dw_pcie_setup_rc(pp);
retry = false; retry = false;
...@@ -996,32 +996,32 @@ static int tegra194_pcie_start_link(struct dw_pcie *pci) ...@@ -996,32 +996,32 @@ static int tegra194_pcie_start_link(struct dw_pcie *pci)
return 0; return 0;
} }
static int tegra194_pcie_link_up(struct dw_pcie *pci) static int tegra_pcie_dw_link_up(struct dw_pcie *pci)
{ {
struct tegra194_pcie *pcie = to_tegra_pcie(pci); struct tegra_pcie_dw *pcie = to_tegra_pcie(pci);
u32 val = dw_pcie_readw_dbi(pci, pcie->pcie_cap_base + PCI_EXP_LNKSTA); u32 val = dw_pcie_readw_dbi(pci, pcie->pcie_cap_base + PCI_EXP_LNKSTA);
return !!(val & PCI_EXP_LNKSTA_DLLLA); return !!(val & PCI_EXP_LNKSTA_DLLLA);
} }
static void tegra194_pcie_stop_link(struct dw_pcie *pci) static void tegra_pcie_dw_stop_link(struct dw_pcie *pci)
{ {
struct tegra194_pcie *pcie = to_tegra_pcie(pci); struct tegra_pcie_dw *pcie = to_tegra_pcie(pci);
disable_irq(pcie->pex_rst_irq); disable_irq(pcie->pex_rst_irq);
} }
static const struct dw_pcie_ops tegra_dw_pcie_ops = { static const struct dw_pcie_ops tegra_dw_pcie_ops = {
.link_up = tegra194_pcie_link_up, .link_up = tegra_pcie_dw_link_up,
.start_link = tegra194_pcie_start_link, .start_link = tegra_pcie_dw_start_link,
.stop_link = tegra194_pcie_stop_link, .stop_link = tegra_pcie_dw_stop_link,
}; };
static const struct dw_pcie_host_ops tegra194_pcie_host_ops = { static const struct dw_pcie_host_ops tegra_pcie_dw_host_ops = {
.host_init = tegra194_pcie_host_init, .host_init = tegra_pcie_dw_host_init,
}; };
static void tegra_pcie_disable_phy(struct tegra194_pcie *pcie) static void tegra_pcie_disable_phy(struct tegra_pcie_dw *pcie)
{ {
unsigned int phy_count = pcie->phy_count; unsigned int phy_count = pcie->phy_count;
...@@ -1031,7 +1031,7 @@ static void tegra_pcie_disable_phy(struct tegra194_pcie *pcie) ...@@ -1031,7 +1031,7 @@ static void tegra_pcie_disable_phy(struct tegra194_pcie *pcie)
} }
} }
static int tegra_pcie_enable_phy(struct tegra194_pcie *pcie) static int tegra_pcie_enable_phy(struct tegra_pcie_dw *pcie)
{ {
unsigned int i; unsigned int i;
int ret; int ret;
...@@ -1058,7 +1058,7 @@ static int tegra_pcie_enable_phy(struct tegra194_pcie *pcie) ...@@ -1058,7 +1058,7 @@ static int tegra_pcie_enable_phy(struct tegra194_pcie *pcie)
return ret; return ret;
} }
static int tegra194_pcie_parse_dt(struct tegra194_pcie *pcie) static int tegra_pcie_dw_parse_dt(struct tegra_pcie_dw *pcie)
{ {
struct platform_device *pdev = to_platform_device(pcie->dev); struct platform_device *pdev = to_platform_device(pcie->dev);
struct device_node *np = pcie->dev->of_node; struct device_node *np = pcie->dev->of_node;
...@@ -1154,7 +1154,7 @@ static int tegra194_pcie_parse_dt(struct tegra194_pcie *pcie) ...@@ -1154,7 +1154,7 @@ static int tegra194_pcie_parse_dt(struct tegra194_pcie *pcie)
return 0; return 0;
} }
static int tegra_pcie_bpmp_set_ctrl_state(struct tegra194_pcie *pcie, static int tegra_pcie_bpmp_set_ctrl_state(struct tegra_pcie_dw *pcie,
bool enable) bool enable)
{ {
struct mrq_uphy_response resp; struct mrq_uphy_response resp;
...@@ -1182,7 +1182,7 @@ static int tegra_pcie_bpmp_set_ctrl_state(struct tegra194_pcie *pcie, ...@@ -1182,7 +1182,7 @@ static int tegra_pcie_bpmp_set_ctrl_state(struct tegra194_pcie *pcie,
return tegra_bpmp_transfer(pcie->bpmp, &msg); return tegra_bpmp_transfer(pcie->bpmp, &msg);
} }
static int tegra_pcie_bpmp_set_pll_state(struct tegra194_pcie *pcie, static int tegra_pcie_bpmp_set_pll_state(struct tegra_pcie_dw *pcie,
bool enable) bool enable)
{ {
struct mrq_uphy_response resp; struct mrq_uphy_response resp;
...@@ -1210,7 +1210,7 @@ static int tegra_pcie_bpmp_set_pll_state(struct tegra194_pcie *pcie, ...@@ -1210,7 +1210,7 @@ static int tegra_pcie_bpmp_set_pll_state(struct tegra194_pcie *pcie,
return tegra_bpmp_transfer(pcie->bpmp, &msg); return tegra_bpmp_transfer(pcie->bpmp, &msg);
} }
static void tegra_pcie_downstream_dev_to_D0(struct tegra194_pcie *pcie) static void tegra_pcie_downstream_dev_to_D0(struct tegra_pcie_dw *pcie)
{ {
struct pcie_port *pp = &pcie->pci.pp; struct pcie_port *pp = &pcie->pci.pp;
struct pci_bus *child, *root_bus = NULL; struct pci_bus *child, *root_bus = NULL;
...@@ -1248,7 +1248,7 @@ static void tegra_pcie_downstream_dev_to_D0(struct tegra194_pcie *pcie) ...@@ -1248,7 +1248,7 @@ static void tegra_pcie_downstream_dev_to_D0(struct tegra194_pcie *pcie)
} }
} }
static int tegra_pcie_get_slot_regulators(struct tegra194_pcie *pcie) static int tegra_pcie_get_slot_regulators(struct tegra_pcie_dw *pcie)
{ {
pcie->slot_ctl_3v3 = devm_regulator_get_optional(pcie->dev, "vpcie3v3"); pcie->slot_ctl_3v3 = devm_regulator_get_optional(pcie->dev, "vpcie3v3");
if (IS_ERR(pcie->slot_ctl_3v3)) { if (IS_ERR(pcie->slot_ctl_3v3)) {
...@@ -1269,7 +1269,7 @@ static int tegra_pcie_get_slot_regulators(struct tegra194_pcie *pcie) ...@@ -1269,7 +1269,7 @@ static int tegra_pcie_get_slot_regulators(struct tegra194_pcie *pcie)
return 0; return 0;
} }
static int tegra_pcie_enable_slot_regulators(struct tegra194_pcie *pcie) static int tegra_pcie_enable_slot_regulators(struct tegra_pcie_dw *pcie)
{ {
int ret; int ret;
...@@ -1307,7 +1307,7 @@ static int tegra_pcie_enable_slot_regulators(struct tegra194_pcie *pcie) ...@@ -1307,7 +1307,7 @@ static int tegra_pcie_enable_slot_regulators(struct tegra194_pcie *pcie)
return ret; return ret;
} }
static void tegra_pcie_disable_slot_regulators(struct tegra194_pcie *pcie) static void tegra_pcie_disable_slot_regulators(struct tegra_pcie_dw *pcie)
{ {
if (pcie->slot_ctl_12v) if (pcie->slot_ctl_12v)
regulator_disable(pcie->slot_ctl_12v); regulator_disable(pcie->slot_ctl_12v);
...@@ -1315,7 +1315,7 @@ static void tegra_pcie_disable_slot_regulators(struct tegra194_pcie *pcie) ...@@ -1315,7 +1315,7 @@ static void tegra_pcie_disable_slot_regulators(struct tegra194_pcie *pcie)
regulator_disable(pcie->slot_ctl_3v3); regulator_disable(pcie->slot_ctl_3v3);
} }
static int tegra_pcie_config_controller(struct tegra194_pcie *pcie, static int tegra_pcie_config_controller(struct tegra_pcie_dw *pcie,
bool en_hw_hot_rst) bool en_hw_hot_rst)
{ {
int ret; int ret;
...@@ -1412,7 +1412,7 @@ static int tegra_pcie_config_controller(struct tegra194_pcie *pcie, ...@@ -1412,7 +1412,7 @@ static int tegra_pcie_config_controller(struct tegra194_pcie *pcie,
return ret; return ret;
} }
static void tegra_pcie_unconfig_controller(struct tegra194_pcie *pcie) static void tegra_pcie_unconfig_controller(struct tegra_pcie_dw *pcie)
{ {
int ret; int ret;
...@@ -1440,7 +1440,7 @@ static void tegra_pcie_unconfig_controller(struct tegra194_pcie *pcie) ...@@ -1440,7 +1440,7 @@ static void tegra_pcie_unconfig_controller(struct tegra194_pcie *pcie)
pcie->cid, ret); pcie->cid, ret);
} }
static int tegra_pcie_init_controller(struct tegra194_pcie *pcie) static int tegra_pcie_init_controller(struct tegra_pcie_dw *pcie)
{ {
struct dw_pcie *pci = &pcie->pci; struct dw_pcie *pci = &pcie->pci;
struct pcie_port *pp = &pci->pp; struct pcie_port *pp = &pci->pp;
...@@ -1450,7 +1450,7 @@ static int tegra_pcie_init_controller(struct tegra194_pcie *pcie) ...@@ -1450,7 +1450,7 @@ static int tegra_pcie_init_controller(struct tegra194_pcie *pcie)
if (ret < 0) if (ret < 0)
return ret; return ret;
pp->ops = &tegra194_pcie_host_ops; pp->ops = &tegra_pcie_dw_host_ops;
ret = dw_pcie_host_init(pp); ret = dw_pcie_host_init(pp);
if (ret < 0) { if (ret < 0) {
...@@ -1465,11 +1465,11 @@ static int tegra_pcie_init_controller(struct tegra194_pcie *pcie) ...@@ -1465,11 +1465,11 @@ static int tegra_pcie_init_controller(struct tegra194_pcie *pcie)
return ret; return ret;
} }
static int tegra_pcie_try_link_l2(struct tegra194_pcie *pcie) static int tegra_pcie_try_link_l2(struct tegra_pcie_dw *pcie)
{ {
u32 val; u32 val;
if (!tegra194_pcie_link_up(&pcie->pci)) if (!tegra_pcie_dw_link_up(&pcie->pci))
return 0; return 0;
val = appl_readl(pcie, APPL_RADM_STATUS); val = appl_readl(pcie, APPL_RADM_STATUS);
...@@ -1481,12 +1481,12 @@ static int tegra_pcie_try_link_l2(struct tegra194_pcie *pcie) ...@@ -1481,12 +1481,12 @@ static int tegra_pcie_try_link_l2(struct tegra194_pcie *pcie)
1, PME_ACK_TIMEOUT); 1, PME_ACK_TIMEOUT);
} }
static void tegra194_pcie_pme_turnoff(struct tegra194_pcie *pcie) static void tegra_pcie_dw_pme_turnoff(struct tegra_pcie_dw *pcie)
{ {
u32 data; u32 data;
int err; int err;
if (!tegra194_pcie_link_up(&pcie->pci)) { if (!tegra_pcie_dw_link_up(&pcie->pci)) {
dev_dbg(pcie->dev, "PCIe link is not up...!\n"); dev_dbg(pcie->dev, "PCIe link is not up...!\n");
return; return;
} }
...@@ -1543,15 +1543,15 @@ static void tegra194_pcie_pme_turnoff(struct tegra194_pcie *pcie) ...@@ -1543,15 +1543,15 @@ static void tegra194_pcie_pme_turnoff(struct tegra194_pcie *pcie)
appl_writel(pcie, data, APPL_PINMUX); appl_writel(pcie, data, APPL_PINMUX);
} }
static void tegra_pcie_deinit_controller(struct tegra194_pcie *pcie) static void tegra_pcie_deinit_controller(struct tegra_pcie_dw *pcie)
{ {
tegra_pcie_downstream_dev_to_D0(pcie); tegra_pcie_downstream_dev_to_D0(pcie);
dw_pcie_host_deinit(&pcie->pci.pp); dw_pcie_host_deinit(&pcie->pci.pp);
tegra194_pcie_pme_turnoff(pcie); tegra_pcie_dw_pme_turnoff(pcie);
tegra_pcie_unconfig_controller(pcie); tegra_pcie_unconfig_controller(pcie);
} }
static int tegra_pcie_config_rp(struct tegra194_pcie *pcie) static int tegra_pcie_config_rp(struct tegra_pcie_dw *pcie)
{ {
struct device *dev = pcie->dev; struct device *dev = pcie->dev;
char *name; char *name;
...@@ -1578,7 +1578,7 @@ static int tegra_pcie_config_rp(struct tegra194_pcie *pcie) ...@@ -1578,7 +1578,7 @@ static int tegra_pcie_config_rp(struct tegra194_pcie *pcie)
goto fail_pm_get_sync; goto fail_pm_get_sync;
} }
pcie->link_state = tegra194_pcie_link_up(&pcie->pci); pcie->link_state = tegra_pcie_dw_link_up(&pcie->pci);
if (!pcie->link_state) { if (!pcie->link_state) {
ret = -ENOMEDIUM; ret = -ENOMEDIUM;
goto fail_host_init; goto fail_host_init;
...@@ -1603,7 +1603,7 @@ static int tegra_pcie_config_rp(struct tegra194_pcie *pcie) ...@@ -1603,7 +1603,7 @@ static int tegra_pcie_config_rp(struct tegra194_pcie *pcie)
return ret; return ret;
} }
static void pex_ep_event_pex_rst_assert(struct tegra194_pcie *pcie) static void pex_ep_event_pex_rst_assert(struct tegra_pcie_dw *pcie)
{ {
u32 val; u32 val;
int ret; int ret;
...@@ -1642,7 +1642,7 @@ static void pex_ep_event_pex_rst_assert(struct tegra194_pcie *pcie) ...@@ -1642,7 +1642,7 @@ static void pex_ep_event_pex_rst_assert(struct tegra194_pcie *pcie)
dev_dbg(pcie->dev, "Uninitialization of endpoint is completed\n"); dev_dbg(pcie->dev, "Uninitialization of endpoint is completed\n");
} }
static void pex_ep_event_pex_rst_deassert(struct tegra194_pcie *pcie) static void pex_ep_event_pex_rst_deassert(struct tegra_pcie_dw *pcie)
{ {
struct dw_pcie *pci = &pcie->pci; struct dw_pcie *pci = &pcie->pci;
struct dw_pcie_ep *ep = &pci->ep; struct dw_pcie_ep *ep = &pci->ep;
...@@ -1807,7 +1807,7 @@ static void pex_ep_event_pex_rst_deassert(struct tegra194_pcie *pcie) ...@@ -1807,7 +1807,7 @@ static void pex_ep_event_pex_rst_deassert(struct tegra194_pcie *pcie)
static irqreturn_t tegra_pcie_ep_pex_rst_irq(int irq, void *arg) static irqreturn_t tegra_pcie_ep_pex_rst_irq(int irq, void *arg)
{ {
struct tegra194_pcie *pcie = arg; struct tegra_pcie_dw *pcie = arg;
if (gpiod_get_value(pcie->pex_rst_gpiod)) if (gpiod_get_value(pcie->pex_rst_gpiod))
pex_ep_event_pex_rst_assert(pcie); pex_ep_event_pex_rst_assert(pcie);
...@@ -1817,7 +1817,7 @@ static irqreturn_t tegra_pcie_ep_pex_rst_irq(int irq, void *arg) ...@@ -1817,7 +1817,7 @@ static irqreturn_t tegra_pcie_ep_pex_rst_irq(int irq, void *arg)
return IRQ_HANDLED; return IRQ_HANDLED;
} }
static int tegra_pcie_ep_raise_legacy_irq(struct tegra194_pcie *pcie, u16 irq) static int tegra_pcie_ep_raise_legacy_irq(struct tegra_pcie_dw *pcie, u16 irq)
{ {
/* Tegra194 supports only INTA */ /* Tegra194 supports only INTA */
if (irq > 1) if (irq > 1)
...@@ -1829,7 +1829,7 @@ static int tegra_pcie_ep_raise_legacy_irq(struct tegra194_pcie *pcie, u16 irq) ...@@ -1829,7 +1829,7 @@ static int tegra_pcie_ep_raise_legacy_irq(struct tegra194_pcie *pcie, u16 irq)
return 0; return 0;
} }
static int tegra_pcie_ep_raise_msi_irq(struct tegra194_pcie *pcie, u16 irq) static int tegra_pcie_ep_raise_msi_irq(struct tegra_pcie_dw *pcie, u16 irq)
{ {
if (unlikely(irq > 31)) if (unlikely(irq > 31))
return -EINVAL; return -EINVAL;
...@@ -1839,7 +1839,7 @@ static int tegra_pcie_ep_raise_msi_irq(struct tegra194_pcie *pcie, u16 irq) ...@@ -1839,7 +1839,7 @@ static int tegra_pcie_ep_raise_msi_irq(struct tegra194_pcie *pcie, u16 irq)
return 0; return 0;
} }
static int tegra_pcie_ep_raise_msix_irq(struct tegra194_pcie *pcie, u16 irq) static int tegra_pcie_ep_raise_msix_irq(struct tegra_pcie_dw *pcie, u16 irq)
{ {
struct dw_pcie_ep *ep = &pcie->pci.ep; struct dw_pcie_ep *ep = &pcie->pci.ep;
...@@ -1853,7 +1853,7 @@ static int tegra_pcie_ep_raise_irq(struct dw_pcie_ep *ep, u8 func_no, ...@@ -1853,7 +1853,7 @@ static int tegra_pcie_ep_raise_irq(struct dw_pcie_ep *ep, u8 func_no,
u16 interrupt_num) u16 interrupt_num)
{ {
struct dw_pcie *pci = to_dw_pcie_from_ep(ep); struct dw_pcie *pci = to_dw_pcie_from_ep(ep);
struct tegra194_pcie *pcie = to_tegra_pcie(pci); struct tegra_pcie_dw *pcie = to_tegra_pcie(pci);
switch (type) { switch (type) {
case PCI_EPC_IRQ_LEGACY: case PCI_EPC_IRQ_LEGACY:
...@@ -1894,7 +1894,7 @@ static const struct dw_pcie_ep_ops pcie_ep_ops = { ...@@ -1894,7 +1894,7 @@ static const struct dw_pcie_ep_ops pcie_ep_ops = {
.get_features = tegra_pcie_ep_get_features, .get_features = tegra_pcie_ep_get_features,
}; };
static int tegra_pcie_config_ep(struct tegra194_pcie *pcie, static int tegra_pcie_config_ep(struct tegra_pcie_dw *pcie,
struct platform_device *pdev) struct platform_device *pdev)
{ {
struct dw_pcie *pci = &pcie->pci; struct dw_pcie *pci = &pcie->pci;
...@@ -1956,12 +1956,12 @@ static int tegra_pcie_config_ep(struct tegra194_pcie *pcie, ...@@ -1956,12 +1956,12 @@ static int tegra_pcie_config_ep(struct tegra194_pcie *pcie,
return 0; return 0;
} }
static int tegra194_pcie_probe(struct platform_device *pdev) static int tegra_pcie_dw_probe(struct platform_device *pdev)
{ {
const struct tegra194_pcie_of_data *data; const struct tegra_pcie_dw_of_data *data;
struct device *dev = &pdev->dev; struct device *dev = &pdev->dev;
struct resource *atu_dma_res; struct resource *atu_dma_res;
struct tegra194_pcie *pcie; struct tegra_pcie_dw *pcie;
struct pcie_port *pp; struct pcie_port *pp;
struct dw_pcie *pci; struct dw_pcie *pci;
struct phy **phys; struct phy **phys;
...@@ -1987,7 +1987,7 @@ static int tegra194_pcie_probe(struct platform_device *pdev) ...@@ -1987,7 +1987,7 @@ static int tegra194_pcie_probe(struct platform_device *pdev)
pcie->dev = &pdev->dev; pcie->dev = &pdev->dev;
pcie->mode = (enum dw_pcie_device_mode)data->mode; pcie->mode = (enum dw_pcie_device_mode)data->mode;
ret = tegra194_pcie_parse_dt(pcie); ret = tegra_pcie_dw_parse_dt(pcie);
if (ret < 0) { if (ret < 0) {
const char *level = KERN_ERR; const char *level = KERN_ERR;
...@@ -2145,9 +2145,9 @@ static int tegra194_pcie_probe(struct platform_device *pdev) ...@@ -2145,9 +2145,9 @@ static int tegra194_pcie_probe(struct platform_device *pdev)
return ret; return ret;
} }
static int tegra194_pcie_remove(struct platform_device *pdev) static int tegra_pcie_dw_remove(struct platform_device *pdev)
{ {
struct tegra194_pcie *pcie = platform_get_drvdata(pdev); struct tegra_pcie_dw *pcie = platform_get_drvdata(pdev);
if (!pcie->link_state) if (!pcie->link_state)
return 0; return 0;
...@@ -2163,9 +2163,9 @@ static int tegra194_pcie_remove(struct platform_device *pdev) ...@@ -2163,9 +2163,9 @@ static int tegra194_pcie_remove(struct platform_device *pdev)
return 0; return 0;
} }
static int tegra194_pcie_suspend_late(struct device *dev) static int tegra_pcie_dw_suspend_late(struct device *dev)
{ {
struct tegra194_pcie *pcie = dev_get_drvdata(dev); struct tegra_pcie_dw *pcie = dev_get_drvdata(dev);
u32 val; u32 val;
if (!pcie->link_state) if (!pcie->link_state)
...@@ -2181,23 +2181,23 @@ static int tegra194_pcie_suspend_late(struct device *dev) ...@@ -2181,23 +2181,23 @@ static int tegra194_pcie_suspend_late(struct device *dev)
return 0; return 0;
} }
static int tegra194_pcie_suspend_noirq(struct device *dev) static int tegra_pcie_dw_suspend_noirq(struct device *dev)
{ {
struct tegra194_pcie *pcie = dev_get_drvdata(dev); struct tegra_pcie_dw *pcie = dev_get_drvdata(dev);
if (!pcie->link_state) if (!pcie->link_state)
return 0; return 0;
tegra_pcie_downstream_dev_to_D0(pcie); tegra_pcie_downstream_dev_to_D0(pcie);
tegra194_pcie_pme_turnoff(pcie); tegra_pcie_dw_pme_turnoff(pcie);
tegra_pcie_unconfig_controller(pcie); tegra_pcie_unconfig_controller(pcie);
return 0; return 0;
} }
static int tegra194_pcie_resume_noirq(struct device *dev) static int tegra_pcie_dw_resume_noirq(struct device *dev)
{ {
struct tegra194_pcie *pcie = dev_get_drvdata(dev); struct tegra_pcie_dw *pcie = dev_get_drvdata(dev);
int ret; int ret;
if (!pcie->link_state) if (!pcie->link_state)
...@@ -2207,7 +2207,7 @@ static int tegra194_pcie_resume_noirq(struct device *dev) ...@@ -2207,7 +2207,7 @@ static int tegra194_pcie_resume_noirq(struct device *dev)
if (ret < 0) if (ret < 0)
return ret; return ret;
ret = tegra194_pcie_host_init(&pcie->pci.pp); ret = tegra_pcie_dw_host_init(&pcie->pci.pp);
if (ret < 0) { if (ret < 0) {
dev_err(dev, "Failed to init host: %d\n", ret); dev_err(dev, "Failed to init host: %d\n", ret);
goto fail_host_init; goto fail_host_init;
...@@ -2215,7 +2215,7 @@ static int tegra194_pcie_resume_noirq(struct device *dev) ...@@ -2215,7 +2215,7 @@ static int tegra194_pcie_resume_noirq(struct device *dev)
dw_pcie_setup_rc(&pcie->pci.pp); dw_pcie_setup_rc(&pcie->pci.pp);
ret = tegra194_pcie_start_link(&pcie->pci); ret = tegra_pcie_dw_start_link(&pcie->pci);
if (ret < 0) if (ret < 0)
goto fail_host_init; goto fail_host_init;
...@@ -2226,9 +2226,9 @@ static int tegra194_pcie_resume_noirq(struct device *dev) ...@@ -2226,9 +2226,9 @@ static int tegra194_pcie_resume_noirq(struct device *dev)
return ret; return ret;
} }
static int tegra194_pcie_resume_early(struct device *dev) static int tegra_pcie_dw_resume_early(struct device *dev)
{ {
struct tegra194_pcie *pcie = dev_get_drvdata(dev); struct tegra_pcie_dw *pcie = dev_get_drvdata(dev);
u32 val; u32 val;
if (pcie->mode == DW_PCIE_EP_TYPE) { if (pcie->mode == DW_PCIE_EP_TYPE) {
...@@ -2251,9 +2251,9 @@ static int tegra194_pcie_resume_early(struct device *dev) ...@@ -2251,9 +2251,9 @@ static int tegra194_pcie_resume_early(struct device *dev)
return 0; return 0;
} }
static void tegra194_pcie_shutdown(struct platform_device *pdev) static void tegra_pcie_dw_shutdown(struct platform_device *pdev)
{ {
struct tegra194_pcie *pcie = platform_get_drvdata(pdev); struct tegra_pcie_dw *pcie = platform_get_drvdata(pdev);
if (!pcie->link_state) if (!pcie->link_state)
return; return;
...@@ -2265,50 +2265,50 @@ static void tegra194_pcie_shutdown(struct platform_device *pdev) ...@@ -2265,50 +2265,50 @@ static void tegra194_pcie_shutdown(struct platform_device *pdev)
if (IS_ENABLED(CONFIG_PCI_MSI)) if (IS_ENABLED(CONFIG_PCI_MSI))
disable_irq(pcie->pci.pp.msi_irq); disable_irq(pcie->pci.pp.msi_irq);
tegra194_pcie_pme_turnoff(pcie); tegra_pcie_dw_pme_turnoff(pcie);
tegra_pcie_unconfig_controller(pcie); tegra_pcie_unconfig_controller(pcie);
} }
static const struct tegra194_pcie_of_data tegra194_pcie_rc_of_data = { static const struct tegra_pcie_dw_of_data tegra_pcie_dw_rc_of_data = {
.mode = DW_PCIE_RC_TYPE, .mode = DW_PCIE_RC_TYPE,
}; };
static const struct tegra194_pcie_of_data tegra194_pcie_ep_of_data = { static const struct tegra_pcie_dw_of_data tegra_pcie_dw_ep_of_data = {
.mode = DW_PCIE_EP_TYPE, .mode = DW_PCIE_EP_TYPE,
}; };
static const struct of_device_id tegra194_pcie_of_match[] = { static const struct of_device_id tegra_pcie_dw_of_match[] = {
{ {
.compatible = "nvidia,tegra194-pcie", .compatible = "nvidia,tegra194-pcie",
.data = &tegra194_pcie_rc_of_data, .data = &tegra_pcie_dw_rc_of_data,
}, },
{ {
.compatible = "nvidia,tegra194-pcie-ep", .compatible = "nvidia,tegra194-pcie-ep",
.data = &tegra194_pcie_ep_of_data, .data = &tegra_pcie_dw_ep_of_data,
}, },
{}, {},
}; };
static const struct dev_pm_ops tegra194_pcie_pm_ops = { static const struct dev_pm_ops tegra_pcie_dw_pm_ops = {
.suspend_late = tegra194_pcie_suspend_late, .suspend_late = tegra_pcie_dw_suspend_late,
.suspend_noirq = tegra194_pcie_suspend_noirq, .suspend_noirq = tegra_pcie_dw_suspend_noirq,
.resume_noirq = tegra194_pcie_resume_noirq, .resume_noirq = tegra_pcie_dw_resume_noirq,
.resume_early = tegra194_pcie_resume_early, .resume_early = tegra_pcie_dw_resume_early,
}; };
static struct platform_driver tegra194_pcie_driver = { static struct platform_driver tegra_pcie_dw_driver = {
.probe = tegra194_pcie_probe, .probe = tegra_pcie_dw_probe,
.remove = tegra194_pcie_remove, .remove = tegra_pcie_dw_remove,
.shutdown = tegra194_pcie_shutdown, .shutdown = tegra_pcie_dw_shutdown,
.driver = { .driver = {
.name = "tegra194-pcie", .name = "tegra194-pcie",
.pm = &tegra194_pcie_pm_ops, .pm = &tegra_pcie_dw_pm_ops,
.of_match_table = tegra194_pcie_of_match, .of_match_table = tegra_pcie_dw_of_match,
}, },
}; };
module_platform_driver(tegra194_pcie_driver); module_platform_driver(tegra_pcie_dw_driver);
MODULE_DEVICE_TABLE(of, tegra194_pcie_of_match); MODULE_DEVICE_TABLE(of, tegra_pcie_dw_of_match);
MODULE_AUTHOR("Vidya Sagar <vidyas@nvidia.com>"); MODULE_AUTHOR("Vidya Sagar <vidyas@nvidia.com>");
MODULE_DESCRIPTION("NVIDIA PCIe host controller driver"); MODULE_DESCRIPTION("NVIDIA PCIe host controller driver");
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册