Linux PCI subsystem development
 help / color / mirror / Atom feed
* [PATCH 0/4] Remove device * in struct
@ 2021-11-23 15:38 Fan Fei
  2021-11-23 15:38 ` [PATCH 1/4] PCI: j721e: Remove cast of void* type Fan Fei
                   ` (4 more replies)
  0 siblings, 5 replies; 7+ messages in thread
From: Fan Fei @ 2021-11-23 15:38 UTC (permalink / raw)
  To: bjorn; +Cc: Fan Fei, linux-pci

Remove "device *" in structs that refer struct dw_pcie or cdns_pcie. 
Because these two struct contain a "struct device *" already.

Fan Fei (4):
  PCI: j721e: Remove cast of void* type
  PCI: tegra194: Remove device * in struct
  PCI: al: Remove device * in struct
  PCI: j721e: Remove device * in struct

 drivers/pci/controller/cadence/pci-j721e.c |  14 ++-
 drivers/pci/controller/dwc/pcie-al.c       |  10 +-
 drivers/pci/controller/dwc/pcie-tegra194.c | 109 +++++++++++----------
 3 files changed, 69 insertions(+), 64 deletions(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/4] PCI: j721e: Remove cast of void* type
  2021-11-23 15:38 [PATCH 0/4] Remove device * in struct Fan Fei
@ 2021-11-23 15:38 ` Fan Fei
  2021-11-23 15:38 ` [PATCH 2/4] PCI: tegra194: Remove device * in struct Fan Fei
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 7+ messages in thread
From: Fan Fei @ 2021-11-23 15:38 UTC (permalink / raw)
  To: bjorn; +Cc: Fan Fei, linux-pci

Function of_device_get_match_data() return void*, so no cast type is
required. Remove cast type struct j721e_pcie_data*.

Signed-off-by: Fan Fei <ffclaire1224@gmail.com>
---
 drivers/pci/controller/cadence/pci-j721e.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/pci/controller/cadence/pci-j721e.c b/drivers/pci/controller/cadence/pci-j721e.c
index 918e11082e6a..0aa1c184bd42 100644
--- a/drivers/pci/controller/cadence/pci-j721e.c
+++ b/drivers/pci/controller/cadence/pci-j721e.c
@@ -367,7 +367,7 @@ static int j721e_pcie_probe(struct platform_device *pdev)
 	int ret;
 	int irq;
 
