Message ID | 20240924-pci_fixup_addr-v1-3-57d14a91ec4f@nxp.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | PCI: dwc: opitimaze RC host pci_fixup_addr() | expand |
> -----Original Message----- > From: Frank Li <frank.li@nxp.com> > Sent: 2024年9月25日 5:54 > To: Rob Herring <robh@kernel.org>; Saravana Kannan > <saravanak@google.com>; Jingoo Han <jingoohan1@gmail.com>; Manivannan > Sadhasivam <manivannan.sadhasivam@linaro.org>; Lorenzo Pieralisi > <lpieralisi@kernel.org>; Krzysztof Wilczyński <kw@linux.com>; Bjorn Helgaas > <bhelgaas@google.com>; Hongxing Zhu <hongxing.zhu@nxp.com>; Lucas > Stach <l.stach@pengutronix.de>; Shawn Guo <shawnguo@kernel.org>; Sascha > Hauer <s.hauer@pengutronix.de>; Pengutronix Kernel Team > <kernel@pengutronix.de>; Fabio Estevam <festevam@gmail.com> > Cc: devicetree@vger.kernel.org; linux-kernel@vger.kernel.org; > linux-pci@vger.kernel.org; linux-arm-kernel@lists.infradead.org; > imx@lists.linux.dev; Frank Li <frank.li@nxp.com> > Subject: [PATCH 3/3] PCI: imx6: Remove cpu_addr_fixup() > > Remove cpu_addr_fixup() because dwc common driver already handle address > translate. handle/s/handles translate/s/translation Reviewed-by: Richard Zhu <hongxing.zhu@nxp.com> Best Regards Richard Zhu > > Signed-off-by: Frank Li <Frank.Li@nxp.com> > --- > drivers/pci/controller/dwc/pci-imx6.c | 21 +-------------------- > 1 file changed, 1 insertion(+), 20 deletions(-) > > diff --git a/drivers/pci/controller/dwc/pci-imx6.c > b/drivers/pci/controller/dwc/pci-imx6.c > index 1e58c24137e7f..76174b3a0388c 100644 > --- a/drivers/pci/controller/dwc/pci-imx6.c > +++ b/drivers/pci/controller/dwc/pci-imx6.c > @@ -82,7 +82,6 @@ enum imx_pcie_variants { > #define IMX_PCIE_FLAG_HAS_PHY_RESET BIT(5) > #define IMX_PCIE_FLAG_HAS_SERDES BIT(6) > #define IMX_PCIE_FLAG_SUPPORT_64BIT BIT(7) > -#define IMX_PCIE_FLAG_CPU_ADDR_FIXUP BIT(8) > > #define imx_check_flag(pci, val) (pci->drvdata->flags & val) > > @@ -1015,22 +1014,6 @@ static void imx_pcie_host_exit(struct dw_pcie_rp > *pp) > regulator_disable(imx_pcie->vpcie); > } > > -static u64 imx_pcie_cpu_addr_fixup(struct dw_pcie *pcie, u64 cpu_addr) -{ > - struct imx_pcie *imx_pcie = to_imx_pcie(pcie); > - struct dw_pcie_rp *pp = &pcie->pp; > - struct resource_entry *entry; > - > - if (!(imx_pcie->drvdata->flags & IMX_PCIE_FLAG_CPU_ADDR_FIXUP)) > - return cpu_addr; > - > - entry = resource_list_first_type(&pp->bridge->windows, > IORESOURCE_MEM); > - if (!entry) > - return cpu_addr; > - > - return cpu_addr - entry->offset; > -} > - > static const struct dw_pcie_host_ops imx_pcie_host_ops = { > .init = imx_pcie_host_init, > .deinit = imx_pcie_host_exit, > @@ -1039,7 +1022,6 @@ static const struct dw_pcie_host_ops > imx_pcie_host_ops = { static const struct dw_pcie_ops dw_pcie_ops = { > .start_link = imx_pcie_start_link, > .stop_link = imx_pcie_stop_link, > - .cpu_addr_fixup = imx_pcie_cpu_addr_fixup, > }; > > static void imx_pcie_ep_init(struct dw_pcie_ep *ep) @@ -1598,8 +1580,7 > @@ static const struct imx_pcie_drvdata drvdata[] = { > }, > [IMX8Q] = { > .variant = IMX8Q, > - .flags = IMX_PCIE_FLAG_HAS_PHYDRV | > - IMX_PCIE_FLAG_CPU_ADDR_FIXUP, > + .flags = IMX_PCIE_FLAG_HAS_PHYDRV, > .clk_names = imx8q_clks, > .clks_cnt = ARRAY_SIZE(imx8q_clks), > }, > > -- > 2.34.1
diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c index 1e58c24137e7f..76174b3a0388c 100644 --- a/drivers/pci/controller/dwc/pci-imx6.c +++ b/drivers/pci/controller/dwc/pci-imx6.c @@ -82,7 +82,6 @@ enum imx_pcie_variants { #define IMX_PCIE_FLAG_HAS_PHY_RESET BIT(5) #define IMX_PCIE_FLAG_HAS_SERDES BIT(6) #define IMX_PCIE_FLAG_SUPPORT_64BIT BIT(7) -#define IMX_PCIE_FLAG_CPU_ADDR_FIXUP BIT(8) #define imx_check_flag(pci, val) (pci->drvdata->flags & val) @@ -1015,22 +1014,6 @@ static void imx_pcie_host_exit(struct dw_pcie_rp *pp) regulator_disable(imx_pcie->vpcie); } -static u64 imx_pcie_cpu_addr_fixup(struct dw_pcie *pcie, u64 cpu_addr) -{ - struct imx_pcie *imx_pcie = to_imx_pcie(pcie); - struct dw_pcie_rp *pp = &pcie->pp; - struct resource_entry *entry; - - if (!(imx_pcie->drvdata->flags & IMX_PCIE_FLAG_CPU_ADDR_FIXUP)) - return cpu_addr; - - entry = resource_list_first_type(&pp->bridge->windows, IORESOURCE_MEM); - if (!entry) - return cpu_addr; - - return cpu_addr - entry->offset; -} - static const struct dw_pcie_host_ops imx_pcie_host_ops = { .init = imx_pcie_host_init, .deinit = imx_pcie_host_exit, @@ -1039,7 +1022,6 @@ static const struct dw_pcie_host_ops imx_pcie_host_ops = { static const struct dw_pcie_ops dw_pcie_ops = { .start_link = imx_pcie_start_link, .stop_link = imx_pcie_stop_link, - .cpu_addr_fixup = imx_pcie_cpu_addr_fixup, }; static void imx_pcie_ep_init(struct dw_pcie_ep *ep) @@ -1598,8 +1580,7 @@ static const struct imx_pcie_drvdata drvdata[] = { }, [IMX8Q] = { .variant = IMX8Q, - .flags = IMX_PCIE_FLAG_HAS_PHYDRV | - IMX_PCIE_FLAG_CPU_ADDR_FIXUP, + .flags = IMX_PCIE_FLAG_HAS_PHYDRV, .clk_names = imx8q_clks, .clks_cnt = ARRAY_SIZE(imx8q_clks), },
Remove cpu_addr_fixup() because dwc common driver already handle address translate. Signed-off-by: Frank Li <Frank.Li@nxp.com> --- drivers/pci/controller/dwc/pci-imx6.c | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-)