diff options
Diffstat (limited to 'drivers/pci/controller/dwc')
| -rw-r--r-- | drivers/pci/controller/dwc/pci-dra7xx.c | 6 | ||||
| -rw-r--r-- | drivers/pci/controller/dwc/pci-exynos.c | 4 | ||||
| -rw-r--r-- | drivers/pci/controller/dwc/pci-imx6.c | 81 | ||||
| -rw-r--r-- | drivers/pci/controller/dwc/pci-keystone.c | 37 | ||||
| -rw-r--r-- | drivers/pci/controller/dwc/pci-layerscape.c | 152 | ||||
| -rw-r--r-- | drivers/pci/controller/dwc/pcie-artpec6.c | 6 | ||||
| -rw-r--r-- | drivers/pci/controller/dwc/pcie-designware-plat.c | 6 | ||||
| -rw-r--r-- | drivers/pci/controller/dwc/pcie-designware.c | 7 | ||||
| -rw-r--r-- | drivers/pci/controller/dwc/pcie-hisi.c | 32 | ||||
| -rw-r--r-- | drivers/pci/controller/dwc/pcie-histb.c | 4 | ||||
| -rw-r--r-- | drivers/pci/controller/dwc/pcie-intel-gw.c | 204 | ||||
| -rw-r--r-- | drivers/pci/controller/dwc/pcie-kirin.c | 10 | ||||
| -rw-r--r-- | drivers/pci/controller/dwc/pcie-qcom-ep.c | 6 | ||||
| -rw-r--r-- | drivers/pci/controller/dwc/pcie-qcom.c | 14 | ||||
| -rw-r--r-- | drivers/pci/controller/dwc/pcie-spear13xx.c | 8 | ||||
| -rw-r--r-- | drivers/pci/controller/dwc/pcie-tegra194.c | 222 | ||||
| -rw-r--r-- | drivers/pci/controller/dwc/pcie-uniphier.c | 147 | 
17 files changed, 449 insertions, 497 deletions
| diff --git a/drivers/pci/controller/dwc/pci-dra7xx.c b/drivers/pci/controller/dwc/pci-dra7xx.c index a4221f6f3629..12d19183e746 100644 --- a/drivers/pci/controller/dwc/pci-dra7xx.c +++ b/drivers/pci/controller/dwc/pci-dra7xx.c @@ -697,16 +697,14 @@ static int dra7xx_pcie_probe(struct platform_device *pdev)  	struct device_node *np = dev->of_node;  	char name[10];  	struct gpio_desc *reset; -	const struct of_device_id *match;  	const struct dra7xx_pcie_of_data *data;  	enum dw_pcie_device_mode mode;  	u32 b1co_mode_sel_mask; -	match = of_match_device(of_match_ptr(of_dra7xx_pcie_match), dev); -	if (!match) +	data = of_device_get_match_data(dev); +	if (!data)  		return -EINVAL; -	data = (struct dra7xx_pcie_of_data *)match->data;  	mode = (enum dw_pcie_device_mode)data->mode;  	b1co_mode_sel_mask = data->b1co_mode_sel_mask; diff --git a/drivers/pci/controller/dwc/pci-exynos.c b/drivers/pci/controller/dwc/pci-exynos.c index 722dacdd5a17..467c8d1cd7e4 100644 --- a/drivers/pci/controller/dwc/pci-exynos.c +++ b/drivers/pci/controller/dwc/pci-exynos.c @@ -217,10 +217,8 @@ static int exynos_pcie_rd_own_conf(struct pci_bus *bus, unsigned int devfn,  {  	struct dw_pcie *pci = to_dw_pcie_from_pp(bus->sysdata); -	if (PCI_SLOT(devfn)) { -		*val = ~0; +	if (PCI_SLOT(devfn))  		return PCIBIOS_DEVICE_NOT_FOUND; -	}  	*val = dw_pcie_read_dbi(pci, where, size);  	return PCIBIOS_SUCCESSFUL; diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c index 26f49f797b0f..6974bd5aa116 100644 --- a/drivers/pci/controller/dwc/pci-imx6.c +++ b/drivers/pci/controller/dwc/pci-imx6.c @@ -29,6 +29,7 @@  #include <linux/types.h>  #include <linux/interrupt.h>  #include <linux/reset.h> +#include <linux/phy/phy.h>  #include <linux/pm_domain.h>  #include <linux/pm_runtime.h> @@ -49,6 +50,7 @@ enum imx6_pcie_variants {  	IMX6QP,  	IMX7D,  	IMX8MQ, +	IMX8MM,  };  #define IMX6_PCIE_FLAG_IMX6_PHY			BIT(0) @@ -88,6 +90,7 @@ struct imx6_pcie {  	struct device		*pd_pcie;  	/* power domain for pcie phy */  	struct device		*pd_pcie_phy; +	struct phy		*phy;  	const struct imx6_pcie_drvdata *drvdata;  }; @@ -372,6 +375,8 @@ static void imx6_pcie_assert_core_reset(struct imx6_pcie *imx6_pcie)  	case IMX7D:  	case IMX8MQ:  		reset_control_assert(imx6_pcie->pciephy_reset); +		fallthrough; +	case IMX8MM:  		reset_control_assert(imx6_pcie->apps_reset);  		break;  	case IMX6SX: @@ -407,7 +412,8 @@ static void imx6_pcie_assert_core_reset(struct imx6_pcie *imx6_pcie)  static unsigned int imx6_pcie_grp_offset(const struct imx6_pcie *imx6_pcie)  { -	WARN_ON(imx6_pcie->drvdata->variant != IMX8MQ); +	WARN_ON(imx6_pcie->drvdata->variant != IMX8MQ && +		imx6_pcie->drvdata->variant != IMX8MM);  	return imx6_pcie->controller_id == 1 ? IOMUXC_GPR16 : IOMUXC_GPR14;  } @@ -446,6 +452,11 @@ static int imx6_pcie_enable_ref_clk(struct imx6_pcie *imx6_pcie)  		break;  	case IMX7D:  		break; +	case IMX8MM: +		ret = clk_prepare_enable(imx6_pcie->pcie_aux); +		if (ret) +			dev_err(dev, "unable to enable pcie_aux clock\n"); +		break;  	case IMX8MQ:  		ret = clk_prepare_enable(imx6_pcie->pcie_aux);  		if (ret) { @@ -522,6 +533,14 @@ static void imx6_pcie_deassert_core_reset(struct imx6_pcie *imx6_pcie)  		goto err_ref_clk;  	} +	switch (imx6_pcie->drvdata->variant) { +	case IMX8MM: +		if (phy_power_on(imx6_pcie->phy)) +			dev_err(dev, "unable to power on PHY\n"); +		break; +	default: +		break; +	}  	/* allow the clocks to stabilize */  	usleep_range(200, 500); @@ -538,6 +557,10 @@ static void imx6_pcie_deassert_core_reset(struct imx6_pcie *imx6_pcie)  	case IMX8MQ:  		reset_control_deassert(imx6_pcie->pciephy_reset);  		break; +	case IMX8MM: +		if (phy_init(imx6_pcie->phy)) +			dev_err(dev, "waiting for phy ready timeout!\n"); +		break;  	case IMX7D:  		reset_control_deassert(imx6_pcie->pciephy_reset); @@ -614,6 +637,12 @@ static void imx6_pcie_configure_type(struct imx6_pcie *imx6_pcie)  static void imx6_pcie_init_phy(struct imx6_pcie *imx6_pcie)  {  	switch (imx6_pcie->drvdata->variant) { +	case IMX8MM: +		/* +		 * The PHY initialization had been done in the PHY +		 * driver, break here directly. +		 */ +		break;  	case IMX8MQ:  		/*  		 * TODO: Currently this code assumes external @@ -753,6 +782,7 @@ static void imx6_pcie_ltssm_enable(struct device *dev)  		break;  	case IMX7D:  	case IMX8MQ: +	case IMX8MM:  		reset_control_deassert(imx6_pcie->apps_reset);  		break;  	} @@ -871,6 +901,7 @@ static void imx6_pcie_ltssm_disable(struct device *dev)  				   IMX6Q_GPR12_PCIE_CTL_2, 0);  		break;  	case IMX7D: +	case IMX8MM:  		reset_control_assert(imx6_pcie->apps_reset);  		break;  	default: @@ -930,6 +961,7 @@ static void imx6_pcie_clk_disable(struct imx6_pcie *imx6_pcie)  				   IMX7D_GPR12_PCIE_PHY_REFCLK_SEL);  		break;  	case IMX8MQ: +	case IMX8MM:  		clk_disable_unprepare(imx6_pcie->pcie_aux);  		break;  	default: @@ -945,8 +977,16 @@ static int imx6_pcie_suspend_noirq(struct device *dev)  		return 0;  	imx6_pcie_pm_turnoff(imx6_pcie); -	imx6_pcie_clk_disable(imx6_pcie);  	imx6_pcie_ltssm_disable(dev); +	imx6_pcie_clk_disable(imx6_pcie); +	switch (imx6_pcie->drvdata->variant) { +	case IMX8MM: +		if (phy_power_off(imx6_pcie->phy)) +			dev_err(dev, "unable to power off PHY\n"); +		break; +	default: +		break; +	}  	return 0;  } @@ -1043,11 +1083,6 @@ static int imx6_pcie_probe(struct platform_device *pdev)  	}  	/* Fetch clocks */ -	imx6_pcie->pcie_phy = devm_clk_get(dev, "pcie_phy"); -	if (IS_ERR(imx6_pcie->pcie_phy)) -		return dev_err_probe(dev, PTR_ERR(imx6_pcie->pcie_phy), -				     "pcie_phy clock source missing or invalid\n"); -  	imx6_pcie->pcie_bus = devm_clk_get(dev, "pcie_bus");  	if (IS_ERR(imx6_pcie->pcie_bus))  		return dev_err_probe(dev, PTR_ERR(imx6_pcie->pcie_bus), @@ -1090,9 +1125,34 @@ static int imx6_pcie_probe(struct platform_device *pdev)  			return PTR_ERR(imx6_pcie->apps_reset);  		}  		break; +	case IMX8MM: +		imx6_pcie->pcie_aux = devm_clk_get(dev, "pcie_aux"); +		if (IS_ERR(imx6_pcie->pcie_aux)) +			return dev_err_probe(dev, PTR_ERR(imx6_pcie->pcie_aux), +					     "pcie_aux clock source missing or invalid\n"); +		imx6_pcie->apps_reset = devm_reset_control_get_exclusive(dev, +									 "apps"); +		if (IS_ERR(imx6_pcie->apps_reset)) +			return dev_err_probe(dev, PTR_ERR(imx6_pcie->apps_reset), +					     "failed to get pcie apps reset control\n"); + +		imx6_pcie->phy = devm_phy_get(dev, "pcie-phy"); +		if (IS_ERR(imx6_pcie->phy)) +			return dev_err_probe(dev, PTR_ERR(imx6_pcie->phy), +					     "failed to get pcie phy\n"); + +		break;  	default:  		break;  	} +	/* Don't fetch the pcie_phy clock, if it has abstract PHY driver */ +	if (imx6_pcie->phy == NULL) { +		imx6_pcie->pcie_phy = devm_clk_get(dev, "pcie_phy"); +		if (IS_ERR(imx6_pcie->pcie_phy)) +			return dev_err_probe(dev, PTR_ERR(imx6_pcie->pcie_phy), +					     "pcie_phy clock source missing or invalid\n"); +	} +  	/* Grab turnoff reset */  	imx6_pcie->turnoff_reset = devm_reset_control_get_optional_exclusive(dev, "turnoff"); @@ -1202,6 +1262,10 @@ static const struct imx6_pcie_drvdata drvdata[] = {  	[IMX8MQ] = {  		.variant = IMX8MQ,  	}, +	[IMX8MM] = { +		.variant = IMX8MM, +		.flags = IMX6_PCIE_FLAG_SUPPORTS_SUSPEND, +	},  };  static const struct of_device_id imx6_pcie_of_match[] = { @@ -1209,7 +1273,8 @@ static const struct of_device_id imx6_pcie_of_match[] = {  	{ .compatible = "fsl,imx6sx-pcie", .data = &drvdata[IMX6SX], },  	{ .compatible = "fsl,imx6qp-pcie", .data = &drvdata[IMX6QP], },  	{ .compatible = "fsl,imx7d-pcie",  .data = &drvdata[IMX7D],  }, -	{ .compatible = "fsl,imx8mq-pcie", .data = &drvdata[IMX8MQ], } , +	{ .compatible = "fsl,imx8mq-pcie", .data = &drvdata[IMX8MQ], }, +	{ .compatible = "fsl,imx8mm-pcie", .data = &drvdata[IMX8MM], },  	{},  }; diff --git a/drivers/pci/controller/dwc/pci-keystone.c b/drivers/pci/controller/dwc/pci-keystone.c index 865258d8c53c..1c2ee4e13f1c 100644 --- a/drivers/pci/controller/dwc/pci-keystone.c +++ b/drivers/pci/controller/dwc/pci-keystone.c @@ -747,9 +747,9 @@ err:  #ifdef CONFIG_ARM  /* - * When a PCI device does not exist during config cycles, keystone host gets a - * bus error instead of returning 0xffffffff. This handler always returns 0 - * for this kind of faults. + * When a PCI device does not exist during config cycles, keystone host + * gets a bus error instead of returning 0xffffffff (PCI_ERROR_RESPONSE). + * This handler always returns 0 for this kind of fault.   */  static int ks_pcie_fault(unsigned long addr, unsigned int fsr,  			 struct pt_regs *regs) @@ -775,12 +775,19 @@ static int __init ks_pcie_init_id(struct keystone_pcie *ks_pcie)  	struct dw_pcie *pci = ks_pcie->pci;  	struct device *dev = pci->dev;  	struct device_node *np = dev->of_node; +	struct of_phandle_args args; +	unsigned int offset = 0;  	devctrl_regs = syscon_regmap_lookup_by_phandle(np, "ti,syscon-pcie-id");  	if (IS_ERR(devctrl_regs))  		return PTR_ERR(devctrl_regs); -	ret = regmap_read(devctrl_regs, 0, &id); +	/* Do not error out to maintain old DT compatibility */ +	ret = of_parse_phandle_with_fixed_args(np, "ti,syscon-pcie-id", 1, 0, &args); +	if (!ret) +		offset = args.args[0]; + +	ret = regmap_read(devctrl_regs, offset, &id);  	if (ret)  		return ret; @@ -989,6 +996,8 @@ err_phy:  static int ks_pcie_set_mode(struct device *dev)  {  	struct device_node *np = dev->of_node; +	struct of_phandle_args args; +	unsigned int offset = 0;  	struct regmap *syscon;  	u32 val;  	u32 mask; @@ -998,10 +1007,15 @@ static int ks_pcie_set_mode(struct device *dev)  	if (IS_ERR(syscon))  		return 0; +	/* Do not error out to maintain old DT compatibility */ +	ret = of_parse_phandle_with_fixed_args(np, "ti,syscon-pcie-mode", 1, 0, &args); +	if (!ret) +		offset = args.args[0]; +  	mask = KS_PCIE_DEV_TYPE_MASK | KS_PCIE_SYSCLOCKOUTEN;  	val = KS_PCIE_DEV_TYPE(RC) | KS_PCIE_SYSCLOCKOUTEN; -	ret = regmap_update_bits(syscon, 0, mask, val); +	ret = regmap_update_bits(syscon, offset, mask, val);  	if (ret) {  		dev_err(dev, "failed to set pcie mode\n");  		return ret; @@ -1014,6 +1028,8 @@ static int ks_pcie_am654_set_mode(struct device *dev,  				  enum dw_pcie_device_mode mode)  {  	struct device_node *np = dev->of_node; +	struct of_phandle_args args; +	unsigned int offset = 0;  	struct regmap *syscon;  	u32 val;  	u32 mask; @@ -1023,6 +1039,11 @@ static int ks_pcie_am654_set_mode(struct device *dev,  	if (IS_ERR(syscon))  		return 0; +	/* Do not error out to maintain old DT compatibility */ +	ret = of_parse_phandle_with_fixed_args(np, "ti,syscon-pcie-mode", 1, 0, &args); +	if (!ret) +		offset = args.args[0]; +  	mask = AM654_PCIE_DEV_TYPE_MASK;  	switch (mode) { @@ -1037,7 +1058,7 @@ static int ks_pcie_am654_set_mode(struct device *dev,  		return -EINVAL;  	} -	ret = regmap_update_bits(syscon, 0, mask, val); +	ret = regmap_update_bits(syscon, offset, mask, val);  	if (ret) {  		dev_err(dev, "failed to set pcie mode\n");  		return ret; @@ -1087,7 +1108,6 @@ static int __init ks_pcie_probe(struct platform_device *pdev)  	struct device *dev = &pdev->dev;  	struct device_node *np = dev->of_node;  	const struct ks_pcie_of_data *data; -	const struct of_device_id *match;  	enum dw_pcie_device_mode mode;  	struct dw_pcie *pci;  	struct keystone_pcie *ks_pcie; @@ -1104,8 +1124,7 @@ static int __init ks_pcie_probe(struct platform_device *pdev)  	int irq;  	int i; -	match = of_match_device(of_match_ptr(ks_pcie_of_match), dev); -	data = (struct ks_pcie_of_data *)match->data; +	data = of_device_get_match_data(dev);  	if (!data)  		return -EINVAL; diff --git a/drivers/pci/controller/dwc/pci-layerscape.c b/drivers/pci/controller/dwc/pci-layerscape.c index 5b9c625df7b8..6a4f0619bb1c 100644 --- a/drivers/pci/controller/dwc/pci-layerscape.c +++ b/drivers/pci/controller/dwc/pci-layerscape.c @@ -3,6 +3,7 @@   * PCIe host controller driver for Freescale Layerscape SoCs   *   * Copyright (C) 2014 Freescale Semiconductor. + * Copyright 2021 NXP   *   * Author: Minghuan Lian <[email protected]>   */ @@ -22,12 +23,6 @@  #include "pcie-designware.h" -/* PEX1/2 Misc Ports Status Register */ -#define SCFG_PEXMSCPORTSR(pex_idx)	(0x94 + (pex_idx) * 4) -#define LTSSM_STATE_SHIFT	20 -#define LTSSM_STATE_MASK	0x3f -#define LTSSM_PCIE_L0		0x11 /* L0 state */ -  /* PEX Internal Configuration Registers */  #define PCIE_STRFMR1		0x71c /* Symbol Timer & Filter Mask Register1 */  #define PCIE_ABSERR		0x8d0 /* Bridge Slave Error Response Register */ @@ -35,20 +30,8 @@  #define PCIE_IATU_NUM		6 -struct ls_pcie_drvdata { -	u32 lut_offset; -	u32 ltssm_shift; -	u32 lut_dbg; -	const struct dw_pcie_host_ops *ops; -	const struct dw_pcie_ops *dw_pcie_ops; -}; -  struct ls_pcie {  	struct dw_pcie *pci; -	void __iomem *lut; -	struct regmap *scfg; -	const struct ls_pcie_drvdata *drvdata; -	int index;  };  #define to_ls_pcie(x)	dev_get_drvdata((x)->dev) @@ -83,38 +66,6 @@ static void ls_pcie_drop_msg_tlp(struct ls_pcie *pcie)  	iowrite32(val, pci->dbi_base + PCIE_STRFMR1);  } -static int ls1021_pcie_link_up(struct dw_pcie *pci) -{ -	u32 state; -	struct ls_pcie *pcie = to_ls_pcie(pci); - -	if (!pcie->scfg) -		return 0; - -	regmap_read(pcie->scfg, SCFG_PEXMSCPORTSR(pcie->index), &state); -	state = (state >> LTSSM_STATE_SHIFT) & LTSSM_STATE_MASK; - -	if (state < LTSSM_PCIE_L0) -		return 0; - -	return 1; -} - -static int ls_pcie_link_up(struct dw_pcie *pci) -{ -	struct ls_pcie *pcie = to_ls_pcie(pci); -	u32 state; - -	state = (ioread32(pcie->lut + pcie->drvdata->lut_dbg) >> -		 pcie->drvdata->ltssm_shift) & -		 LTSSM_STATE_MASK; - -	if (state < LTSSM_PCIE_L0) -		return 0; - -	return 1; -} -  /* Forward error response of outbound non-posted requests */  static void ls_pcie_fix_error_response(struct ls_pcie *pcie)  { @@ -139,96 +90,20 @@ static int ls_pcie_host_init(struct pcie_port *pp)  	return 0;  } -static int ls1021_pcie_host_init(struct pcie_port *pp) -{ -	struct dw_pcie *pci = to_dw_pcie_from_pp(pp); -	struct ls_pcie *pcie = to_ls_pcie(pci); -	struct device *dev = pci->dev; -	u32 index[2]; -	int ret; - -	pcie->scfg = syscon_regmap_lookup_by_phandle(dev->of_node, -						     "fsl,pcie-scfg"); -	if (IS_ERR(pcie->scfg)) { -		ret = PTR_ERR(pcie->scfg); -		dev_err(dev, "No syscfg phandle specified\n"); -		pcie->scfg = NULL; -		return ret; -	} - -	if (of_property_read_u32_array(dev->of_node, -				       "fsl,pcie-scfg", index, 2)) { -		pcie->scfg = NULL; -		return -EINVAL; -	} -	pcie->index = index[1]; - -	return ls_pcie_host_init(pp); -} - -static const struct dw_pcie_host_ops ls1021_pcie_host_ops = { -	.host_init = ls1021_pcie_host_init, -}; -  static const struct dw_pcie_host_ops ls_pcie_host_ops = {  	.host_init = ls_pcie_host_init,  }; -static const struct dw_pcie_ops dw_ls1021_pcie_ops = { -	.link_up = ls1021_pcie_link_up, -}; - -static const struct dw_pcie_ops dw_ls_pcie_ops = { -	.link_up = ls_pcie_link_up, -}; - -static const struct ls_pcie_drvdata ls1021_drvdata = { -	.ops = &ls1021_pcie_host_ops, -	.dw_pcie_ops = &dw_ls1021_pcie_ops, -}; - -static const struct ls_pcie_drvdata ls1043_drvdata = { -	.lut_offset = 0x10000, -	.ltssm_shift = 24, -	.lut_dbg = 0x7fc, -	.ops = &ls_pcie_host_ops, -	.dw_pcie_ops = &dw_ls_pcie_ops, -}; - -static const struct ls_pcie_drvdata ls1046_drvdata = { -	.lut_offset = 0x80000, -	.ltssm_shift = 24, -	.lut_dbg = 0x407fc, -	.ops = &ls_pcie_host_ops, -	.dw_pcie_ops = &dw_ls_pcie_ops, -}; - -static const struct ls_pcie_drvdata ls2080_drvdata = { -	.lut_offset = 0x80000, -	.ltssm_shift = 0, -	.lut_dbg = 0x7fc, -	.ops = &ls_pcie_host_ops, -	.dw_pcie_ops = &dw_ls_pcie_ops, -}; - -static const struct ls_pcie_drvdata ls2088_drvdata = { -	.lut_offset = 0x80000, -	.ltssm_shift = 0, -	.lut_dbg = 0x407fc, -	.ops = &ls_pcie_host_ops, -	.dw_pcie_ops = &dw_ls_pcie_ops, -}; -  static const struct of_device_id ls_pcie_of_match[] = { -	{ .compatible = "fsl,ls1012a-pcie", .data = &ls1046_drvdata }, -	{ .compatible = "fsl,ls1021a-pcie", .data = &ls1021_drvdata }, -	{ .compatible = "fsl,ls1028a-pcie", .data = &ls2088_drvdata }, -	{ .compatible = "fsl,ls1043a-pcie", .data = &ls1043_drvdata }, -	{ .compatible = "fsl,ls1046a-pcie", .data = &ls1046_drvdata }, -	{ .compatible = "fsl,ls2080a-pcie", .data = &ls2080_drvdata }, -	{ .compatible = "fsl,ls2085a-pcie", .data = &ls2080_drvdata }, -	{ .compatible = "fsl,ls2088a-pcie", .data = &ls2088_drvdata }, -	{ .compatible = "fsl,ls1088a-pcie", .data = &ls2088_drvdata }, +	{ .compatible = "fsl,ls1012a-pcie", }, +	{ .compatible = "fsl,ls1021a-pcie", }, +	{ .compatible = "fsl,ls1028a-pcie", }, +	{ .compatible = "fsl,ls1043a-pcie", }, +	{ .compatible = "fsl,ls1046a-pcie", }, +	{ .compatible = "fsl,ls2080a-pcie", }, +	{ .compatible = "fsl,ls2085a-pcie", }, +	{ .compatible = "fsl,ls2088a-pcie", }, +	{ .compatible = "fsl,ls1088a-pcie", },  	{ },  }; @@ -247,11 +122,8 @@ static int ls_pcie_probe(struct platform_device *pdev)  	if (!pci)  		return -ENOMEM; -	pcie->drvdata = of_device_get_match_data(dev); -  	pci->dev = dev; -	pci->ops = pcie->drvdata->dw_pcie_ops; -	pci->pp.ops = pcie->drvdata->ops; +	pci->pp.ops = &ls_pcie_host_ops;  	pcie->pci = pci; @@ -260,8 +132,6 @@ static int ls_pcie_probe(struct platform_device *pdev)  	if (IS_ERR(pci->dbi_base))  		return PTR_ERR(pci->dbi_base); -	pcie->lut = pci->dbi_base + pcie->drvdata->lut_offset; -  	if (!ls_pcie_is_bridge(pcie))  		return -ENODEV; diff --git a/drivers/pci/controller/dwc/pcie-artpec6.c b/drivers/pci/controller/dwc/pcie-artpec6.c index c91fc1954432..2f15441770e1 100644 --- a/drivers/pci/controller/dwc/pcie-artpec6.c +++ b/drivers/pci/controller/dwc/pcie-artpec6.c @@ -380,17 +380,15 @@ static int artpec6_pcie_probe(struct platform_device *pdev)  	struct dw_pcie *pci;  	struct artpec6_pcie *artpec6_pcie;  	int ret; -	const struct of_device_id *match;  	const struct artpec_pcie_of_data *data;  	enum artpec_pcie_variants variant;  	enum dw_pcie_device_mode mode;  	u32 val; -	match = of_match_device(artpec6_pcie_of_match, dev); -	if (!match) +	data = of_device_get_match_data(dev); +	if (!data)  		return -EINVAL; -	data = (struct artpec_pcie_of_data *)match->data;  	variant = (enum artpec_pcie_variants)data->variant;  	mode = (enum dw_pcie_device_mode)data->mode; diff --git a/drivers/pci/controller/dwc/pcie-designware-plat.c b/drivers/pci/controller/dwc/pcie-designware-plat.c index 8851eb161a0e..0c5de87d3cc6 100644 --- a/drivers/pci/controller/dwc/pcie-designware-plat.c +++ b/drivers/pci/controller/dwc/pcie-designware-plat.c @@ -122,15 +122,13 @@ static int dw_plat_pcie_probe(struct platform_device *pdev)  	struct dw_plat_pcie *dw_plat_pcie;  	struct dw_pcie *pci;  	int ret; -	const struct of_device_id *match;  	const struct dw_plat_pcie_of_data *data;  	enum dw_pcie_device_mode mode; -	match = of_match_device(dw_plat_pcie_of_match, dev); -	if (!match) +	data = of_device_get_match_data(dev); +	if (!data)  		return -EINVAL; -	data = (struct dw_plat_pcie_of_data *)match->data;  	mode = (enum dw_pcie_device_mode)data->mode;  	dw_plat_pcie = devm_kzalloc(dev, sizeof(*dw_plat_pcie), GFP_KERNEL); diff --git a/drivers/pci/controller/dwc/pcie-designware.c b/drivers/pci/controller/dwc/pcie-designware.c index 850b4533f4ef..d92c8a25094f 100644 --- a/drivers/pci/controller/dwc/pcie-designware.c +++ b/drivers/pci/controller/dwc/pcie-designware.c @@ -672,10 +672,11 @@ void dw_pcie_iatu_detect(struct dw_pcie *pci)  		if (!pci->atu_base) {  			struct resource *res =  				platform_get_resource_byname(pdev, IORESOURCE_MEM, "atu"); -			if (res) +			if (res) {  				pci->atu_size = resource_size(res); -			pci->atu_base = devm_ioremap_resource(dev, res); -			if (IS_ERR(pci->atu_base)) +				pci->atu_base = devm_ioremap_resource(dev, res); +			} +			if (!pci->atu_base || IS_ERR(pci->atu_base))  				pci->atu_base = pci->dbi_base + DEFAULT_DBI_ATU_OFFSET;  		} diff --git a/drivers/pci/controller/dwc/pcie-hisi.c b/drivers/pci/controller/dwc/pcie-hisi.c index 8fc5960faf28..8904b5b85ee5 100644 --- a/drivers/pci/controller/dwc/pcie-hisi.c +++ b/drivers/pci/controller/dwc/pcie-hisi.c @@ -18,6 +18,10 @@  #if defined(CONFIG_PCI_HISI) || (defined(CONFIG_ACPI) && defined(CONFIG_PCI_QUIRKS)) +struct hisi_pcie { +	void __iomem	*reg_base; +}; +  static int hisi_pcie_rd_conf(struct pci_bus *bus, u32 devfn, int where,  			     int size, u32 *val)  { @@ -58,10 +62,10 @@ static void __iomem *hisi_pcie_map_bus(struct pci_bus *bus, unsigned int devfn,  				       int where)  {  	struct pci_config_window *cfg = bus->sysdata; -	void __iomem *reg_base = cfg->priv; +	struct hisi_pcie *pcie = cfg->priv;  	if (bus->number == cfg->busr.start) -		return reg_base + where; +		return pcie->reg_base + where;  	else  		return pci_ecam_map_bus(bus, devfn, where);  } @@ -71,12 +75,16 @@ static void __iomem *hisi_pcie_map_bus(struct pci_bus *bus, unsigned int devfn,  static int hisi_pcie_init(struct pci_config_window *cfg)  {  	struct device *dev = cfg->parent; +	struct hisi_pcie *pcie;  	struct acpi_device *adev = to_acpi_device(dev);  	struct acpi_pci_root *root = acpi_driver_data(adev);  	struct resource *res; -	void __iomem *reg_base;  	int ret; +	pcie = devm_kzalloc(dev, sizeof(*pcie), GFP_KERNEL); +	if (!pcie) +		return -ENOMEM; +  	/*  	 * Retrieve RC base and size from a HISI0081 device with _UID  	 * matching our segment. @@ -91,11 +99,11 @@ static int hisi_pcie_init(struct pci_config_window *cfg)  		return -ENOMEM;  	} -	reg_base = devm_pci_remap_cfgspace(dev, res->start, resource_size(res)); -	if (!reg_base) +	pcie->reg_base = devm_pci_remap_cfgspace(dev, res->start, resource_size(res)); +	if (!pcie->reg_base)  		return -ENOMEM; -	cfg->priv = reg_base; +	cfg->priv = pcie;  	return 0;  } @@ -115,9 +123,13 @@ const struct pci_ecam_ops hisi_pcie_ops = {  static int hisi_pcie_platform_init(struct pci_config_window *cfg)  {  	struct device *dev = cfg->parent; +	struct hisi_pcie *pcie;  	struct platform_device *pdev = to_platform_device(dev);  	struct resource *res; -	void __iomem *reg_base; + +	pcie = devm_kzalloc(dev, sizeof(*pcie), GFP_KERNEL); +	if (!pcie) +		return -ENOMEM;  	res = platform_get_resource(pdev, IORESOURCE_MEM, 1);  	if (!res) { @@ -125,11 +137,11 @@ static int hisi_pcie_platform_init(struct pci_config_window *cfg)  		return -EINVAL;  	} -	reg_base = devm_pci_remap_cfgspace(dev, res->start, resource_size(res)); -	if (!reg_base) +	pcie->reg_base = devm_pci_remap_cfgspace(dev, res->start, resource_size(res)); +	if (!pcie->reg_base)  		return -ENOMEM; -	cfg->priv = reg_base; +	cfg->priv = pcie;  	return 0;  } diff --git a/drivers/pci/controller/dwc/pcie-histb.c b/drivers/pci/controller/dwc/pcie-histb.c index 86f9d16c50d7..410555dccb6d 100644 --- a/drivers/pci/controller/dwc/pcie-histb.c +++ b/drivers/pci/controller/dwc/pcie-histb.c @@ -127,10 +127,8 @@ static int histb_pcie_rd_own_conf(struct pci_bus *bus, unsigned int devfn,  {  	struct dw_pcie *pci = to_dw_pcie_from_pp(bus->sysdata); -	if (PCI_SLOT(devfn)) { -		*val = ~0; +	if (PCI_SLOT(devfn))  		return PCIBIOS_DEVICE_NOT_FOUND; -	}  	*val = dw_pcie_read_dbi(pci, where, size);  	return PCIBIOS_SUCCESSFUL; diff --git a/drivers/pci/controller/dwc/pcie-intel-gw.c b/drivers/pci/controller/dwc/pcie-intel-gw.c index d15cf35fa7f2..5ba144924ff8 100644 --- a/drivers/pci/controller/dwc/pcie-intel-gw.c +++ b/drivers/pci/controller/dwc/pcie-intel-gw.c @@ -62,7 +62,7 @@ struct intel_pcie_soc {  	unsigned int	pcie_ver;  }; -struct intel_pcie_port { +struct intel_pcie {  	struct dw_pcie		pci;  	void __iomem		*app_base;  	struct gpio_desc	*reset_gpio; @@ -83,53 +83,53 @@ static void pcie_update_bits(void __iomem *base, u32 ofs, u32 mask, u32 val)  		writel(val, base + ofs);  } -static inline void pcie_app_wr(struct intel_pcie_port *lpp, u32 ofs, u32 val) +static inline void pcie_app_wr(struct intel_pcie *pcie, u32 ofs, u32 val)  { -	writel(val, lpp->app_base + ofs); +	writel(val, pcie->app_base + ofs);  } -static void pcie_app_wr_mask(struct intel_pcie_port *lpp, u32 ofs, +static void pcie_app_wr_mask(struct intel_pcie *pcie, u32 ofs,  			     u32 mask, u32 val)  { -	pcie_update_bits(lpp->app_base, ofs, mask, val); +	pcie_update_bits(pcie->app_base, ofs, mask, val);  } -static inline u32 pcie_rc_cfg_rd(struct intel_pcie_port *lpp, u32 ofs) +static inline u32 pcie_rc_cfg_rd(struct intel_pcie *pcie, u32 ofs)  { -	return dw_pcie_readl_dbi(&lpp->pci, ofs); +	return dw_pcie_readl_dbi(&pcie->pci, ofs);  } -static inline void pcie_rc_cfg_wr(struct intel_pcie_port *lpp, u32 ofs, u32 val) +static inline void pcie_rc_cfg_wr(struct intel_pcie *pcie, u32 ofs, u32 val)  { -	dw_pcie_writel_dbi(&lpp->pci, ofs, val); +	dw_pcie_writel_dbi(&pcie->pci, ofs, val);  } -static void pcie_rc_cfg_wr_mask(struct intel_pcie_port *lpp, u32 ofs, +static void pcie_rc_cfg_wr_mask(struct intel_pcie *pcie, u32 ofs,  				u32 mask, u32 val)  { -	pcie_update_bits(lpp->pci.dbi_base, ofs, mask, val); +	pcie_update_bits(pcie->pci.dbi_base, ofs, mask, val);  } -static void intel_pcie_ltssm_enable(struct intel_pcie_port *lpp) +static void intel_pcie_ltssm_enable(struct intel_pcie *pcie)  { -	pcie_app_wr_mask(lpp, PCIE_APP_CCR, PCIE_APP_CCR_LTSSM_ENABLE, +	pcie_app_wr_mask(pcie, PCIE_APP_CCR, PCIE_APP_CCR_LTSSM_ENABLE,  			 PCIE_APP_CCR_LTSSM_ENABLE);  } -static void intel_pcie_ltssm_disable(struct intel_pcie_port *lpp) +static void intel_pcie_ltssm_disable(struct intel_pcie *pcie)  { -	pcie_app_wr_mask(lpp, PCIE_APP_CCR, PCIE_APP_CCR_LTSSM_ENABLE, 0); +	pcie_app_wr_mask(pcie, PCIE_APP_CCR, PCIE_APP_CCR_LTSSM_ENABLE, 0);  } -static void intel_pcie_link_setup(struct intel_pcie_port *lpp) +static void intel_pcie_link_setup(struct intel_pcie *pcie)  {  	u32 val; -	u8 offset = dw_pcie_find_capability(&lpp->pci, PCI_CAP_ID_EXP); +	u8 offset = dw_pcie_find_capability(&pcie->pci, PCI_CAP_ID_EXP); -	val = pcie_rc_cfg_rd(lpp, offset + PCI_EXP_LNKCTL); +	val = pcie_rc_cfg_rd(pcie, offset + PCI_EXP_LNKCTL);  	val &= ~(PCI_EXP_LNKCTL_LD | PCI_EXP_LNKCTL_ASPMC); -	pcie_rc_cfg_wr(lpp, offset + PCI_EXP_LNKCTL, val); +	pcie_rc_cfg_wr(pcie, offset + PCI_EXP_LNKCTL, val);  }  static void intel_pcie_init_n_fts(struct dw_pcie *pci) @@ -148,14 +148,14 @@ static void intel_pcie_init_n_fts(struct dw_pcie *pci)  	pci->n_fts[0] = PORT_AFR_N_FTS_GEN12_DFT;  } -static int intel_pcie_ep_rst_init(struct intel_pcie_port *lpp) +static int intel_pcie_ep_rst_init(struct intel_pcie *pcie)  { -	struct device *dev = lpp->pci.dev; +	struct device *dev = pcie->pci.dev;  	int ret; -	lpp->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW); -	if (IS_ERR(lpp->reset_gpio)) { -		ret = PTR_ERR(lpp->reset_gpio); +	pcie->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW); +	if (IS_ERR(pcie->reset_gpio)) { +		ret = PTR_ERR(pcie->reset_gpio);  		if (ret != -EPROBE_DEFER)  			dev_err(dev, "Failed to request PCIe GPIO: %d\n", ret);  		return ret; @@ -167,19 +167,19 @@ static int intel_pcie_ep_rst_init(struct intel_pcie_port *lpp)  	return 0;  } -static void intel_pcie_core_rst_assert(struct intel_pcie_port *lpp) +static void intel_pcie_core_rst_assert(struct intel_pcie *pcie)  { -	reset_control_assert(lpp->core_rst); +	reset_control_assert(pcie->core_rst);  } -static void intel_pcie_core_rst_deassert(struct intel_pcie_port *lpp) +static void intel_pcie_core_rst_deassert(struct intel_pcie *pcie)  {  	/*  	 * One micro-second delay to make sure the reset pulse  	 * wide enough so that core reset is clean.  	 */  	udelay(1); -	reset_control_deassert(lpp->core_rst); +	reset_control_deassert(pcie->core_rst);  	/*  	 * Some SoC core reset also reset PHY, more delay needed @@ -188,58 +188,58 @@ static void intel_pcie_core_rst_deassert(struct intel_pcie_port *lpp)  	usleep_range(1000, 2000);  } -static void intel_pcie_device_rst_assert(struct intel_pcie_port *lpp) +static void intel_pcie_device_rst_assert(struct intel_pcie *pcie)  { -	gpiod_set_value_cansleep(lpp->reset_gpio, 1); +	gpiod_set_value_cansleep(pcie->reset_gpio, 1);  } -static void intel_pcie_device_rst_deassert(struct intel_pcie_port *lpp) +static void intel_pcie_device_rst_deassert(struct intel_pcie *pcie)  { -	msleep(lpp->rst_intrvl); -	gpiod_set_value_cansleep(lpp->reset_gpio, 0); +	msleep(pcie->rst_intrvl); +	gpiod_set_value_cansleep(pcie->reset_gpio, 0);  } -static void intel_pcie_core_irq_disable(struct intel_pcie_port *lpp) +static void intel_pcie_core_irq_disable(struct intel_pcie *pcie)  { -	pcie_app_wr(lpp, PCIE_APP_IRNEN, 0); -	pcie_app_wr(lpp, PCIE_APP_IRNCR, PCIE_APP_IRN_INT); +	pcie_app_wr(pcie, PCIE_APP_IRNEN, 0); +	pcie_app_wr(pcie, PCIE_APP_IRNCR, PCIE_APP_IRN_INT);  }  static int intel_pcie_get_resources(struct platform_device *pdev)  { -	struct intel_pcie_port *lpp = platform_get_drvdata(pdev); -	struct dw_pcie *pci = &lpp->pci; +	struct intel_pcie *pcie = platform_get_drvdata(pdev); +	struct dw_pcie *pci = &pcie->pci;  	struct device *dev = pci->dev;  	int ret; -	lpp->core_clk = devm_clk_get(dev, NULL); -	if (IS_ERR(lpp->core_clk)) { -		ret = PTR_ERR(lpp->core_clk); +	pcie->core_clk = devm_clk_get(dev, NULL); +	if (IS_ERR(pcie->core_clk)) { +		ret = PTR_ERR(pcie->core_clk);  		if (ret != -EPROBE_DEFER)  			dev_err(dev, "Failed to get clks: %d\n", ret);  		return ret;  	} -	lpp->core_rst = devm_reset_control_get(dev, NULL); -	if (IS_ERR(lpp->core_rst)) { -		ret = PTR_ERR(lpp->core_rst); +	pcie->core_rst = devm_reset_control_get(dev, NULL); +	if (IS_ERR(pcie->core_rst)) { +		ret = PTR_ERR(pcie->core_rst);  		if (ret != -EPROBE_DEFER)  			dev_err(dev, "Failed to get resets: %d\n", ret);  		return ret;  	}  	ret = device_property_read_u32(dev, "reset-assert-ms", -				       &lpp->rst_intrvl); +				       &pcie->rst_intrvl);  	if (ret) -		lpp->rst_intrvl = RESET_INTERVAL_MS; +		pcie->rst_intrvl = RESET_INTERVAL_MS; -	lpp->app_base = devm_platform_ioremap_resource_byname(pdev, "app"); -	if (IS_ERR(lpp->app_base)) -		return PTR_ERR(lpp->app_base); +	pcie->app_base = devm_platform_ioremap_resource_byname(pdev, "app"); +	if (IS_ERR(pcie->app_base)) +		return PTR_ERR(pcie->app_base); -	lpp->phy = devm_phy_get(dev, "pcie"); -	if (IS_ERR(lpp->phy)) { -		ret = PTR_ERR(lpp->phy); +	pcie->phy = devm_phy_get(dev, "pcie"); +	if (IS_ERR(pcie->phy)) { +		ret = PTR_ERR(pcie->phy);  		if (ret != -EPROBE_DEFER)  			dev_err(dev, "Couldn't get pcie-phy: %d\n", ret);  		return ret; @@ -248,137 +248,137 @@ static int intel_pcie_get_resources(struct platform_device *pdev)  	return 0;  } -static int intel_pcie_wait_l2(struct intel_pcie_port *lpp) +static int intel_pcie_wait_l2(struct intel_pcie *pcie)  {  	u32 value;  	int ret; -	struct dw_pcie *pci = &lpp->pci; +	struct dw_pcie *pci = &pcie->pci;  	if (pci->link_gen < 3)  		return 0;  	/* Send PME_TURN_OFF message */ -	pcie_app_wr_mask(lpp, PCIE_APP_MSG_CR, PCIE_APP_MSG_XMT_PM_TURNOFF, +	pcie_app_wr_mask(pcie, PCIE_APP_MSG_CR, PCIE_APP_MSG_XMT_PM_TURNOFF,  			 PCIE_APP_MSG_XMT_PM_TURNOFF);  	/* Read PMC status and wait for falling into L2 link state */ -	ret = readl_poll_timeout(lpp->app_base + PCIE_APP_PMC, value, +	ret = readl_poll_timeout(pcie->app_base + PCIE_APP_PMC, value,  				 value & PCIE_APP_PMC_IN_L2, 20,  				 jiffies_to_usecs(5 * HZ));  	if (ret) -		dev_err(lpp->pci.dev, "PCIe link enter L2 timeout!\n"); +		dev_err(pcie->pci.dev, "PCIe link enter L2 timeout!\n");  	return ret;  } -static void intel_pcie_turn_off(struct intel_pcie_port *lpp) +static void intel_pcie_turn_off(struct intel_pcie *pcie)  { -	if (dw_pcie_link_up(&lpp->pci)) -		intel_pcie_wait_l2(lpp); +	if (dw_pcie_link_up(&pcie->pci)) +		intel_pcie_wait_l2(pcie);  	/* Put endpoint device in reset state */ -	intel_pcie_device_rst_assert(lpp); -	pcie_rc_cfg_wr_mask(lpp, PCI_COMMAND, PCI_COMMAND_MEMORY, 0); +	intel_pcie_device_rst_assert(pcie); +	pcie_rc_cfg_wr_mask(pcie, PCI_COMMAND, PCI_COMMAND_MEMORY, 0);  } -static int intel_pcie_host_setup(struct intel_pcie_port *lpp) +static int intel_pcie_host_setup(struct intel_pcie *pcie)  {  	int ret; -	struct dw_pcie *pci = &lpp->pci; +	struct dw_pcie *pci = &pcie->pci; -	intel_pcie_core_rst_assert(lpp); -	intel_pcie_device_rst_assert(lpp); +	intel_pcie_core_rst_assert(pcie); +	intel_pcie_device_rst_assert(pcie); -	ret = phy_init(lpp->phy); +	ret = phy_init(pcie->phy);  	if (ret)  		return ret; -	intel_pcie_core_rst_deassert(lpp); +	intel_pcie_core_rst_deassert(pcie); -	ret = clk_prepare_enable(lpp->core_clk); +	ret = clk_prepare_enable(pcie->core_clk);  	if (ret) { -		dev_err(lpp->pci.dev, "Core clock enable failed: %d\n", ret); +		dev_err(pcie->pci.dev, "Core clock enable failed: %d\n", ret);  		goto clk_err;  	}  	pci->atu_base = pci->dbi_base + 0xC0000; -	intel_pcie_ltssm_disable(lpp); -	intel_pcie_link_setup(lpp); +	intel_pcie_ltssm_disable(pcie); +	intel_pcie_link_setup(pcie);  	intel_pcie_init_n_fts(pci);  	dw_pcie_setup_rc(&pci->pp);  	dw_pcie_upconfig_setup(pci); -	intel_pcie_device_rst_deassert(lpp); -	intel_pcie_ltssm_enable(lpp); +	intel_pcie_device_rst_deassert(pcie); +	intel_pcie_ltssm_enable(pcie);  	ret = dw_pcie_wait_for_link(pci);  	if (ret)  		goto app_init_err;  	/* Enable integrated interrupts */ -	pcie_app_wr_mask(lpp, PCIE_APP_IRNEN, PCIE_APP_IRN_INT, +	pcie_app_wr_mask(pcie, PCIE_APP_IRNEN, PCIE_APP_IRN_INT,  			 PCIE_APP_IRN_INT);  	return 0;  app_init_err: -	clk_disable_unprepare(lpp->core_clk); +	clk_disable_unprepare(pcie->core_clk);  clk_err: -	intel_pcie_core_rst_assert(lpp); -	phy_exit(lpp->phy); +	intel_pcie_core_rst_assert(pcie); +	phy_exit(pcie->phy);  	return ret;  } -static void __intel_pcie_remove(struct intel_pcie_port *lpp) +static void __intel_pcie_remove(struct intel_pcie *pcie)  { -	intel_pcie_core_irq_disable(lpp); -	intel_pcie_turn_off(lpp); -	clk_disable_unprepare(lpp->core_clk); -	intel_pcie_core_rst_assert(lpp); -	phy_exit(lpp->phy); +	intel_pcie_core_irq_disable(pcie); +	intel_pcie_turn_off(pcie); +	clk_disable_unprepare(pcie->core_clk); +	intel_pcie_core_rst_assert(pcie); +	phy_exit(pcie->phy);  }  static int intel_pcie_remove(struct platform_device *pdev)  { -	struct intel_pcie_port *lpp = platform_get_drvdata(pdev); -	struct pcie_port *pp = &lpp->pci.pp; +	struct intel_pcie *pcie = platform_get_drvdata(pdev); +	struct pcie_port *pp = &pcie->pci.pp;  	dw_pcie_host_deinit(pp); -	__intel_pcie_remove(lpp); +	__intel_pcie_remove(pcie);  	return 0;  }  static int __maybe_unused intel_pcie_suspend_noirq(struct device *dev)  { -	struct intel_pcie_port *lpp = dev_get_drvdata(dev); +	struct intel_pcie *pcie = dev_get_drvdata(dev);  	int ret; -	intel_pcie_core_irq_disable(lpp); -	ret = intel_pcie_wait_l2(lpp); +	intel_pcie_core_irq_disable(pcie); +	ret = intel_pcie_wait_l2(pcie);  	if (ret)  		return ret; -	phy_exit(lpp->phy); -	clk_disable_unprepare(lpp->core_clk); +	phy_exit(pcie->phy); +	clk_disable_unprepare(pcie->core_clk);  	return ret;  }  static int __maybe_unused intel_pcie_resume_noirq(struct device *dev)  { -	struct intel_pcie_port *lpp = dev_get_drvdata(dev); +	struct intel_pcie *pcie = dev_get_drvdata(dev); -	return intel_pcie_host_setup(lpp); +	return intel_pcie_host_setup(pcie);  }  static int intel_pcie_rc_init(struct pcie_port *pp)  {  	struct dw_pcie *pci = to_dw_pcie_from_pp(pp); -	struct intel_pcie_port *lpp = dev_get_drvdata(pci->dev); +	struct intel_pcie *pcie = dev_get_drvdata(pci->dev); -	return intel_pcie_host_setup(lpp); +	return intel_pcie_host_setup(pcie);  }  static u64 intel_pcie_cpu_addr(struct dw_pcie *pcie, u64 cpu_addr) @@ -402,17 +402,17 @@ static int intel_pcie_probe(struct platform_device *pdev)  {  	const struct intel_pcie_soc *data;  	struct device *dev = &pdev->dev; -	struct intel_pcie_port *lpp; +	struct intel_pcie *pcie;  	struct pcie_port *pp;  	struct dw_pcie *pci;  	int ret; -	lpp = devm_kzalloc(dev, sizeof(*lpp), GFP_KERNEL); -	if (!lpp) +	pcie = devm_kzalloc(dev, sizeof(*pcie), GFP_KERNEL); +	if (!pcie)  		return -ENOMEM; -	platform_set_drvdata(pdev, lpp); -	pci = &lpp->pci; +	platform_set_drvdata(pdev, pcie); +	pci = &pcie->pci;  	pci->dev = dev;  	pp = &pci->pp; @@ -420,7 +420,7 @@ static int intel_pcie_probe(struct platform_device *pdev)  	if (ret)  		return ret; -	ret = intel_pcie_ep_rst_init(lpp); +	ret = intel_pcie_ep_rst_init(pcie);  	if (ret)  		return ret; diff --git a/drivers/pci/controller/dwc/pcie-kirin.c b/drivers/pci/controller/dwc/pcie-kirin.c index 095afbccf9c1..fa6886d66488 100644 --- a/drivers/pci/controller/dwc/pcie-kirin.c +++ b/drivers/pci/controller/dwc/pcie-kirin.c @@ -530,10 +530,8 @@ static int kirin_pcie_rd_own_conf(struct pci_bus *bus, unsigned int devfn,  {  	struct dw_pcie *pci = to_dw_pcie_from_pp(bus->sysdata); -	if (PCI_SLOT(devfn)) { -		*val = ~0; +	if (PCI_SLOT(devfn))  		return PCIBIOS_DEVICE_NOT_FOUND; -	}  	*val = dw_pcie_read_dbi(pci, where, size);  	return PCIBIOS_SUCCESSFUL; @@ -773,7 +771,6 @@ static const struct of_device_id kirin_pcie_match[] = {  static int kirin_pcie_probe(struct platform_device *pdev)  {  	enum pcie_kirin_phy_type phy_type; -	const struct of_device_id *of_id;  	struct device *dev = &pdev->dev;  	struct kirin_pcie *kirin_pcie;  	struct dw_pcie *pci; @@ -784,13 +781,12 @@ static int kirin_pcie_probe(struct platform_device *pdev)  		return -EINVAL;  	} -	of_id = of_match_device(kirin_pcie_match, dev); -	if (!of_id) { +	phy_type = (long)of_device_get_match_data(dev); +	if (!phy_type) {  		dev_err(dev, "OF data missing\n");  		return -EINVAL;  	} -	phy_type = (long)of_id->data;  	kirin_pcie = devm_kzalloc(dev, sizeof(struct kirin_pcie), GFP_KERNEL);  	if (!kirin_pcie) diff --git a/drivers/pci/controller/dwc/pcie-qcom-ep.c b/drivers/pci/controller/dwc/pcie-qcom-ep.c index cfe66bf04c1d..6ce8eddf3a37 100644 --- a/drivers/pci/controller/dwc/pcie-qcom-ep.c +++ b/drivers/pci/controller/dwc/pcie-qcom-ep.c @@ -553,10 +553,8 @@ static int qcom_pcie_ep_enable_irq_resources(struct platform_device *pdev,  	int irq, ret;  	irq = platform_get_irq_byname(pdev, "global"); -	if (irq < 0) { -		dev_err(&pdev->dev, "Failed to get Global IRQ\n"); +	if (irq < 0)  		return irq; -	}  	ret = devm_request_threaded_irq(&pdev->dev, irq, NULL,  					qcom_pcie_ep_global_irq_thread, @@ -620,7 +618,7 @@ static void qcom_pcie_ep_init(struct dw_pcie_ep *ep)  		dw_pcie_ep_reset_bar(pci, bar);  } -static struct dw_pcie_ep_ops pci_ep_ops = { +static const struct dw_pcie_ep_ops pci_ep_ops = {  	.ep_init = qcom_pcie_ep_init,  	.raise_irq = qcom_pcie_ep_raise_irq,  	.get_features = qcom_pcie_epc_get_features, diff --git a/drivers/pci/controller/dwc/pcie-qcom.c b/drivers/pci/controller/dwc/pcie-qcom.c index 1c3d1116bb60..c19cd506ed3f 100644 --- a/drivers/pci/controller/dwc/pcie-qcom.c +++ b/drivers/pci/controller/dwc/pcie-qcom.c @@ -1343,7 +1343,7 @@ static int qcom_pcie_config_sid_sm8250(struct qcom_pcie *pcie)  	/* Look for an available entry to hold the mapping */  	for (i = 0; i < nr_map; i++) { -		u16 bdf_be = cpu_to_be16(map[i].bdf); +		__be16 bdf_be = cpu_to_be16(map[i].bdf);  		u32 val;  		u8 hash; @@ -1534,6 +1534,12 @@ static int qcom_pcie_probe(struct platform_device *pdev)  	const struct qcom_pcie_cfg *pcie_cfg;  	int ret; +	pcie_cfg = of_device_get_match_data(dev); +	if (!pcie_cfg || !pcie_cfg->ops) { +		dev_err(dev, "Invalid platform data\n"); +		return -EINVAL; +	} +  	pcie = devm_kzalloc(dev, sizeof(*pcie), GFP_KERNEL);  	if (!pcie)  		return -ENOMEM; @@ -1553,12 +1559,6 @@ static int qcom_pcie_probe(struct platform_device *pdev)  	pcie->pci = pci; -	pcie_cfg = of_device_get_match_data(dev); -	if (!pcie_cfg || !pcie_cfg->ops) { -		dev_err(dev, "Invalid platform data\n"); -		return -EINVAL; -	} -  	pcie->ops = pcie_cfg->ops;  	pcie->pipe_clk_need_muxing = pcie_cfg->pipe_clk_need_muxing; diff --git a/drivers/pci/controller/dwc/pcie-spear13xx.c b/drivers/pci/controller/dwc/pcie-spear13xx.c index 1a9e353bef55..1569e82b5568 100644 --- a/drivers/pci/controller/dwc/pcie-spear13xx.c +++ b/drivers/pci/controller/dwc/pcie-spear13xx.c @@ -69,7 +69,7 @@ struct pcie_app_reg {  static int spear13xx_pcie_start_link(struct dw_pcie *pci)  {  	struct spear13xx_pcie *spear13xx_pcie = to_spear13xx_pcie(pci); -	struct pcie_app_reg *app_reg = spear13xx_pcie->app_base; +	struct pcie_app_reg __iomem *app_reg = spear13xx_pcie->app_base;  	/* enable ltssm */  	writel(DEVICE_TYPE_RC | (1 << MISCTRL_EN_ID) @@ -83,7 +83,7 @@ static int spear13xx_pcie_start_link(struct dw_pcie *pci)  static irqreturn_t spear13xx_pcie_irq_handler(int irq, void *arg)  {  	struct spear13xx_pcie *spear13xx_pcie = arg; -	struct pcie_app_reg *app_reg = spear13xx_pcie->app_base; +	struct pcie_app_reg __iomem *app_reg = spear13xx_pcie->app_base;  	struct dw_pcie *pci = spear13xx_pcie->pci;  	struct pcie_port *pp = &pci->pp;  	unsigned int status; @@ -102,7 +102,7 @@ static irqreturn_t spear13xx_pcie_irq_handler(int irq, void *arg)  static void spear13xx_pcie_enable_interrupts(struct spear13xx_pcie *spear13xx_pcie)  { -	struct pcie_app_reg *app_reg = spear13xx_pcie->app_base; +	struct pcie_app_reg __iomem *app_reg = spear13xx_pcie->app_base;  	/* Enable MSI interrupt */  	if (IS_ENABLED(CONFIG_PCI_MSI)) @@ -113,7 +113,7 @@ static void spear13xx_pcie_enable_interrupts(struct spear13xx_pcie *spear13xx_pc  static int spear13xx_pcie_link_up(struct dw_pcie *pci)  {  	struct spear13xx_pcie *spear13xx_pcie = to_spear13xx_pcie(pci); -	struct pcie_app_reg *app_reg = spear13xx_pcie->app_base; +	struct pcie_app_reg __iomem *app_reg = spear13xx_pcie->app_base;  	if (readl(&app_reg->app_status_1) & XMLH_LINK_UP)  		return 1; diff --git a/drivers/pci/controller/dwc/pcie-tegra194.c b/drivers/pci/controller/dwc/pcie-tegra194.c index 904976913081..b1b5f836a806 100644 --- a/drivers/pci/controller/dwc/pcie-tegra194.c +++ b/drivers/pci/controller/dwc/pcie-tegra194.c @@ -245,7 +245,7 @@ static const unsigned int pcie_gen_freq[] = {  	GEN4_CORE_CLK_FREQ  }; -struct tegra_pcie_dw { +struct tegra194_pcie {  	struct device *dev;  	struct resource *appl_res;  	struct resource *dbi_res; @@ -289,22 +289,22 @@ struct tegra_pcie_dw {  	int ep_state;  }; -struct tegra_pcie_dw_of_data { +struct tegra194_pcie_of_data {  	enum dw_pcie_device_mode mode;  }; -static inline struct tegra_pcie_dw *to_tegra_pcie(struct dw_pcie *pci) +static inline struct tegra194_pcie *to_tegra_pcie(struct dw_pcie *pci)  { -	return container_of(pci, struct tegra_pcie_dw, pci); +	return container_of(pci, struct tegra194_pcie, pci);  } -static inline void appl_writel(struct tegra_pcie_dw *pcie, const u32 value, +static inline void appl_writel(struct tegra194_pcie *pcie, const u32 value,  			       const u32 reg)  {  	writel_relaxed(value, pcie->appl_base + reg);  } -static inline u32 appl_readl(struct tegra_pcie_dw *pcie, const u32 reg) +static inline u32 appl_readl(struct tegra194_pcie *pcie, const u32 reg)  {  	return readl_relaxed(pcie->appl_base + reg);  } @@ -316,7 +316,7 @@ struct tegra_pcie_soc {  static void apply_bad_link_workaround(struct pcie_port *pp)  {  	struct dw_pcie *pci = to_dw_pcie_from_pp(pp); -	struct tegra_pcie_dw *pcie = to_tegra_pcie(pci); +	struct tegra194_pcie *pcie = to_tegra_pcie(pci);  	u32 current_link_width;  	u16 val; @@ -349,7 +349,7 @@ static void apply_bad_link_workaround(struct pcie_port *pp)  static irqreturn_t tegra_pcie_rp_irq_handler(int irq, void *arg)  { -	struct tegra_pcie_dw *pcie = arg; +	struct tegra194_pcie *pcie = arg;  	struct dw_pcie *pci = &pcie->pci;  	struct pcie_port *pp = &pci->pp;  	u32 val, tmp; @@ -420,7 +420,7 @@ static irqreturn_t tegra_pcie_rp_irq_handler(int irq, void *arg)  	return IRQ_HANDLED;  } -static void pex_ep_event_hot_rst_done(struct tegra_pcie_dw *pcie) +static void pex_ep_event_hot_rst_done(struct tegra194_pcie *pcie)  {  	u32 val; @@ -448,7 +448,7 @@ static void pex_ep_event_hot_rst_done(struct tegra_pcie_dw *pcie)  static irqreturn_t tegra_pcie_ep_irq_thread(int irq, void *arg)  { -	struct tegra_pcie_dw *pcie = arg; +	struct tegra194_pcie *pcie = arg;  	struct dw_pcie *pci = &pcie->pci;  	u32 val, speed; @@ -494,7 +494,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)  { -	struct tegra_pcie_dw *pcie = arg; +	struct tegra194_pcie *pcie = arg;  	struct dw_pcie_ep *ep = &pcie->pci.ep;  	int spurious = 1;  	u32 status_l0, status_l1, link_status; @@ -537,7 +537,7 @@ static irqreturn_t tegra_pcie_ep_hard_irq(int irq, void *arg)  	return IRQ_HANDLED;  } -static int tegra_pcie_dw_rd_own_conf(struct pci_bus *bus, u32 devfn, int where, +static int tegra194_pcie_rd_own_conf(struct pci_bus *bus, u32 devfn, int where,  				     int size, u32 *val)  {  	/* @@ -554,7 +554,7 @@ static int tegra_pcie_dw_rd_own_conf(struct pci_bus *bus, u32 devfn, int where,  	return pci_generic_config_read(bus, devfn, where, size, val);  } -static int tegra_pcie_dw_wr_own_conf(struct pci_bus *bus, u32 devfn, int where, +static int tegra194_pcie_wr_own_conf(struct pci_bus *bus, u32 devfn, int where,  				     int size, u32 val)  {  	/* @@ -571,8 +571,8 @@ static int tegra_pcie_dw_wr_own_conf(struct pci_bus *bus, u32 devfn, int where,  static struct pci_ops tegra_pci_ops = {  	.map_bus = dw_pcie_own_conf_map_bus, -	.read = tegra_pcie_dw_rd_own_conf, -	.write = tegra_pcie_dw_wr_own_conf, +	.read = tegra194_pcie_rd_own_conf, +	.write = tegra194_pcie_wr_own_conf,  };  #if defined(CONFIG_PCIEASPM) @@ -594,7 +594,7 @@ static const u32 event_cntr_data_offset[] = {  	0x1dc  }; -static void disable_aspm_l11(struct tegra_pcie_dw *pcie) +static void disable_aspm_l11(struct tegra194_pcie *pcie)  {  	u32 val; @@ -603,7 +603,7 @@ static void disable_aspm_l11(struct tegra_pcie_dw *pcie)  	dw_pcie_writel_dbi(&pcie->pci, pcie->cfg_link_cap_l1sub, val);  } -static void disable_aspm_l12(struct tegra_pcie_dw *pcie) +static void disable_aspm_l12(struct tegra194_pcie *pcie)  {  	u32 val; @@ -612,7 +612,7 @@ static void disable_aspm_l12(struct tegra_pcie_dw *pcie)  	dw_pcie_writel_dbi(&pcie->pci, pcie->cfg_link_cap_l1sub, val);  } -static inline u32 event_counter_prog(struct tegra_pcie_dw *pcie, u32 event) +static inline u32 event_counter_prog(struct tegra194_pcie *pcie, u32 event)  {  	u32 val; @@ -629,7 +629,7 @@ static inline u32 event_counter_prog(struct tegra_pcie_dw *pcie, u32 event)  static int aspm_state_cnt(struct seq_file *s, void *data)  { -	struct tegra_pcie_dw *pcie = (struct tegra_pcie_dw *) +	struct tegra194_pcie *pcie = (struct tegra194_pcie *)  				     dev_get_drvdata(s->private);  	u32 val; @@ -660,7 +660,7 @@ static int aspm_state_cnt(struct seq_file *s, void *data)  	return 0;  } -static void init_host_aspm(struct tegra_pcie_dw *pcie) +static void init_host_aspm(struct tegra194_pcie *pcie)  {  	struct dw_pcie *pci = &pcie->pci;  	u32 val; @@ -688,22 +688,22 @@ static void init_host_aspm(struct tegra_pcie_dw *pcie)  	dw_pcie_writel_dbi(pci, PCIE_PORT_AFR, val);  } -static void init_debugfs(struct tegra_pcie_dw *pcie) +static void init_debugfs(struct tegra194_pcie *pcie)  {  	debugfs_create_devm_seqfile(pcie->dev, "aspm_state_cnt", pcie->debugfs,  				    aspm_state_cnt);  }  #else -static inline void disable_aspm_l12(struct tegra_pcie_dw *pcie) { return; } -static inline void disable_aspm_l11(struct tegra_pcie_dw *pcie) { return; } -static inline void init_host_aspm(struct tegra_pcie_dw *pcie) { return; } -static inline void init_debugfs(struct tegra_pcie_dw *pcie) { return; } +static inline void disable_aspm_l12(struct tegra194_pcie *pcie) { return; } +static inline void disable_aspm_l11(struct tegra194_pcie *pcie) { return; } +static inline void init_host_aspm(struct tegra194_pcie *pcie) { return; } +static inline void init_debugfs(struct tegra194_pcie *pcie) { return; }  #endif  static void tegra_pcie_enable_system_interrupts(struct pcie_port *pp)  {  	struct dw_pcie *pci = to_dw_pcie_from_pp(pp); -	struct tegra_pcie_dw *pcie = to_tegra_pcie(pci); +	struct tegra194_pcie *pcie = to_tegra_pcie(pci);  	u32 val;  	u16 val_w; @@ -741,7 +741,7 @@ static void tegra_pcie_enable_system_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 tegra_pcie_dw *pcie = to_tegra_pcie(pci); +	struct tegra194_pcie *pcie = to_tegra_pcie(pci);  	u32 val;  	/* Enable legacy interrupt generation */ @@ -762,7 +762,7 @@ static void tegra_pcie_enable_legacy_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 tegra_pcie_dw *pcie = to_tegra_pcie(pci); +	struct tegra194_pcie *pcie = to_tegra_pcie(pci);  	u32 val;  	/* Enable MSI interrupt generation */ @@ -775,7 +775,7 @@ static void tegra_pcie_enable_msi_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 tegra_pcie_dw *pcie = to_tegra_pcie(pci); +	struct tegra194_pcie *pcie = to_tegra_pcie(pci);  	/* Clear interrupt statuses before enabling interrupts */  	appl_writel(pcie, 0xFFFFFFFF, APPL_INTR_STATUS_L0); @@ -800,7 +800,7 @@ static void tegra_pcie_enable_interrupts(struct pcie_port *pp)  		tegra_pcie_enable_msi_interrupts(pp);  } -static void config_gen3_gen4_eq_presets(struct tegra_pcie_dw *pcie) +static void config_gen3_gen4_eq_presets(struct tegra194_pcie *pcie)  {  	struct dw_pcie *pci = &pcie->pci;  	u32 val, offset, i; @@ -853,10 +853,10 @@ static void config_gen3_gen4_eq_presets(struct tegra_pcie_dw *pcie)  	dw_pcie_writel_dbi(pci, GEN3_RELATED_OFF, val);  } -static int tegra_pcie_dw_host_init(struct pcie_port *pp) +static int tegra194_pcie_host_init(struct pcie_port *pp)  {  	struct dw_pcie *pci = to_dw_pcie_from_pp(pp); -	struct tegra_pcie_dw *pcie = to_tegra_pcie(pci); +	struct tegra194_pcie *pcie = to_tegra_pcie(pci);  	u32 val;  	pp->bridge->ops = &tegra_pci_ops; @@ -914,10 +914,10 @@ static int tegra_pcie_dw_host_init(struct pcie_port *pp)  	return 0;  } -static int tegra_pcie_dw_start_link(struct dw_pcie *pci) +static int tegra194_pcie_start_link(struct dw_pcie *pci)  {  	u32 val, offset, speed, tmp; -	struct tegra_pcie_dw *pcie = to_tegra_pcie(pci); +	struct tegra194_pcie *pcie = to_tegra_pcie(pci);  	struct pcie_port *pp = &pci->pp;  	bool retry = true; @@ -982,7 +982,7 @@ retry_link:  		val &= ~PCI_DLF_EXCHANGE_ENABLE;  		dw_pcie_writel_dbi(pci, offset, val); -		tegra_pcie_dw_host_init(pp); +		tegra194_pcie_host_init(pp);  		dw_pcie_setup_rc(pp);  		retry = false; @@ -998,32 +998,32 @@ retry_link:  	return 0;  } -static int tegra_pcie_dw_link_up(struct dw_pcie *pci) +static int tegra194_pcie_link_up(struct dw_pcie *pci)  { -	struct tegra_pcie_dw *pcie = to_tegra_pcie(pci); +	struct tegra194_pcie *pcie = to_tegra_pcie(pci);  	u32 val = dw_pcie_readw_dbi(pci, pcie->pcie_cap_base + PCI_EXP_LNKSTA);  	return !!(val & PCI_EXP_LNKSTA_DLLLA);  } -static void tegra_pcie_dw_stop_link(struct dw_pcie *pci) +static void tegra194_pcie_stop_link(struct dw_pcie *pci)  { -	struct tegra_pcie_dw *pcie = to_tegra_pcie(pci); +	struct tegra194_pcie *pcie = to_tegra_pcie(pci);  	disable_irq(pcie->pex_rst_irq);  }  static const struct dw_pcie_ops tegra_dw_pcie_ops = { -	.link_up = tegra_pcie_dw_link_up, -	.start_link = tegra_pcie_dw_start_link, -	.stop_link = tegra_pcie_dw_stop_link, +	.link_up = tegra194_pcie_link_up, +	.start_link = tegra194_pcie_start_link, +	.stop_link = tegra194_pcie_stop_link,  }; -static const struct dw_pcie_host_ops tegra_pcie_dw_host_ops = { -	.host_init = tegra_pcie_dw_host_init, +static const struct dw_pcie_host_ops tegra194_pcie_host_ops = { +	.host_init = tegra194_pcie_host_init,  }; -static void tegra_pcie_disable_phy(struct tegra_pcie_dw *pcie) +static void tegra_pcie_disable_phy(struct tegra194_pcie *pcie)  {  	unsigned int phy_count = pcie->phy_count; @@ -1033,7 +1033,7 @@ static void tegra_pcie_disable_phy(struct tegra_pcie_dw *pcie)  	}  } -static int tegra_pcie_enable_phy(struct tegra_pcie_dw *pcie) +static int tegra_pcie_enable_phy(struct tegra194_pcie *pcie)  {  	unsigned int i;  	int ret; @@ -1060,7 +1060,7 @@ phy_exit:  	return ret;  } -static int tegra_pcie_dw_parse_dt(struct tegra_pcie_dw *pcie) +static int tegra194_pcie_parse_dt(struct tegra194_pcie *pcie)  {  	struct platform_device *pdev = to_platform_device(pcie->dev);  	struct device_node *np = pcie->dev->of_node; @@ -1156,7 +1156,7 @@ static int tegra_pcie_dw_parse_dt(struct tegra_pcie_dw *pcie)  	return 0;  } -static int tegra_pcie_bpmp_set_ctrl_state(struct tegra_pcie_dw *pcie, +static int tegra_pcie_bpmp_set_ctrl_state(struct tegra194_pcie *pcie,  					  bool enable)  {  	struct mrq_uphy_response resp; @@ -1184,7 +1184,7 @@ static int tegra_pcie_bpmp_set_ctrl_state(struct tegra_pcie_dw *pcie,  	return tegra_bpmp_transfer(pcie->bpmp, &msg);  } -static int tegra_pcie_bpmp_set_pll_state(struct tegra_pcie_dw *pcie, +static int tegra_pcie_bpmp_set_pll_state(struct tegra194_pcie *pcie,  					 bool enable)  {  	struct mrq_uphy_response resp; @@ -1212,7 +1212,7 @@ static int tegra_pcie_bpmp_set_pll_state(struct tegra_pcie_dw *pcie,  	return tegra_bpmp_transfer(pcie->bpmp, &msg);  } -static void tegra_pcie_downstream_dev_to_D0(struct tegra_pcie_dw *pcie) +static void tegra_pcie_downstream_dev_to_D0(struct tegra194_pcie *pcie)  {  	struct pcie_port *pp = &pcie->pci.pp;  	struct pci_bus *child, *root_bus = NULL; @@ -1250,7 +1250,7 @@ static void tegra_pcie_downstream_dev_to_D0(struct tegra_pcie_dw *pcie)  	}  } -static int tegra_pcie_get_slot_regulators(struct tegra_pcie_dw *pcie) +static int tegra_pcie_get_slot_regulators(struct tegra194_pcie *pcie)  {  	pcie->slot_ctl_3v3 = devm_regulator_get_optional(pcie->dev, "vpcie3v3");  	if (IS_ERR(pcie->slot_ctl_3v3)) { @@ -1271,7 +1271,7 @@ static int tegra_pcie_get_slot_regulators(struct tegra_pcie_dw *pcie)  	return 0;  } -static int tegra_pcie_enable_slot_regulators(struct tegra_pcie_dw *pcie) +static int tegra_pcie_enable_slot_regulators(struct tegra194_pcie *pcie)  {  	int ret; @@ -1309,7 +1309,7 @@ fail_12v_enable:  	return ret;  } -static void tegra_pcie_disable_slot_regulators(struct tegra_pcie_dw *pcie) +static void tegra_pcie_disable_slot_regulators(struct tegra194_pcie *pcie)  {  	if (pcie->slot_ctl_12v)  		regulator_disable(pcie->slot_ctl_12v); @@ -1317,7 +1317,7 @@ static void tegra_pcie_disable_slot_regulators(struct tegra_pcie_dw *pcie)  		regulator_disable(pcie->slot_ctl_3v3);  } -static int tegra_pcie_config_controller(struct tegra_pcie_dw *pcie, +static int tegra_pcie_config_controller(struct tegra194_pcie *pcie,  					bool en_hw_hot_rst)  {  	int ret; @@ -1414,7 +1414,7 @@ fail_slot_reg_en:  	return ret;  } -static void tegra_pcie_unconfig_controller(struct tegra_pcie_dw *pcie) +static void tegra_pcie_unconfig_controller(struct tegra194_pcie *pcie)  {  	int ret; @@ -1442,7 +1442,7 @@ static void tegra_pcie_unconfig_controller(struct tegra_pcie_dw *pcie)  			pcie->cid, ret);  } -static int tegra_pcie_init_controller(struct tegra_pcie_dw *pcie) +static int tegra_pcie_init_controller(struct tegra194_pcie *pcie)  {  	struct dw_pcie *pci = &pcie->pci;  	struct pcie_port *pp = &pci->pp; @@ -1452,7 +1452,7 @@ static int tegra_pcie_init_controller(struct tegra_pcie_dw *pcie)  	if (ret < 0)  		return ret; -	pp->ops = &tegra_pcie_dw_host_ops; +	pp->ops = &tegra194_pcie_host_ops;  	ret = dw_pcie_host_init(pp);  	if (ret < 0) { @@ -1467,11 +1467,11 @@ fail_host_init:  	return ret;  } -static int tegra_pcie_try_link_l2(struct tegra_pcie_dw *pcie) +static int tegra_pcie_try_link_l2(struct tegra194_pcie *pcie)  {  	u32 val; -	if (!tegra_pcie_dw_link_up(&pcie->pci)) +	if (!tegra194_pcie_link_up(&pcie->pci))  		return 0;  	val = appl_readl(pcie, APPL_RADM_STATUS); @@ -1483,12 +1483,12 @@ static int tegra_pcie_try_link_l2(struct tegra_pcie_dw *pcie)  				 1, PME_ACK_TIMEOUT);  } -static void tegra_pcie_dw_pme_turnoff(struct tegra_pcie_dw *pcie) +static void tegra194_pcie_pme_turnoff(struct tegra194_pcie *pcie)  {  	u32 data;  	int err; -	if (!tegra_pcie_dw_link_up(&pcie->pci)) { +	if (!tegra194_pcie_link_up(&pcie->pci)) {  		dev_dbg(pcie->dev, "PCIe link is not up...!\n");  		return;  	} @@ -1545,15 +1545,15 @@ static void tegra_pcie_dw_pme_turnoff(struct tegra_pcie_dw *pcie)  	appl_writel(pcie, data, APPL_PINMUX);  } -static void tegra_pcie_deinit_controller(struct tegra_pcie_dw *pcie) +static void tegra_pcie_deinit_controller(struct tegra194_pcie *pcie)  {  	tegra_pcie_downstream_dev_to_D0(pcie);  	dw_pcie_host_deinit(&pcie->pci.pp); -	tegra_pcie_dw_pme_turnoff(pcie); +	tegra194_pcie_pme_turnoff(pcie);  	tegra_pcie_unconfig_controller(pcie);  } -static int tegra_pcie_config_rp(struct tegra_pcie_dw *pcie) +static int tegra_pcie_config_rp(struct tegra194_pcie *pcie)  {  	struct device *dev = pcie->dev;  	char *name; @@ -1580,7 +1580,7 @@ static int tegra_pcie_config_rp(struct tegra_pcie_dw *pcie)  		goto fail_pm_get_sync;  	} -	pcie->link_state = tegra_pcie_dw_link_up(&pcie->pci); +	pcie->link_state = tegra194_pcie_link_up(&pcie->pci);  	if (!pcie->link_state) {  		ret = -ENOMEDIUM;  		goto fail_host_init; @@ -1605,7 +1605,7 @@ fail_pm_get_sync:  	return ret;  } -static void pex_ep_event_pex_rst_assert(struct tegra_pcie_dw *pcie) +static void pex_ep_event_pex_rst_assert(struct tegra194_pcie *pcie)  {  	u32 val;  	int ret; @@ -1644,7 +1644,7 @@ static void pex_ep_event_pex_rst_assert(struct tegra_pcie_dw *pcie)  	dev_dbg(pcie->dev, "Uninitialization of endpoint is completed\n");  } -static void pex_ep_event_pex_rst_deassert(struct tegra_pcie_dw *pcie) +static void pex_ep_event_pex_rst_deassert(struct tegra194_pcie *pcie)  {  	struct dw_pcie *pci = &pcie->pci;  	struct dw_pcie_ep *ep = &pci->ep; @@ -1809,7 +1809,7 @@ fail_pll_init:  static irqreturn_t tegra_pcie_ep_pex_rst_irq(int irq, void *arg)  { -	struct tegra_pcie_dw *pcie = arg; +	struct tegra194_pcie *pcie = arg;  	if (gpiod_get_value(pcie->pex_rst_gpiod))  		pex_ep_event_pex_rst_assert(pcie); @@ -1819,7 +1819,7 @@ static irqreturn_t tegra_pcie_ep_pex_rst_irq(int irq, void *arg)  	return IRQ_HANDLED;  } -static int tegra_pcie_ep_raise_legacy_irq(struct tegra_pcie_dw *pcie, u16 irq) +static int tegra_pcie_ep_raise_legacy_irq(struct tegra194_pcie *pcie, u16 irq)  {  	/* Tegra194 supports only INTA */  	if (irq > 1) @@ -1831,7 +1831,7 @@ static int tegra_pcie_ep_raise_legacy_irq(struct tegra_pcie_dw *pcie, u16 irq)  	return 0;  } -static int tegra_pcie_ep_raise_msi_irq(struct tegra_pcie_dw *pcie, u16 irq) +static int tegra_pcie_ep_raise_msi_irq(struct tegra194_pcie *pcie, u16 irq)  {  	if (unlikely(irq > 31))  		return -EINVAL; @@ -1841,7 +1841,7 @@ static int tegra_pcie_ep_raise_msi_irq(struct tegra_pcie_dw *pcie, u16 irq)  	return 0;  } -static int tegra_pcie_ep_raise_msix_irq(struct tegra_pcie_dw *pcie, u16 irq) +static int tegra_pcie_ep_raise_msix_irq(struct tegra194_pcie *pcie, u16 irq)  {  	struct dw_pcie_ep *ep = &pcie->pci.ep; @@ -1855,7 +1855,7 @@ static int tegra_pcie_ep_raise_irq(struct dw_pcie_ep *ep, u8 func_no,  				   u16 interrupt_num)  {  	struct dw_pcie *pci = to_dw_pcie_from_ep(ep); -	struct tegra_pcie_dw *pcie = to_tegra_pcie(pci); +	struct tegra194_pcie *pcie = to_tegra_pcie(pci);  	switch (type) {  	case PCI_EPC_IRQ_LEGACY: @@ -1896,7 +1896,7 @@ static const struct dw_pcie_ep_ops pcie_ep_ops = {  	.get_features = tegra_pcie_ep_get_features,  }; -static int tegra_pcie_config_ep(struct tegra_pcie_dw *pcie, +static int tegra_pcie_config_ep(struct tegra194_pcie *pcie,  				struct platform_device *pdev)  {  	struct dw_pcie *pci = &pcie->pci; @@ -1957,12 +1957,12 @@ static int tegra_pcie_config_ep(struct tegra_pcie_dw *pcie,  	return 0;  } -static int tegra_pcie_dw_probe(struct platform_device *pdev) +static int tegra194_pcie_probe(struct platform_device *pdev)  { -	const struct tegra_pcie_dw_of_data *data; +	const struct tegra194_pcie_of_data *data;  	struct device *dev = &pdev->dev;  	struct resource *atu_dma_res; -	struct tegra_pcie_dw *pcie; +	struct tegra194_pcie *pcie;  	struct pcie_port *pp;  	struct dw_pcie *pci;  	struct phy **phys; @@ -1988,7 +1988,7 @@ static int tegra_pcie_dw_probe(struct platform_device *pdev)  	pcie->dev = &pdev->dev;  	pcie->mode = (enum dw_pcie_device_mode)data->mode; -	ret = tegra_pcie_dw_parse_dt(pcie); +	ret = tegra194_pcie_parse_dt(pcie);  	if (ret < 0) {  		const char *level = KERN_ERR; @@ -2146,9 +2146,9 @@ fail:  	return ret;  } -static int tegra_pcie_dw_remove(struct platform_device *pdev) +static int tegra194_pcie_remove(struct platform_device *pdev)  { -	struct tegra_pcie_dw *pcie = platform_get_drvdata(pdev); +	struct tegra194_pcie *pcie = platform_get_drvdata(pdev);  	if (!pcie->link_state)  		return 0; @@ -2164,9 +2164,9 @@ static int tegra_pcie_dw_remove(struct platform_device *pdev)  	return 0;  } -static int tegra_pcie_dw_suspend_late(struct device *dev) +static int tegra194_pcie_suspend_late(struct device *dev)  { -	struct tegra_pcie_dw *pcie = dev_get_drvdata(dev); +	struct tegra194_pcie *pcie = dev_get_drvdata(dev);  	u32 val;  	if (!pcie->link_state) @@ -2182,9 +2182,9 @@ static int tegra_pcie_dw_suspend_late(struct device *dev)  	return 0;  } -static int tegra_pcie_dw_suspend_noirq(struct device *dev) +static int tegra194_pcie_suspend_noirq(struct device *dev)  { -	struct tegra_pcie_dw *pcie = dev_get_drvdata(dev); +	struct tegra194_pcie *pcie = dev_get_drvdata(dev);  	if (!pcie->link_state)  		return 0; @@ -2193,15 +2193,15 @@ static int tegra_pcie_dw_suspend_noirq(struct device *dev)  	pcie->msi_ctrl_int = dw_pcie_readl_dbi(&pcie->pci,  					       PORT_LOGIC_MSI_CTRL_INT_0_EN);  	tegra_pcie_downstream_dev_to_D0(pcie); -	tegra_pcie_dw_pme_turnoff(pcie); +	tegra194_pcie_pme_turnoff(pcie);  	tegra_pcie_unconfig_controller(pcie);  	return 0;  } -static int tegra_pcie_dw_resume_noirq(struct device *dev) +static int tegra194_pcie_resume_noirq(struct device *dev)  { -	struct tegra_pcie_dw *pcie = dev_get_drvdata(dev); +	struct tegra194_pcie *pcie = dev_get_drvdata(dev);  	int ret;  	if (!pcie->link_state) @@ -2211,7 +2211,7 @@ static int tegra_pcie_dw_resume_noirq(struct device *dev)  	if (ret < 0)  		return ret; -	ret = tegra_pcie_dw_host_init(&pcie->pci.pp); +	ret = tegra194_pcie_host_init(&pcie->pci.pp);  	if (ret < 0) {  		dev_err(dev, "Failed to init host: %d\n", ret);  		goto fail_host_init; @@ -2219,7 +2219,7 @@ static int tegra_pcie_dw_resume_noirq(struct device *dev)  	dw_pcie_setup_rc(&pcie->pci.pp); -	ret = tegra_pcie_dw_start_link(&pcie->pci); +	ret = tegra194_pcie_start_link(&pcie->pci);  	if (ret < 0)  		goto fail_host_init; @@ -2234,9 +2234,9 @@ fail_host_init:  	return ret;  } -static int tegra_pcie_dw_resume_early(struct device *dev) +static int tegra194_pcie_resume_early(struct device *dev)  { -	struct tegra_pcie_dw *pcie = dev_get_drvdata(dev); +	struct tegra194_pcie *pcie = dev_get_drvdata(dev);  	u32 val;  	if (pcie->mode == DW_PCIE_EP_TYPE) { @@ -2259,9 +2259,9 @@ static int tegra_pcie_dw_resume_early(struct device *dev)  	return 0;  } -static void tegra_pcie_dw_shutdown(struct platform_device *pdev) +static void tegra194_pcie_shutdown(struct platform_device *pdev)  { -	struct tegra_pcie_dw *pcie = platform_get_drvdata(pdev); +	struct tegra194_pcie *pcie = platform_get_drvdata(pdev);  	if (!pcie->link_state)  		return; @@ -2273,50 +2273,50 @@ static void tegra_pcie_dw_shutdown(struct platform_device *pdev)  	if (IS_ENABLED(CONFIG_PCI_MSI))  		disable_irq(pcie->pci.pp.msi_irq); -	tegra_pcie_dw_pme_turnoff(pcie); +	tegra194_pcie_pme_turnoff(pcie);  	tegra_pcie_unconfig_controller(pcie);  } -static const struct tegra_pcie_dw_of_data tegra_pcie_dw_rc_of_data = { +static const struct tegra194_pcie_of_data tegra194_pcie_rc_of_data = {  	.mode = DW_PCIE_RC_TYPE,  }; -static const struct tegra_pcie_dw_of_data tegra_pcie_dw_ep_of_data = { +static const struct tegra194_pcie_of_data tegra194_pcie_ep_of_data = {  	.mode = DW_PCIE_EP_TYPE,  }; -static const struct of_device_id tegra_pcie_dw_of_match[] = { +static const struct of_device_id tegra194_pcie_of_match[] = {  	{  		.compatible = "nvidia,tegra194-pcie", -		.data = &tegra_pcie_dw_rc_of_data, +		.data = &tegra194_pcie_rc_of_data,  	},  	{  		.compatible = "nvidia,tegra194-pcie-ep", -		.data = &tegra_pcie_dw_ep_of_data, +		.data = &tegra194_pcie_ep_of_data,  	},  	{},  }; -static const struct dev_pm_ops tegra_pcie_dw_pm_ops = { -	.suspend_late = tegra_pcie_dw_suspend_late, -	.suspend_noirq = tegra_pcie_dw_suspend_noirq, -	.resume_noirq = tegra_pcie_dw_resume_noirq, -	.resume_early = tegra_pcie_dw_resume_early, +static const struct dev_pm_ops tegra194_pcie_pm_ops = { +	.suspend_late = tegra194_pcie_suspend_late, +	.suspend_noirq = tegra194_pcie_suspend_noirq, +	.resume_noirq = tegra194_pcie_resume_noirq, +	.resume_early = tegra194_pcie_resume_early,  }; -static struct platform_driver tegra_pcie_dw_driver = { -	.probe = tegra_pcie_dw_probe, -	.remove = tegra_pcie_dw_remove, -	.shutdown = tegra_pcie_dw_shutdown, +static struct platform_driver tegra194_pcie_driver = { +	.probe = tegra194_pcie_probe, +	.remove = tegra194_pcie_remove, +	.shutdown = tegra194_pcie_shutdown,  	.driver = {  		.name	= "tegra194-pcie", -		.pm = &tegra_pcie_dw_pm_ops, -		.of_match_table = tegra_pcie_dw_of_match, +		.pm = &tegra194_pcie_pm_ops, +		.of_match_table = tegra194_pcie_of_match,  	},  }; -module_platform_driver(tegra_pcie_dw_driver); +module_platform_driver(tegra194_pcie_driver); -MODULE_DEVICE_TABLE(of, tegra_pcie_dw_of_match); +MODULE_DEVICE_TABLE(of, tegra194_pcie_of_match);  MODULE_AUTHOR("Vidya Sagar <[email protected]>");  MODULE_DESCRIPTION("NVIDIA PCIe host controller driver"); diff --git a/drivers/pci/controller/dwc/pcie-uniphier.c b/drivers/pci/controller/dwc/pcie-uniphier.c index d05be942956e..b45ac3754242 100644 --- a/drivers/pci/controller/dwc/pcie-uniphier.c +++ b/drivers/pci/controller/dwc/pcie-uniphier.c @@ -61,9 +61,9 @@  #define PCL_RDLH_LINK_UP		BIT(1)  #define PCL_XMLH_LINK_UP		BIT(0) -struct uniphier_pcie_priv { -	void __iomem *base; +struct uniphier_pcie {  	struct dw_pcie pci; +	void __iomem *base;  	struct clk *clk;  	struct reset_control *rst;  	struct phy *phy; @@ -72,62 +72,62 @@ struct uniphier_pcie_priv {  #define to_uniphier_pcie(x)	dev_get_drvdata((x)->dev) -static void uniphier_pcie_ltssm_enable(struct uniphier_pcie_priv *priv, +static void uniphier_pcie_ltssm_enable(struct uniphier_pcie *pcie,  				       bool enable)  {  	u32 val; -	val = readl(priv->base + PCL_APP_READY_CTRL); +	val = readl(pcie->base + PCL_APP_READY_CTRL);  	if (enable)  		val |= PCL_APP_LTSSM_ENABLE;  	else  		val &= ~PCL_APP_LTSSM_ENABLE; -	writel(val, priv->base + PCL_APP_READY_CTRL); +	writel(val, pcie->base + PCL_APP_READY_CTRL);  } -static void uniphier_pcie_init_rc(struct uniphier_pcie_priv *priv) +static void uniphier_pcie_init_rc(struct uniphier_pcie *pcie)  {  	u32 val;  	/* set RC MODE */ -	val = readl(priv->base + PCL_MODE); +	val = readl(pcie->base + PCL_MODE);  	val |= PCL_MODE_REGEN;  	val &= ~PCL_MODE_REGVAL; -	writel(val, priv->base + PCL_MODE); +	writel(val, pcie->base + PCL_MODE);  	/* use auxiliary power detection */ -	val = readl(priv->base + PCL_APP_PM0); +	val = readl(pcie->base + PCL_APP_PM0);  	val |= PCL_SYS_AUX_PWR_DET; -	writel(val, priv->base + PCL_APP_PM0); +	writel(val, pcie->base + PCL_APP_PM0);  	/* assert PERST# */ -	val = readl(priv->base + PCL_PINCTRL0); +	val = readl(pcie->base + PCL_PINCTRL0);  	val &= ~(PCL_PERST_NOE_REGVAL | PCL_PERST_OUT_REGVAL  		 | PCL_PERST_PLDN_REGVAL);  	val |= PCL_PERST_NOE_REGEN | PCL_PERST_OUT_REGEN  		| PCL_PERST_PLDN_REGEN; -	writel(val, priv->base + PCL_PINCTRL0); +	writel(val, pcie->base + PCL_PINCTRL0); -	uniphier_pcie_ltssm_enable(priv, false); +	uniphier_pcie_ltssm_enable(pcie, false);  	usleep_range(100000, 200000);  	/* deassert PERST# */ -	val = readl(priv->base + PCL_PINCTRL0); +	val = readl(pcie->base + PCL_PINCTRL0);  	val |= PCL_PERST_OUT_REGVAL | PCL_PERST_OUT_REGEN; -	writel(val, priv->base + PCL_PINCTRL0); +	writel(val, pcie->base + PCL_PINCTRL0);  } -static int uniphier_pcie_wait_rc(struct uniphier_pcie_priv *priv) +static int uniphier_pcie_wait_rc(struct uniphier_pcie *pcie)  {  	u32 status;  	int ret;  	/* wait PIPE clock */ -	ret = readl_poll_timeout(priv->base + PCL_PIPEMON, status, +	ret = readl_poll_timeout(pcie->base + PCL_PIPEMON, status,  				 status & PCL_PCLK_ALIVE, 100000, 1000000);  	if (ret) { -		dev_err(priv->pci.dev, +		dev_err(pcie->pci.dev,  			"Failed to initialize controller in RC mode\n");  		return ret;  	} @@ -137,10 +137,10 @@ static int uniphier_pcie_wait_rc(struct uniphier_pcie_priv *priv)  static int uniphier_pcie_link_up(struct dw_pcie *pci)  { -	struct uniphier_pcie_priv *priv = to_uniphier_pcie(pci); +	struct uniphier_pcie *pcie = to_uniphier_pcie(pci);  	u32 val, mask; -	val = readl(priv->base + PCL_STATUS_LINK); +	val = readl(pcie->base + PCL_STATUS_LINK);  	mask = PCL_RDLH_LINK_UP | PCL_XMLH_LINK_UP;  	return (val & mask) == mask; @@ -148,39 +148,40 @@ static int uniphier_pcie_link_up(struct dw_pcie *pci)  static int uniphier_pcie_start_link(struct dw_pcie *pci)  { -	struct uniphier_pcie_priv *priv = to_uniphier_pcie(pci); +	struct uniphier_pcie *pcie = to_uniphier_pcie(pci); -	uniphier_pcie_ltssm_enable(priv, true); +	uniphier_pcie_ltssm_enable(pcie, true);  	return 0;  }  static void uniphier_pcie_stop_link(struct dw_pcie *pci)  { -	struct uniphier_pcie_priv *priv = to_uniphier_pcie(pci); +	struct uniphier_pcie *pcie = to_uniphier_pcie(pci); -	uniphier_pcie_ltssm_enable(priv, false); +	uniphier_pcie_ltssm_enable(pcie, false);  } -static void uniphier_pcie_irq_enable(struct uniphier_pcie_priv *priv) +static void uniphier_pcie_irq_enable(struct uniphier_pcie *pcie)  { -	writel(PCL_RCV_INT_ALL_ENABLE, priv->base + PCL_RCV_INT); -	writel(PCL_RCV_INTX_ALL_ENABLE, priv->base + PCL_RCV_INTX); +	writel(PCL_RCV_INT_ALL_ENABLE, pcie->base + PCL_RCV_INT); +	writel(PCL_RCV_INTX_ALL_ENABLE, pcie->base + PCL_RCV_INTX);  } +  static void uniphier_pcie_irq_mask(struct irq_data *d)  {  	struct pcie_port *pp = irq_data_get_irq_chip_data(d);  	struct dw_pcie *pci = to_dw_pcie_from_pp(pp); -	struct uniphier_pcie_priv *priv = to_uniphier_pcie(pci); +	struct uniphier_pcie *pcie = to_uniphier_pcie(pci);  	unsigned long flags;  	u32 val;  	raw_spin_lock_irqsave(&pp->lock, flags); -	val = readl(priv->base + PCL_RCV_INTX); +	val = readl(pcie->base + PCL_RCV_INTX);  	val |= BIT(irqd_to_hwirq(d) + PCL_RCV_INTX_MASK_SHIFT); -	writel(val, priv->base + PCL_RCV_INTX); +	writel(val, pcie->base + PCL_RCV_INTX);  	raw_spin_unlock_irqrestore(&pp->lock, flags);  } @@ -189,15 +190,15 @@ static void uniphier_pcie_irq_unmask(struct irq_data *d)  {  	struct pcie_port *pp = irq_data_get_irq_chip_data(d);  	struct dw_pcie *pci = to_dw_pcie_from_pp(pp); -	struct uniphier_pcie_priv *priv = to_uniphier_pcie(pci); +	struct uniphier_pcie *pcie = to_uniphier_pcie(pci);  	unsigned long flags;  	u32 val;  	raw_spin_lock_irqsave(&pp->lock, flags); -	val = readl(priv->base + PCL_RCV_INTX); +	val = readl(pcie->base + PCL_RCV_INTX);  	val &= ~BIT(irqd_to_hwirq(d) + PCL_RCV_INTX_MASK_SHIFT); -	writel(val, priv->base + PCL_RCV_INTX); +	writel(val, pcie->base + PCL_RCV_INTX);  	raw_spin_unlock_irqrestore(&pp->lock, flags);  } @@ -226,13 +227,13 @@ static void uniphier_pcie_irq_handler(struct irq_desc *desc)  {  	struct pcie_port *pp = irq_desc_get_handler_data(desc);  	struct dw_pcie *pci = to_dw_pcie_from_pp(pp); -	struct uniphier_pcie_priv *priv = to_uniphier_pcie(pci); +	struct uniphier_pcie *pcie = to_uniphier_pcie(pci);  	struct irq_chip *chip = irq_desc_get_chip(desc);  	unsigned long reg;  	u32 val, bit;  	/* INT for debug */ -	val = readl(priv->base + PCL_RCV_INT); +	val = readl(pcie->base + PCL_RCV_INT);  	if (val & PCL_CFG_BW_MGT_STATUS)  		dev_dbg(pci->dev, "Link Bandwidth Management Event\n"); @@ -243,16 +244,16 @@ static void uniphier_pcie_irq_handler(struct irq_desc *desc)  	if (val & PCL_CFG_PME_MSI_STATUS)  		dev_dbg(pci->dev, "PME Interrupt\n"); -	writel(val, priv->base + PCL_RCV_INT); +	writel(val, pcie->base + PCL_RCV_INT);  	/* INTx */  	chained_irq_enter(chip, desc); -	val = readl(priv->base + PCL_RCV_INTX); +	val = readl(pcie->base + PCL_RCV_INTX);  	reg = FIELD_GET(PCL_RCV_INTX_ALL_STATUS, val);  	for_each_set_bit(bit, ®, PCI_NUM_INTX) -		generic_handle_domain_irq(priv->legacy_irq_domain, bit); +		generic_handle_domain_irq(pcie->legacy_irq_domain, bit);  	chained_irq_exit(chip, desc);  } @@ -260,7 +261,7 @@ static void uniphier_pcie_irq_handler(struct irq_desc *desc)  static int uniphier_pcie_config_legacy_irq(struct pcie_port *pp)  {  	struct dw_pcie *pci = to_dw_pcie_from_pp(pp); -	struct uniphier_pcie_priv *priv = to_uniphier_pcie(pci); +	struct uniphier_pcie *pcie = to_uniphier_pcie(pci);  	struct device_node *np = pci->dev->of_node;  	struct device_node *np_intc;  	int ret = 0; @@ -278,9 +279,9 @@ static int uniphier_pcie_config_legacy_irq(struct pcie_port *pp)  		goto out_put_node;  	} -	priv->legacy_irq_domain = irq_domain_add_linear(np_intc, PCI_NUM_INTX, +	pcie->legacy_irq_domain = irq_domain_add_linear(np_intc, PCI_NUM_INTX,  						&uniphier_intx_domain_ops, pp); -	if (!priv->legacy_irq_domain) { +	if (!pcie->legacy_irq_domain) {  		dev_err(pci->dev, "Failed to get INTx domain\n");  		ret = -ENODEV;  		goto out_put_node; @@ -297,14 +298,14 @@ out_put_node:  static int uniphier_pcie_host_init(struct pcie_port *pp)  {  	struct dw_pcie *pci = to_dw_pcie_from_pp(pp); -	struct uniphier_pcie_priv *priv = to_uniphier_pcie(pci); +	struct uniphier_pcie *pcie = to_uniphier_pcie(pci);  	int ret;  	ret = uniphier_pcie_config_legacy_irq(pp);  	if (ret)  		return ret; -	uniphier_pcie_irq_enable(priv); +	uniphier_pcie_irq_enable(pcie);  	return 0;  } @@ -313,36 +314,36 @@ static const struct dw_pcie_host_ops uniphier_pcie_host_ops = {  	.host_init = uniphier_pcie_host_init,  }; -static int uniphier_pcie_host_enable(struct uniphier_pcie_priv *priv) +static int uniphier_pcie_host_enable(struct uniphier_pcie *pcie)  {  	int ret; -	ret = clk_prepare_enable(priv->clk); +	ret = clk_prepare_enable(pcie->clk);  	if (ret)  		return ret; -	ret = reset_control_deassert(priv->rst); +	ret = reset_control_deassert(pcie->rst);  	if (ret)  		goto out_clk_disable; -	uniphier_pcie_init_rc(priv); +	uniphier_pcie_init_rc(pcie); -	ret = phy_init(priv->phy); +	ret = phy_init(pcie->phy);  	if (ret)  		goto out_rst_assert; -	ret = uniphier_pcie_wait_rc(priv); +	ret = uniphier_pcie_wait_rc(pcie);  	if (ret)  		goto out_phy_exit;  	return 0;  out_phy_exit: -	phy_exit(priv->phy); +	phy_exit(pcie->phy);  out_rst_assert: -	reset_control_assert(priv->rst); +	reset_control_assert(pcie->rst);  out_clk_disable: -	clk_disable_unprepare(priv->clk); +	clk_disable_unprepare(pcie->clk);  	return ret;  } @@ -356,41 +357,41 @@ static const struct dw_pcie_ops dw_pcie_ops = {  static int uniphier_pcie_probe(struct platform_device *pdev)  {  	struct device *dev = &pdev->dev; -	struct uniphier_pcie_priv *priv; +	struct uniphier_pcie *pcie;  	int ret; -	priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); -	if (!priv) +	pcie = devm_kzalloc(dev, sizeof(*pcie), GFP_KERNEL); +	if (!pcie)  		return -ENOMEM; -	priv->pci.dev = dev; -	priv->pci.ops = &dw_pcie_ops; +	pcie->pci.dev = dev; +	pcie->pci.ops = &dw_pcie_ops; -	priv->base = devm_platform_ioremap_resource_byname(pdev, "link"); -	if (IS_ERR(priv->base)) -		return PTR_ERR(priv->base); +	pcie->base = devm_platform_ioremap_resource_byname(pdev, "link"); +	if (IS_ERR(pcie->base)) +		return PTR_ERR(pcie->base); -	priv->clk = devm_clk_get(dev, NULL); -	if (IS_ERR(priv->clk)) -		return PTR_ERR(priv->clk); +	pcie->clk = devm_clk_get(dev, NULL); +	if (IS_ERR(pcie->clk)) +		return PTR_ERR(pcie->clk); -	priv->rst = devm_reset_control_get_shared(dev, NULL); -	if (IS_ERR(priv->rst)) -		return PTR_ERR(priv->rst); +	pcie->rst = devm_reset_control_get_shared(dev, NULL); +	if (IS_ERR(pcie->rst)) +		return PTR_ERR(pcie->rst); -	priv->phy = devm_phy_optional_get(dev, "pcie-phy"); -	if (IS_ERR(priv->phy)) -		return PTR_ERR(priv->phy); +	pcie->phy = devm_phy_optional_get(dev, "pcie-phy"); +	if (IS_ERR(pcie->phy)) +		return PTR_ERR(pcie->phy); -	platform_set_drvdata(pdev, priv); +	platform_set_drvdata(pdev, pcie); -	ret = uniphier_pcie_host_enable(priv); +	ret = uniphier_pcie_host_enable(pcie);  	if (ret)  		return ret; -	priv->pci.pp.ops = &uniphier_pcie_host_ops; +	pcie->pci.pp.ops = &uniphier_pcie_host_ops; -	return dw_pcie_host_init(&priv->pci.pp); +	return dw_pcie_host_init(&pcie->pci.pp);  }  static const struct of_device_id uniphier_pcie_match[] = { |