-	data = (struct j721e_pcie_data *)of_device_get_match_data(dev);
+	data = of_device_get_match_data(dev);
 	if (!data)
 		return -EINVAL;
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/4] PCI: tegra194: Remove device * in struct
  2021-11-23 15:38 [PATCH 0/4] Remove device * in struct Fan Fei
  2021-11-23 15:38 ` [PATCH 1/4] PCI: j721e: Remove cast of void* type Fan Fei
@ 2021-11-23 15:38 ` Fan Fei
  2021-11-23 15:38 ` [PATCH 3/4] PCI: al: " Fan Fei
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 7+ messages in thread
From: Fan Fei @ 2021-11-23 15:38 UTC (permalink / raw)
  To: bjorn; +Cc: Fan Fei, linux-pci

Remove "device *" in struct tegra194_pcie because it refers struct dw_pcie,
which contains a "device *" already.

Signed-off-by: Fan Fei <ffclaire1224@gmail.com>
---
 drivers/pci/controller/dwc/pcie-tegra194.c | 109 +++++++++++----------
 1 file changed, 59 insertions(+), 50 deletions(-)

diff --git a/drivers/pci/controller/dwc/pcie-tegra194.c b/drivers/pci/controller/dwc/pcie-tegra194.c
index 9e4f140f8aff..44eba86b700c 100644
--- a/drivers/pci/controller/dwc/pcie-tegra194.c
+++ b/drivers/pci/controller/dwc/pcie-tegra194.c
@@ -246,7 +246,6 @@ static const unsigned int pcie_gen_freq[] = {
 };
 
 struct tegra194_pcie {
-	struct device *dev;
 	struct resource *appl_res;
 	struct resource *dbi_res;
 	struct resource *atu_dma_res;
@@ -486,7 +485,7 @@ static irqreturn_t tegra_pcie_ep_irq_thread(int irq, void *arg)
 			usleep_range(1000, 1100);
 		}
 		if (val & APPL_LTR_MSG_2_LTR_MSG_REQ_STATE)
-			dev_err(pcie->dev, "Failed to send LTR message\n");
+			dev_err(pcie->pci.dev, "Failed to send LTR message\n");
 	}
 
 	return IRQ_HANDLED;
@@ -495,6 +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 tegra194_pcie *pcie = arg;
+	struct device *dev = pcie->pci.dev;
 	struct dw_pcie_ep *ep = &pcie->pci.ep;
 	int spurious = 1;
 	u32 status_l0, status_l1, link_status;
@@ -510,7 +510,7 @@ static irqreturn_t tegra_pcie_ep_hard_irq(int irq, void *arg)
 		if (status_l1 & APPL_INTR_STATUS_L1_0_0_RDLH_LINK_UP_CHGED) {
 			link_status = appl_readl(pcie, APPL_LINK_STATUS);
 			if (link_status & APPL_LINK_STATUS_RDLH_LINK_UP) {
-				dev_dbg(pcie->dev, "Link is up with Host\n");
+				dev_dbg(dev, "Link is up with Host\n");
 				dw_pcie_ep_linkup(ep);
 			}
 		}
@@ -529,7 +529,7 @@ static irqreturn_t tegra_pcie_ep_hard_irq(int irq, void *arg)
 	}
 
 	if (spurious) {
-		dev_warn(pcie->dev, "Random interrupt (STATUS = 0x%08X)\n",
+		dev_warn(dev, "Random interrupt (STATUS = 0x%08X)\n",
 			 status_l0);
 		appl_writel(pcie, status_l0, APPL_INTR_STATUS_L0);
 	}
@@ -690,7 +690,7 @@ static void init_host_aspm(struct tegra194_pcie *pcie)
 
 static void init_debugfs(struct tegra194_pcie *pcie)
 {
-	debugfs_create_devm_seqfile(pcie->dev, "aspm_state_cnt", pcie->debugfs,
+	debugfs_create_devm_seqfile(pcie->pci.dev, "aspm_state_cnt", pcie->debugfs,
 				    aspm_state_cnt);
 }
 #else
@@ -1062,49 +1062,50 @@ static int tegra_pcie_enable_phy(struct tegra194_pcie *pcie)
 
 static int tegra_pcie_dw_parse_dt(struct tegra194_pcie *pcie)
 {
-	struct platform_device *pdev = to_platform_device(pcie->dev);
-	struct device_node *np = pcie->dev->of_node;
+	struct device *dev = pcie->pci.dev;
+	struct platform_device *pdev = to_platform_device(dev);
+	struct device_node *np = dev->of_node;
 	int ret;
 
 	pcie->dbi_res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "dbi");
 	if (!pcie->dbi_res) {
-		dev_err(pcie->dev, "Failed to find \"dbi\" region\n");
+		dev_err(dev, "Failed to find \"dbi\" region\n");
 		return -ENODEV;
 	}
 
 	ret = of_property_read_u32(np, "nvidia,aspm-cmrt-us", &pcie->aspm_cmrt);
 	if (ret < 0) {
-		dev_info(pcie->dev, "Failed to read ASPM T_cmrt: %d\n", ret);
+		dev_info(dev, "Failed to read ASPM T_cmrt: %d\n", ret);
 		return ret;
 	}
 
 	ret = of_property_read_u32(np, "nvidia,aspm-pwr-on-t-us",
 				   &pcie->aspm_pwr_on_t);
 	if (ret < 0)
-		dev_info(pcie->dev, "Failed to read ASPM Power On time: %d\n",
+		dev_info(dev, "Failed to read ASPM Power On time: %d\n",
 			 ret);
 
 	ret = of_property_read_u32(np, "nvidia,aspm-l0s-entrance-latency-us",
 				   &pcie->aspm_l0s_enter_lat);
 	if (ret < 0)
-		dev_info(pcie->dev,
+		dev_info(dev,
 			 "Failed to read ASPM L0s Entrance latency: %d\n", ret);
 
 	ret = of_property_read_u32(np, "num-lanes", &pcie->num_lanes);
 	if (ret < 0) {
-		dev_err(pcie->dev, "Failed to read num-lanes: %d\n", ret);
+		dev_err(dev, "Failed to read num-lanes: %d\n", ret);
 		return ret;
 	}
 
 	ret = of_property_read_u32_index(np, "nvidia,bpmp", 1, &pcie->cid);
 	if (ret) {
-		dev_err(pcie->dev, "Failed to read Controller-ID: %d\n", ret);
+		dev_err(dev, "Failed to read Controller-ID: %d\n", ret);
 		return ret;
 	}
 
 	ret = of_property_count_strings(np, "phy-names");
 	if (ret < 0) {
-		dev_err(pcie->dev, "Failed to find PHY entries: %d\n",
+		dev_err(dev, "Failed to find PHY entries: %d\n",
 			ret);
 		return ret;
 	}
@@ -1114,7 +1115,7 @@ static int tegra_pcie_dw_parse_dt(struct tegra194_pcie *pcie)
 		pcie->update_fc_fixup = true;
 
 	pcie->supports_clkreq =
-		of_property_read_bool(pcie->dev->of_node, "supports-clkreq");
+		of_property_read_bool(dev->of_node, "supports-clkreq");
 
 	pcie->enable_cdm_check =
 		of_property_read_bool(np, "snps,enable-cdm-check");
@@ -1123,7 +1124,7 @@ static int tegra_pcie_dw_parse_dt(struct tegra194_pcie *pcie)
 		return 0;
 
 	/* Endpoint mode specific DT entries */
-	pcie->pex_rst_gpiod = devm_gpiod_get(pcie->dev, "reset", GPIOD_IN);
+	pcie->pex_rst_gpiod = devm_gpiod_get(dev, "reset", GPIOD_IN);
 	if (IS_ERR(pcie->pex_rst_gpiod)) {
 		int err = PTR_ERR(pcie->pex_rst_gpiod);
 		const char *level = KERN_ERR;
@@ -1131,13 +1132,13 @@ static int tegra_pcie_dw_parse_dt(struct tegra194_pcie *pcie)
 		if (err == -EPROBE_DEFER)
 			level = KERN_DEBUG;
 
-		dev_printk(level, pcie->dev,
+		dev_printk(level, dev,
 			   dev_fmt("Failed to get PERST GPIO: %d\n"),
 			   err);
 		return err;
 	}
 
-	pcie->pex_refclk_sel_gpiod = devm_gpiod_get(pcie->dev,
+	pcie->pex_refclk_sel_gpiod = devm_gpiod_get(dev,
 						    "nvidia,refclk-select",
 						    GPIOD_OUT_HIGH);
 	if (IS_ERR(pcie->pex_refclk_sel_gpiod)) {
@@ -1147,7 +1148,7 @@ static int tegra_pcie_dw_parse_dt(struct tegra194_pcie *pcie)
 		if (err == -EPROBE_DEFER)
 			level = KERN_DEBUG;
 
-		dev_printk(level, pcie->dev,
+		dev_printk(level, dev,
 			   dev_fmt("Failed to get REFCLK select GPIOs: %d\n"),
 			   err);
 		pcie->pex_refclk_sel_gpiod = NULL;
@@ -1215,6 +1216,7 @@ static int tegra_pcie_bpmp_set_pll_state(struct tegra194_pcie *pcie,
 static void tegra_pcie_downstream_dev_to_D0(struct tegra194_pcie *pcie)
 {
 	struct pcie_port *pp = &pcie->pci.pp;
+	struct device *dev = pcie->pci.dev;
 	struct pci_bus *child, *root_bus = NULL;
 	struct pci_dev *pdev;
 
@@ -1236,23 +1238,25 @@ static void tegra_pcie_downstream_dev_to_D0(struct tegra194_pcie *pcie)
 	}
 
 	if (!root_bus) {
-		dev_err(pcie->dev, "Failed to find downstream devices\n");
+		dev_err(dev, "Failed to find downstream devices\n");
 		return;
 	}
 
 	list_for_each_entry(pdev, &root_bus->devices, bus_list) {
 		if (PCI_SLOT(pdev->devfn) == 0) {
 			if (pci_set_power_state(pdev, PCI_D0))
-				dev_err(pcie->dev,
+				dev_err(dev,
 					"Failed to transition %s to D0 state\n",
-					dev_name(&pdev->dev));
+					dev_name(dev));
 		}
 	}
 }
 
 static int tegra_pcie_get_slot_regulators(struct tegra194_pcie *pcie)
 {
-	pcie->slot_ctl_3v3 = devm_regulator_get_optional(pcie->dev, "vpcie3v3");
+	struct device *dev = pcie->pci.dev;
+
+	pcie->slot_ctl_3v3 = devm_regulator_get_optional(dev, "vpcie3v3");
 	if (IS_ERR(pcie->slot_ctl_3v3)) {
 		if (PTR_ERR(pcie->slot_ctl_3v3) != -ENODEV)
 			return PTR_ERR(pcie->slot_ctl_3v3);
@@ -1260,7 +1264,7 @@ static int tegra_pcie_get_slot_regulators(struct tegra194_pcie *pcie)
 		pcie->slot_ctl_3v3 = NULL;
 	}
 
-	pcie->slot_ctl_12v = devm_regulator_get_optional(pcie->dev, "vpcie12v");
+	pcie->slot_ctl_12v = devm_regulator_get_optional(dev, "vpcie12v");
 	if (IS_ERR(pcie->slot_ctl_12v)) {
 		if (PTR_ERR(pcie->slot_ctl_12v) != -ENODEV)
 			return PTR_ERR(pcie->slot_ctl_12v);
@@ -1273,12 +1277,13 @@ static int tegra_pcie_get_slot_regulators(struct tegra194_pcie *pcie)
 
 static int tegra_pcie_enable_slot_regulators(struct tegra194_pcie *pcie)
 {
+	struct device *dev = pcie->pci.dev;
 	int ret;
 
 	if (pcie->slot_ctl_3v3) {
 		ret = regulator_enable(pcie->slot_ctl_3v3);
 		if (ret < 0) {
-			dev_err(pcie->dev,
+			dev_err(dev,
 				"Failed to enable 3.3V slot supply: %d\n", ret);
 			return ret;
 		}
@@ -1287,7 +1292,7 @@ static int tegra_pcie_enable_slot_regulators(struct tegra194_pcie *pcie)
 	if (pcie->slot_ctl_12v) {
 		ret = regulator_enable(pcie->slot_ctl_12v);
 		if (ret < 0) {
-			dev_err(pcie->dev,
+			dev_err(dev,
 				"Failed to enable 12V slot supply: %d\n", ret);
 			goto fail_12v_enable;
 		}
@@ -1322,10 +1327,11 @@ static int tegra_pcie_config_controller(struct tegra194_pcie *pcie,
 {
 	int ret;
 	u32 val;
+	struct device *dev = pcie->pci.dev;
 
 	ret = tegra_pcie_bpmp_set_ctrl_state(pcie, true);
 	if (ret) {
-		dev_err(pcie->dev,
+		dev_err(dev,
 			"Failed to enable controller %u: %d\n", pcie->cid, ret);
 		return ret;
 	}
@@ -1336,19 +1342,19 @@ static int tegra_pcie_config_controller(struct tegra194_pcie *pcie,
 
 	ret = regulator_enable(pcie->pex_ctl_supply);
 	if (ret < 0) {
-		dev_err(pcie->dev, "Failed to enable regulator: %d\n", ret);
+		dev_err(dev, "Failed to enable regulator: %d\n", ret);
 		goto fail_reg_en;
 	}
 
 	ret = clk_prepare_enable(pcie->core_clk);
 	if (ret) {
-		dev_err(pcie->dev, "Failed to enable core clock: %d\n", ret);
+		dev_err(dev, "Failed to enable core clock: %d\n", ret);
 		goto fail_core_clk;
 	}
 
 	ret = reset_control_deassert(pcie->core_apb_rst);
 	if (ret) {
-		dev_err(pcie->dev, "Failed to deassert core APB reset: %d\n",
+		dev_err(dev, "Failed to deassert core APB reset: %d\n",
 			ret);
 		goto fail_core_apb_rst;
 	}
@@ -1364,7 +1370,7 @@ static int tegra_pcie_config_controller(struct tegra194_pcie *pcie,
 
 	ret = tegra_pcie_enable_phy(pcie);
 	if (ret) {
-		dev_err(pcie->dev, "Failed to enable PHY: %d\n", ret);
+		dev_err(dev, "Failed to enable PHY: %d\n", ret);
 		goto fail_phy;
 	}
 
@@ -1417,28 +1423,29 @@ static int tegra_pcie_config_controller(struct tegra194_pcie *pcie,
 static void tegra_pcie_unconfig_controller(struct tegra194_pcie *pcie)
 {
 	int ret;
+	struct device *dev = pcie->pci.dev;
 
 	ret = reset_control_assert(pcie->core_rst);
 	if (ret)
-		dev_err(pcie->dev, "Failed to assert \"core\" reset: %d\n", ret);
+		dev_err(dev, "Failed to assert \"core\" reset: %d\n", ret);
 
 	tegra_pcie_disable_phy(pcie);
 
 	ret = reset_control_assert(pcie->core_apb_rst);
 	if (ret)
-		dev_err(pcie->dev, "Failed to assert APB reset: %d\n", ret);
+		dev_err(dev, "Failed to assert APB reset: %d\n", ret);
 
 	clk_disable_unprepare(pcie->core_clk);
 
 	ret = regulator_disable(pcie->pex_ctl_supply);
 	if (ret)
-		dev_err(pcie->dev, "Failed to disable regulator: %d\n", ret);
+		dev_err(dev, "Failed to disable regulator: %d\n", ret);
 
 	tegra_pcie_disable_slot_regulators(pcie);
 
 	ret = tegra_pcie_bpmp_set_ctrl_state(pcie, false);
 	if (ret)
-		dev_err(pcie->dev, "Failed to disable controller %d: %d\n",
+		dev_err(dev, "Failed to disable controller %d: %d\n",
 			pcie->cid, ret);
 }
 
@@ -1456,7 +1463,7 @@ static int tegra_pcie_init_controller(struct tegra194_pcie *pcie)
 
 	ret = dw_pcie_host_init(pp);
 	if (ret < 0) {
-		dev_err(pcie->dev, "Failed to add PCIe port: %d\n", ret);
+		dev_err(pci->dev, "Failed to add PCIe port: %d\n", ret);
 		goto fail_host_init;
 	}
 
@@ -1485,11 +1492,12 @@ static int tegra_pcie_try_link_l2(struct tegra194_pcie *pcie)
 
 static void tegra_pcie_dw_pme_turnoff(struct tegra194_pcie *pcie)
 {
+	struct device *dev = pcie->pci.dev;
 	u32 data;
 	int err;
 
 	if (!tegra_pcie_dw_link_up(&pcie->pci)) {
-		dev_dbg(pcie->dev, "PCIe link is not up...!\n");
+		dev_dbg(dev, "PCIe link is not up...!\n");
 		return;
 	}
 
@@ -1504,7 +1512,7 @@ static void tegra_pcie_dw_pme_turnoff(struct tegra194_pcie *pcie)
 	appl_writel(pcie, 0x0, APPL_INTR_EN_L0_0);
 
 	if (tegra_pcie_try_link_l2(pcie)) {
-		dev_info(pcie->dev, "Link didn't transition to L2 state\n");
+		dev_info(dev, "Link didn't transition to L2 state\n");
 		/*
 		 * TX lane clock freq will reset to Gen1 only if link is in L2
 		 * or detect state.
@@ -1531,7 +1539,7 @@ static void tegra_pcie_dw_pme_turnoff(struct tegra194_pcie *pcie)
 						LTSSM_STATE_PRE_DETECT,
 						1, LTSSM_TIMEOUT);
 		if (err)
-			dev_info(pcie->dev, "Link didn't go to detect state\n");
+			dev_info(dev, "Link didn't go to detect state\n");
 	}
 	/*
 	 * DBI registers may not be accessible after this as PLL-E would be
@@ -1555,7 +1563,7 @@ static void tegra_pcie_deinit_controller(struct tegra194_pcie *pcie)
 
 static int tegra_pcie_config_rp(struct tegra194_pcie *pcie)
 {
-	struct device *dev = pcie->dev;
+	struct device *dev = pcie->pci.dev;
 	char *name;
 	int ret;
 
@@ -1609,6 +1617,7 @@ static void pex_ep_event_pex_rst_assert(struct tegra194_pcie *pcie)
 {
 	u32 val;
 	int ret;
+	struct device *dev = pcie->pci.dev;
 
 	if (pcie->ep_state == EP_STATE_DISABLED)
 		return;
@@ -1624,7 +1633,7 @@ static void pex_ep_event_pex_rst_assert(struct tegra194_pcie *pcie)
 				 LTSSM_STATE_PRE_DETECT,
 				 1, LTSSM_TIMEOUT);
 	if (ret)
-		dev_err(pcie->dev, "Failed to go Detect state: %d\n", ret);
+		dev_err(dev, "Failed to go Detect state: %d\n", ret);
 
 	reset_control_assert(pcie->core_rst);
 
@@ -1634,21 +1643,21 @@ static void pex_ep_event_pex_rst_assert(struct tegra194_pcie *pcie)
 
 	clk_disable_unprepare(pcie->core_clk);
 
-	pm_runtime_put_sync(pcie->dev);
+	pm_runtime_put_sync(dev);
 
 	ret = tegra_pcie_bpmp_set_pll_state(pcie, false);
 	if (ret)
-		dev_err(pcie->dev, "Failed to turn off UPHY: %d\n", ret);
+		dev_err(dev, "Failed to turn off UPHY: %d\n", ret);
 
 	pcie->ep_state = EP_STATE_DISABLED;
-	dev_dbg(pcie->dev, "Uninitialization of endpoint is completed\n");
+	dev_dbg(dev, "Uninitialization of endpoint is completed\n");
 }
 
 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;
-	struct device *dev = pcie->dev;
+	struct device *dev = pcie->pci.dev;
 	u32 val;
 	int ret;
 
@@ -1900,7 +1909,7 @@ static int tegra_pcie_config_ep(struct tegra194_pcie *pcie,
 				struct platform_device *pdev)
 {
 	struct dw_pcie *pci = &pcie->pci;
-	struct device *dev = pcie->dev;
+	struct device *dev = pci->dev;
 	struct dw_pcie_ep *ep;
 	char *name;
 	int ret;
@@ -1977,7 +1986,7 @@ static int tegra_pcie_dw_probe(struct platform_device *pdev)
 		return -ENOMEM;
 
 	pci = &pcie->pci;
-	pci->dev = &pdev->dev;
+	pci->dev = dev;
 	pci->ops = &tegra_dw_pcie_ops;
 	pci->n_fts[0] = N_FTS_VAL;
 	pci->n_fts[1] = FTS_VAL;
@@ -1985,7 +1994,6 @@ static int tegra_pcie_dw_probe(struct platform_device *pdev)
 
 	pp = &pci->pp;
 	pp->num_vectors = MAX_MSI_IRQS;
-	pcie->dev = &pdev->dev;
 	pcie->mode = (enum dw_pcie_device_mode)data->mode;
 
 	ret = tegra_pcie_dw_parse_dt(pcie);
@@ -2148,6 +2156,7 @@ static int tegra_pcie_dw_probe(struct platform_device *pdev)
 
 static int tegra_pcie_dw_remove(struct platform_device *pdev)
 {
+	struct device *dev = &pdev->dev;
 	struct tegra194_pcie *pcie = platform_get_drvdata(pdev);
 
 	if (!pcie->link_state)
@@ -2155,8 +2164,8 @@ static int tegra_pcie_dw_remove(struct platform_device *pdev)
 
 	debugfs_remove_recursive(pcie->debugfs);
 	tegra_pcie_deinit_controller(pcie);
-	pm_runtime_put_sync(pcie->dev);
-	pm_runtime_disable(pcie->dev);
+	pm_runtime_put_sync(dev);
+	pm_runtime_disable(dev);
 	tegra_bpmp_put(pcie->bpmp);
 	if (pcie->pex_refclk_sel_gpiod)
 		gpiod_set_value(pcie->pex_refclk_sel_gpiod, 0);
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 3/4] PCI: al: Remove device * in struct
  2021-11-23 15:38 [PATCH 0/4] Remove device * in struct Fan Fei
  2021-11-23 15:38 ` [PATCH 1/4] PCI: j721e: Remove cast of void* type Fan Fei
  2021-11-23 15:38 ` [PATCH 2/4] PCI: tegra194: Remove device * in struct Fan Fei
@ 2021-11-23 15:38 ` Fan Fei
  2021-11-23 15:38 ` [PATCH 4/4] PCI: j721e: " Fan Fei
  2021-11-23 16:05 ` [PATCH 0/4] " Bjorn Helgaas
  4 siblings, 0 replies; 7+ messages in thread
From: Fan Fei @ 2021-11-23 15:38 UTC (permalink / raw)
  To: bjorn; +Cc: Fan Fei, linux-pci

Remove "device *dev" in struct al_pcie because it refers struct dw_pcie,
which contains a "device *dev" already.

Signed-off-by: Fan Fei <ffclaire1224@gmail.com>
---
 drivers/pci/controller/dwc/pcie-al.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/drivers/pci/controller/dwc/pcie-al.c b/drivers/pci/controller/dwc/pcie-al.c
index e8afa50129a8..f4b7bcda6b2d 100644
--- a/drivers/pci/controller/dwc/pcie-al.c
+++ b/drivers/pci/controller/dwc/pcie-al.c
@@ -130,7 +130,6 @@ struct al_pcie_target_bus_cfg {
 struct al_pcie {
 	struct dw_pcie *pci;
 	void __iomem *controller_base; /* base of PCIe unit (not DW core) */
-	struct device *dev;
 	resource_size_t ecam_size;
 	unsigned int controller_rev_id;
 	struct al_pcie_reg_offsets reg_offsets;
@@ -171,12 +170,12 @@ static int al_pcie_rev_id_get(struct al_pcie *pcie, unsigned int *rev_id)
 		*rev_id = AL_PCIE_REV_ID_4;
 		break;
 	default:
-		dev_err(pcie->dev, "Unsupported dev_id_val (0x%x)\n",
+		dev_err(pcie->pci->dev, "Unsupported dev_id_val (0x%x)\n",
 			dev_id_val);
 		return -EINVAL;
 	}
 
-	dev_dbg(pcie->dev, "dev_id_val: 0x%x\n", dev_id_val);
+	dev_dbg(pcie->pci->dev, "dev_id_val: 0x%x\n", dev_id_val);
 
 	return 0;
 }
@@ -192,7 +191,7 @@ static int al_pcie_reg_offsets_set(struct al_pcie *pcie)
 		pcie->reg_offsets.ob_ctrl = OB_CTRL_REV3_5_OFFSET;
 		break;
 	default:
-		dev_err(pcie->dev, "Unsupported controller rev_id: 0x%x\n",
+		dev_err(pcie->pci->dev, "Unsupported controller rev_id: 0x%x\n",
 			pcie->controller_rev_id);
 		return -EINVAL;
 	}
@@ -258,7 +257,7 @@ static void al_pcie_config_prepare(struct al_pcie *pcie)
 
 	ecam_bus_mask = (pcie->ecam_size >> PCIE_ECAM_BUS_SHIFT) - 1;
 	if (ecam_bus_mask > 255) {
-		dev_warn(pcie->dev, "ECAM window size is larger than 256MB. Cutting off at 256\n");
+		dev_warn(pcie->pci->dev, "ECAM window size is larger than 256MB. Cutting off at 256\n");
 		ecam_bus_mask = 255;
 	}
 
@@ -334,7 +333,6 @@ static int al_pcie_probe(struct platform_device *pdev)
 	pci->pp.ops = &al_pcie_host_ops;
 
 	al_pcie->pci = pci;
-	al_pcie->dev = dev;
 
 	ecam_res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "config");
 	if (!ecam_res) {
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 4/4] PCI: j721e: Remove device * in struct
  2021-11-23 15:38 [PATCH 0/4] Remove device * in struct Fan Fei
                   ` (2 preceding siblings ...)
  2021-11-23 15:38 ` [PATCH 3/4] PCI: al: " Fan Fei
@ 2021-11-23 15:38 ` Fan Fei
  2021-11-23 16:05 ` [PATCH 0/4] " Bjorn Helgaas
  4 siblings, 0 replies; 7+ messages in thread
From: Fan Fei @ 2021-11-23 15:38 UTC (permalink / raw)
  To: bjorn; +Cc: Fan Fei, linux-pci

Remove "device *dev" in struct j721e_pcie because it refers struct
cdns_pcie, which contains a "device *dev" already.

Signed-off-by: Fan Fei <ffclaire1224@gmail.com>
---
 drivers/pci/controller/cadence/pci-j721e.c | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/drivers/pci/controller/cadence/pci-j721e.c b/drivers/pci/controller/cadence/pci-j721e.c
index 0aa1c184bd42..04040cb220e8 100644
--- a/drivers/pci/controller/cadence/pci-j721e.c
+++ b/drivers/pci/controller/cadence/pci-j721e.c
@@ -51,7 +51,6 @@ enum link_status {
 #define MAX_LANES			2
 
 struct j721e_pcie {
-	struct device		*dev;
 	struct clk		*refclk;
 	u32			mode;
 	u32			num_lanes;
@@ -99,7 +98,7 @@ static inline void j721e_pcie_intd_writel(struct j721e_pcie *pcie, u32 offset,
 static irqreturn_t j721e_pcie_link_irq_handler(int irq, void *priv)
 {
 	struct j721e_pcie *pcie = priv;
-	struct device *dev = pcie->dev;
+	struct device *dev = pcie->cdns_pcie->dev;
 	u32 reg;
 
 	reg = j721e_pcie_intd_readl(pcie, STATUS_REG_SYS_2);
@@ -165,7 +164,7 @@ static const struct cdns_pcie_ops j721e_pcie_ops = {
 static int j721e_pcie_set_mode(struct j721e_pcie *pcie, struct regmap *syscon,
 			       unsigned int offset)
 {
-	struct device *dev = pcie->dev;
+	struct device *dev = pcie->cdns_pcie->dev;
 	u32 mask = J721E_MODE_RC;
 	u32 mode = pcie->mode;
 	u32 val = 0;
@@ -184,7 +183,7 @@ static int j721e_pcie_set_mode(struct j721e_pcie *pcie, struct regmap *syscon,
 static int j721e_pcie_set_link_speed(struct j721e_pcie *pcie,
 				     struct regmap *syscon, unsigned int offset)
 {
-	struct device *dev = pcie->dev;
+	struct device *dev = pcie->cdns_pcie->dev;
 	struct device_node *np = dev->of_node;
 	int link_speed;
 	u32 val = 0;
@@ -205,7 +204,7 @@ static int j721e_pcie_set_link_speed(struct j721e_pcie *pcie,
 static int j721e_pcie_set_lane_count(struct j721e_pcie *pcie,
 				     struct regmap *syscon, unsigned int offset)
 {
-	struct device *dev = pcie->dev;
+	struct device *dev = pcie->cdns_pcie->dev;
 	u32 lanes = pcie->num_lanes;
 	u32 val = 0;
 	int ret;
@@ -220,7 +219,7 @@ static int j721e_pcie_set_lane_count(struct j721e_pcie *pcie,
 
 static int j721e_pcie_ctrl_init(struct j721e_pcie *pcie)
 {
-	struct device *dev = pcie->dev;
+	struct device *dev = pcie->cdns_pcie->dev;
 	struct device_node *node = dev->of_node;
 	struct of_phandle_args args;
 	unsigned int offset = 0;
@@ -377,7 +376,6 @@ static int j721e_pcie_probe(struct platform_device *pdev)
 	if (!pcie)
 		return -ENOMEM;
 
-	pcie->dev = dev;
 	pcie->mode = mode;
 	pcie->linkdown_irq_regfield = data->linkdown_irq_regfield;
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 0/4] Remove device * in struct
  2021-11-23 15:38 [PATCH 0/4] Remove device * in struct Fan Fei
                   ` (3 preceding siblings ...)
  2021-11-23 15:38 ` [PATCH 4/4] PCI: j721e: " Fan Fei
@ 2021-11-23 16:05 ` Bjorn Helgaas
  2021-11-27 14:17   ` Fan Fei
  4 siblings, 1 reply; 7+ messages in thread
From: Bjorn Helgaas @ 2021-11-23 16:05 UTC (permalink / raw)
  To: Fan Fei; +Cc: bjorn, linux-pci

On Tue, Nov 23, 2021 at 04:38:34PM +0100, Fan Fei wrote:
> Remove "device *" in structs that refer struct dw_pcie or cdns_pcie. 
> Because these two struct contain a "struct device *" already.
> 
> Fan Fei (4):
>   PCI: j721e: Remove cast of void* type
>   PCI: tegra194: Remove device * in struct
>   PCI: al: Remove device * in struct
>   PCI: j721e: Remove device * in struct
> 
>  drivers/pci/controller/cadence/pci-j721e.c |  14 ++-
>  drivers/pci/controller/dwc/pcie-al.c       |  10 +-
>  drivers/pci/controller/dwc/pcie-tegra194.c | 109 +++++++++++----------
>  3 files changed, 69 insertions(+), 64 deletions(-)

Your "Prefer of_device_get_match_data()" series applies cleanly on my
"main" branch.

But this series doesn't apply cleanly on "main" (v5.16-rc1) or on top
of the "Prefer of_device_get_match_data()" series.

Can you rebase to apply on v5.16-rc1 or, if there are conflicts with
the previous series, on top of that previous series?

Bjorn

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 0/4] Remove device * in struct
  2021-11-23 16:05 ` [PATCH 0/4] " Bjorn Helgaas
@ 2021-11-27 14:17   ` Fan Fei
  0 siblings, 0 replies; 7+ messages in thread
From: Fan Fei @ 2021-11-27 14:17 UTC (permalink / raw)
  To: Bjorn Helgaas; +Cc: bjorn, linux-pci

On Tue, Nov 23, 2021 at 10:05:31AM -0600, Bjorn Helgaas wrote:
> On Tue, Nov 23, 2021 at 04:38:34PM +0100, Fan Fei wrote:
> > Remove "device *" in structs that refer struct dw_pcie or cdns_pcie.
> > Because these two struct contain a "struct device *" already.
> > 
> > Fan Fei (4): PCI: j721e: Remove cast of void* type PCI: tegra194:
> > Remove device * in struct PCI: al: Remove device * in struct PCI:
> > j721e: Remove device * in struct
> > 
> >  drivers/pci/controller/cadence/pci-j721e.c |  14 ++-
> >  drivers/pci/controller/dwc/pcie-al.c       |  10 +-
> >  drivers/pci/controller/dwc/pcie-tegra194.c | 109 +++++++++++----------
> >  3 files changed, 69 insertions(+), 64 deletions(-)
> 
> Your "Prefer of_device_get_match_data()" series applies cleanly on my
> "main" branch.
> 
> But this series doesn't apply cleanly on "main" (v5.16-rc1) or on top of
> the "Prefer of_device_get_match_data()" series.
> 
> Can you rebase to apply on v5.16-rc1 or, if there are conflicts with the
> previous series, on top of that previous series?
>
I sent the 1st patch sereis "rename-struct", and the 2nd patch series 
"unify-platform_device" to the mailing list.

Also, does this response go the correct list?

Thank you for helping me learn the rules to work with the kernel 
community.
>
Kind regards
Fan 

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2021-11-27 14:19 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-11-23 15:38 [PATCH 0/4] Remove device * in struct Fan Fei
2021-11-23 15:38 ` [PATCH 1/4] PCI: j721e: Remove cast of void* type Fan Fei
2021-11-23 15:38 ` [PATCH 2/4] PCI: tegra194: Remove device * in struct Fan Fei
2021-11-23 15:38 ` [PATCH 3/4] PCI: al: " Fan Fei
2021-11-23 15:38 ` [PATCH 4/4] PCI: j721e: " Fan Fei
2021-11-23 16:05 ` [PATCH 0/4] " Bjorn Helgaas
2021-11-27 14:17   ` Fan Fei

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox