* [PATCH v2 0/4] pci-dra7xx: Enable errata i870 workaround for RC mode @ 2018-06-27 12:29 Vignesh R 2018-06-27 12:29 ` [PATCH v2 1/4] dt-bindings: PCI: dra7xx: Add bindings for unaligned access in host mode Vignesh R ` (3 more replies) 0 siblings, 4 replies; 12+ messages in thread From: Vignesh R @ 2018-06-27 12:29 UTC (permalink / raw) To: Tony Lindgren, Rob Herring, Kishon Vijay Abraham I, Lorenzo Pieralisi Cc: Bjorn Helgaas, linux-omap, devicetree, linux-kernel, linux-pci, Vignesh R Make workaround for errata i870 applicable in Host mode as well(previously it was enabled only for EP mode) as per errata documentation: http://www.ti.com/lit/er/sprz450/sprz450.pdf Tested on DRA72 EVM Changes since v1: Drop IRQ handling rework (will be sent out separately) v1: https://lkml.org/lkml/2017/12/1/59 Vignesh R (4): dt-bindings: PCI: dra7xx: Add bindings for unaligned access in host mode pci: dwc: pci-dra7xx: Enable errata i870 for both EP and RC mode ARM: dts: dra7: Enable workaround for errata i870 in PCIe host mode ARM: dts: dra7: Fix up unaligned access setting for PCIe EP Documentation/devicetree/bindings/pci/ti-pci.txt | 5 +++++ arch/arm/boot/dts/dra7.dtsi | 4 +++- drivers/pci/controller/dwc/pci-dra7xx.c | 12 ++++++------ 3 files changed, 14 insertions(+), 7 deletions(-) -- 2.18.0 ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v2 1/4] dt-bindings: PCI: dra7xx: Add bindings for unaligned access in host mode 2018-06-27 12:29 [PATCH v2 0/4] pci-dra7xx: Enable errata i870 workaround for RC mode Vignesh R @ 2018-06-27 12:29 ` Vignesh R 2018-06-27 12:29 ` [PATCH v2 2/4] pci: dwc: pci-dra7xx: Enable errata i870 for both EP and RC mode Vignesh R ` (2 subsequent siblings) 3 siblings, 0 replies; 12+ messages in thread From: Vignesh R @ 2018-06-27 12:29 UTC (permalink / raw) To: Tony Lindgren, Rob Herring, Kishon Vijay Abraham I, Lorenzo Pieralisi Cc: Bjorn Helgaas, linux-omap, devicetree, linux-kernel, linux-pci, Vignesh R Update device tree binding documentation of TI's dra7xx PCI controller for enabling unaligned mem access as applicable not just in EP mode but in host mode as well. Signed-off-by: Vignesh R <vigneshr@ti.com> Reviewed-by: Rob Herring <robh@kernel.org> --- Documentation/devicetree/bindings/pci/ti-pci.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Documentation/devicetree/bindings/pci/ti-pci.txt b/Documentation/devicetree/bindings/pci/ti-pci.txt index 7f7af3044016..452fe48c4fdd 100644 --- a/Documentation/devicetree/bindings/pci/ti-pci.txt +++ b/Documentation/devicetree/bindings/pci/ti-pci.txt @@ -26,6 +26,11 @@ HOST MODE ranges, interrupt-map-mask, interrupt-map : as specified in ../designware-pcie.txt + - ti,syscon-unaligned-access: phandle to the syscon DT node. The 1st argument + should contain the register offset within syscon + and the 2nd argument should contain the bit field + for setting the bit to enable unaligned + access. DEVICE MODE =========== -- 2.18.0 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v2 2/4] pci: dwc: pci-dra7xx: Enable errata i870 for both EP and RC mode 2018-06-27 12:29 [PATCH v2 0/4] pci-dra7xx: Enable errata i870 workaround for RC mode Vignesh R 2018-06-27 12:29 ` [PATCH v2 1/4] dt-bindings: PCI: dra7xx: Add bindings for unaligned access in host mode Vignesh R @ 2018-06-27 12:29 ` Vignesh R 2018-07-17 9:54 ` Kishon Vijay Abraham I 2018-07-18 11:02 ` Lorenzo Pieralisi 2018-06-27 12:29 ` [PATCH v2 3/4] ARM: dts: dra7: Enable workaround for errata i870 in PCIe host mode Vignesh R 2018-06-27 12:29 ` [PATCH v2 4/4] ARM: dts: dra7: Fix up unaligned access setting for PCIe EP Vignesh R 3 siblings, 2 replies; 12+ messages in thread From: Vignesh R @ 2018-06-27 12:29 UTC (permalink / raw) To: Tony Lindgren, Rob Herring, Kishon Vijay Abraham I, Lorenzo Pieralisi Cc: Bjorn Helgaas, linux-omap, devicetree, linux-kernel, linux-pci, Vignesh R Errata i870 is applicable in both EP and RC mode. Therefore rename function dra7xx_pcie_ep_unaligned_memaccess(), that implements errata workaround, to dra7xx_pcie_unaligned_memaccess() and call it from a common place. So, that errata workaround is applied for both modes of operation. Reported-by: Chris Welch <Chris.Welch@viavisolutions.com> Signed-off-by: Vignesh R <vigneshr@ti.com> --- drivers/pci/controller/dwc/pci-dra7xx.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/pci/controller/dwc/pci-dra7xx.c b/drivers/pci/controller/dwc/pci-dra7xx.c index 345aab56ce8b..95d9076e3fde 100644 --- a/drivers/pci/controller/dwc/pci-dra7xx.c +++ b/drivers/pci/controller/dwc/pci-dra7xx.c @@ -542,7 +542,7 @@ static const struct of_device_id of_dra7xx_pcie_match[] = { }; /* - * dra7xx_pcie_ep_unaligned_memaccess: workaround for AM572x/AM571x Errata i870 + * dra7xx_pcie_unaligned_memaccess: workaround for AM572x/AM571x Errata i870 * @dra7xx: the dra7xx device where the workaround should be applied * * Access to the PCIe slave port that are not 32-bit aligned will result @@ -552,7 +552,7 @@ static const struct of_device_id of_dra7xx_pcie_match[] = { * * To avoid this issue set PCIE_SS1_AXI2OCP_LEGACY_MODE_ENABLE to 1. */ -static int dra7xx_pcie_ep_unaligned_memaccess(struct device *dev) +static int dra7xx_pcie_unaligned_memaccess(struct device *dev) { int ret; struct device_node *np = dev->of_node; @@ -695,6 +695,10 @@ static int __init dra7xx_pcie_probe(struct platform_device *pdev) if (dra7xx->link_gen < 0 || dra7xx->link_gen > 2) dra7xx->link_gen = 2; + ret = dra7xx_pcie_unaligned_memaccess(dev); + if (ret) + dev_err(dev, "WA for Errata i870 not appplied. Update DT\n"); + switch (mode) { case DW_PCIE_RC_TYPE: if (!IS_ENABLED(CONFIG_PCI_DRA7XX_HOST)) { @@ -717,10 +721,6 @@ static int __init dra7xx_pcie_probe(struct platform_device *pdev) dra7xx_pcie_writel(dra7xx, PCIECTRL_TI_CONF_DEVICE_TYPE, DEVICE_TYPE_EP); - ret = dra7xx_pcie_ep_unaligned_memaccess(dev); - if (ret) - goto err_gpio; - ret = dra7xx_add_pcie_ep(dra7xx, pdev); if (ret < 0) goto err_gpio; -- 2.18.0 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH v2 2/4] pci: dwc: pci-dra7xx: Enable errata i870 for both EP and RC mode 2018-06-27 12:29 ` [PATCH v2 2/4] pci: dwc: pci-dra7xx: Enable errata i870 for both EP and RC mode Vignesh R @ 2018-07-17 9:54 ` Kishon Vijay Abraham I 2018-07-18 11:02 ` Lorenzo Pieralisi 1 sibling, 0 replies; 12+ messages in thread From: Kishon Vijay Abraham I @ 2018-07-17 9:54 UTC (permalink / raw) To: Vignesh R, Tony Lindgren, Rob Herring, Lorenzo Pieralisi Cc: Bjorn Helgaas, linux-omap, devicetree, linux-kernel, linux-pci On Wednesday 27 June 2018 05:59 PM, Vignesh R wrote: > Errata i870 is applicable in both EP and RC mode. Therefore rename > function dra7xx_pcie_ep_unaligned_memaccess(), that implements errata > workaround, to dra7xx_pcie_unaligned_memaccess() and call it from a > common place. So, that errata workaround is applied for both modes of > operation. > > Reported-by: Chris Welch <Chris.Welch@viavisolutions.com> > Signed-off-by: Vignesh R <vigneshr@ti.com> Acked-by: Kishon Vijay Abraham I <kishon@ti.com> > --- > drivers/pci/controller/dwc/pci-dra7xx.c | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/drivers/pci/controller/dwc/pci-dra7xx.c b/drivers/pci/controller/dwc/pci-dra7xx.c > index 345aab56ce8b..95d9076e3fde 100644 > --- a/drivers/pci/controller/dwc/pci-dra7xx.c > +++ b/drivers/pci/controller/dwc/pci-dra7xx.c > @@ -542,7 +542,7 @@ static const struct of_device_id of_dra7xx_pcie_match[] = { > }; > > /* > - * dra7xx_pcie_ep_unaligned_memaccess: workaround for AM572x/AM571x Errata i870 > + * dra7xx_pcie_unaligned_memaccess: workaround for AM572x/AM571x Errata i870 > * @dra7xx: the dra7xx device where the workaround should be applied > * > * Access to the PCIe slave port that are not 32-bit aligned will result > @@ -552,7 +552,7 @@ static const struct of_device_id of_dra7xx_pcie_match[] = { > * > * To avoid this issue set PCIE_SS1_AXI2OCP_LEGACY_MODE_ENABLE to 1. > */ > -static int dra7xx_pcie_ep_unaligned_memaccess(struct device *dev) > +static int dra7xx_pcie_unaligned_memaccess(struct device *dev) > { > int ret; > struct device_node *np = dev->of_node; > @@ -695,6 +695,10 @@ static int __init dra7xx_pcie_probe(struct platform_device *pdev) > if (dra7xx->link_gen < 0 || dra7xx->link_gen > 2) > dra7xx->link_gen = 2; > > + ret = dra7xx_pcie_unaligned_memaccess(dev); > + if (ret) > + dev_err(dev, "WA for Errata i870 not appplied. Update DT\n"); > + > switch (mode) { > case DW_PCIE_RC_TYPE: > if (!IS_ENABLED(CONFIG_PCI_DRA7XX_HOST)) { > @@ -717,10 +721,6 @@ static int __init dra7xx_pcie_probe(struct platform_device *pdev) > dra7xx_pcie_writel(dra7xx, PCIECTRL_TI_CONF_DEVICE_TYPE, > DEVICE_TYPE_EP); > > - ret = dra7xx_pcie_ep_unaligned_memaccess(dev); > - if (ret) > - goto err_gpio; > - > ret = dra7xx_add_pcie_ep(dra7xx, pdev); > if (ret < 0) > goto err_gpio; > ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 2/4] pci: dwc: pci-dra7xx: Enable errata i870 for both EP and RC mode 2018-06-27 12:29 ` [PATCH v2 2/4] pci: dwc: pci-dra7xx: Enable errata i870 for both EP and RC mode Vignesh R 2018-07-17 9:54 ` Kishon Vijay Abraham I @ 2018-07-18 11:02 ` Lorenzo Pieralisi 2018-07-19 10:34 ` Vignesh R 1 sibling, 1 reply; 12+ messages in thread From: Lorenzo Pieralisi @ 2018-07-18 11:02 UTC (permalink / raw) To: Vignesh R Cc: Tony Lindgren, Rob Herring, Kishon Vijay Abraham I, Bjorn Helgaas, linux-omap, devicetree, linux-kernel, linux-pci On Wed, Jun 27, 2018 at 05:59:17PM +0530, Vignesh R wrote: > Errata i870 is applicable in both EP and RC mode. Therefore rename > function dra7xx_pcie_ep_unaligned_memaccess(), that implements errata > workaround, to dra7xx_pcie_unaligned_memaccess() and call it from a > common place. So, that errata workaround is applied for both modes of > operation. > > Reported-by: Chris Welch <Chris.Welch@viavisolutions.com> > Signed-off-by: Vignesh R <vigneshr@ti.com> > --- > drivers/pci/controller/dwc/pci-dra7xx.c | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/drivers/pci/controller/dwc/pci-dra7xx.c b/drivers/pci/controller/dwc/pci-dra7xx.c > index 345aab56ce8b..95d9076e3fde 100644 > --- a/drivers/pci/controller/dwc/pci-dra7xx.c > +++ b/drivers/pci/controller/dwc/pci-dra7xx.c > @@ -542,7 +542,7 @@ static const struct of_device_id of_dra7xx_pcie_match[] = { > }; > > /* > - * dra7xx_pcie_ep_unaligned_memaccess: workaround for AM572x/AM571x Errata i870 > + * dra7xx_pcie_unaligned_memaccess: workaround for AM572x/AM571x Errata i870 > * @dra7xx: the dra7xx device where the workaround should be applied > * > * Access to the PCIe slave port that are not 32-bit aligned will result > @@ -552,7 +552,7 @@ static const struct of_device_id of_dra7xx_pcie_match[] = { > * > * To avoid this issue set PCIE_SS1_AXI2OCP_LEGACY_MODE_ENABLE to 1. > */ > -static int dra7xx_pcie_ep_unaligned_memaccess(struct device *dev) > +static int dra7xx_pcie_unaligned_memaccess(struct device *dev) > { > int ret; > struct device_node *np = dev->of_node; > @@ -695,6 +695,10 @@ static int __init dra7xx_pcie_probe(struct platform_device *pdev) > if (dra7xx->link_gen < 0 || dra7xx->link_gen > 2) > dra7xx->link_gen = 2; > > + ret = dra7xx_pcie_unaligned_memaccess(dev); > + if (ret) > + dev_err(dev, "WA for Errata i870 not appplied. Update DT\n"); Hi Vignesh, Nit: s/appplied/applied Two questions: - Current code applies the unaligned_memaccess() workaround for all compatible variants. This is fine for current controllers (since they are all affected), the code path above will have to be reworked if there is any other compatible IP re-using the driver that does not require the workaround. - How do you want this series to go upstream ? If it goes via arm-soc, which I think it should, here is my ACK on this patch: Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Please let me know if I can drop this series from the PCI patchwork. Thanks, Lorenzo > + > switch (mode) { > case DW_PCIE_RC_TYPE: > if (!IS_ENABLED(CONFIG_PCI_DRA7XX_HOST)) { > @@ -717,10 +721,6 @@ static int __init dra7xx_pcie_probe(struct platform_device *pdev) > dra7xx_pcie_writel(dra7xx, PCIECTRL_TI_CONF_DEVICE_TYPE, > DEVICE_TYPE_EP); > > - ret = dra7xx_pcie_ep_unaligned_memaccess(dev); > - if (ret) > - goto err_gpio; > - > ret = dra7xx_add_pcie_ep(dra7xx, pdev); > if (ret < 0) > goto err_gpio; > -- > 2.18.0 > ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 2/4] pci: dwc: pci-dra7xx: Enable errata i870 for both EP and RC mode 2018-07-18 11:02 ` Lorenzo Pieralisi @ 2018-07-19 10:34 ` Vignesh R 2018-07-19 11:15 ` Lorenzo Pieralisi 0 siblings, 1 reply; 12+ messages in thread From: Vignesh R @ 2018-07-19 10:34 UTC (permalink / raw) To: Lorenzo Pieralisi Cc: Tony Lindgren, Rob Herring, KISHON VIJAY ABRAHAM, Bjorn Helgaas, linux-omap, devicetree, linux-kernel, linux-pci Hi Lorenzo, On Wednesday 18 July 2018 04:32 PM, Lorenzo Pieralisi wrote: > On Wed, Jun 27, 2018 at 05:59:17PM +0530, Vignesh R wrote: >> Errata i870 is applicable in both EP and RC mode. Therefore rename >> function dra7xx_pcie_ep_unaligned_memaccess(), that implements errata >> workaround, to dra7xx_pcie_unaligned_memaccess() and call it from a >> common place. So, that errata workaround is applied for both modes of >> operation. >> >> Reported-by: Chris Welch <Chris.Welch@viavisolutions.com> >> Signed-off-by: Vignesh R <vigneshr@ti.com> >> --- >> drivers/pci/controller/dwc/pci-dra7xx.c | 12 ++++++------ >> 1 file changed, 6 insertions(+), 6 deletions(-) >> >> diff --git a/drivers/pci/controller/dwc/pci-dra7xx.c b/drivers/pci/controller/dwc/pci-dra7xx.c >> index 345aab56ce8b..95d9076e3fde 100644 >> --- a/drivers/pci/controller/dwc/pci-dra7xx.c >> +++ b/drivers/pci/controller/dwc/pci-dra7xx.c >> @@ -542,7 +542,7 @@ static const struct of_device_id of_dra7xx_pcie_match[] = { >> }; >> >> /* >> - * dra7xx_pcie_ep_unaligned_memaccess: workaround for AM572x/AM571x Errata i870 >> + * dra7xx_pcie_unaligned_memaccess: workaround for AM572x/AM571x Errata i870 >> * @dra7xx: the dra7xx device where the workaround should be applied >> * >> * Access to the PCIe slave port that are not 32-bit aligned will result >> @@ -552,7 +552,7 @@ static const struct of_device_id of_dra7xx_pcie_match[] = { >> * >> * To avoid this issue set PCIE_SS1_AXI2OCP_LEGACY_MODE_ENABLE to 1. >> */ >> -static int dra7xx_pcie_ep_unaligned_memaccess(struct device *dev) >> +static int dra7xx_pcie_unaligned_memaccess(struct device *dev) >> { >> int ret; >> struct device_node *np = dev->of_node; >> @@ -695,6 +695,10 @@ static int __init dra7xx_pcie_probe(struct platform_device *pdev) >> if (dra7xx->link_gen < 0 || dra7xx->link_gen > 2) >> dra7xx->link_gen = 2; >> >> + ret = dra7xx_pcie_unaligned_memaccess(dev); >> + if (ret) >> + dev_err(dev, "WA for Errata i870 not appplied. Update DT\n"); > > Hi Vignesh, > > Nit: s/appplied/applied > Oops, let me know if you want me to resend with this fixed. > Two questions: > > - Current code applies the unaligned_memaccess() workaround for all > compatible variants. This is fine for current controllers (since > they are all affected), the code path above will have to be > reworked if there is any other compatible IP re-using the driver > that does not require the workaround. There are no compatible IPs that don't require this workaround. Also, I don't see this IP being re-used in future. If you insist, I can add a errata flag > - How do you want this series to go upstream ? If it goes via arm-soc, > which I think it should, here is my ACK on this patch: > Patch 1 and 2(dt bindings update and driver patch) can go in via PCI tree. And DT changes(patch 3 and 4) can be picked up by Tony via omap/arm-soc tree. They are mostly independent and should not cause any problems. Does that sound good? > Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> > Thanks! > Please let me know if I can drop this series from the PCI patchwork. > > Thanks, > Lorenzo > >> + >> switch (mode) { >> case DW_PCIE_RC_TYPE: >> if (!IS_ENABLED(CONFIG_PCI_DRA7XX_HOST)) { >> @@ -717,10 +721,6 @@ static int __init dra7xx_pcie_probe(struct platform_device *pdev) >> dra7xx_pcie_writel(dra7xx, PCIECTRL_TI_CONF_DEVICE_TYPE, >> DEVICE_TYPE_EP); >> >> - ret = dra7xx_pcie_ep_unaligned_memaccess(dev); >> - if (ret) >> - goto err_gpio; >> - >> ret = dra7xx_add_pcie_ep(dra7xx, pdev); >> if (ret < 0) >> goto err_gpio; >> -- >> 2.18.0 >> -- Regards Vignesh ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 2/4] pci: dwc: pci-dra7xx: Enable errata i870 for both EP and RC mode 2018-07-19 10:34 ` Vignesh R @ 2018-07-19 11:15 ` Lorenzo Pieralisi 2018-07-19 15:59 ` Vignesh R 0 siblings, 1 reply; 12+ messages in thread From: Lorenzo Pieralisi @ 2018-07-19 11:15 UTC (permalink / raw) To: Vignesh R Cc: Tony Lindgren, Rob Herring, KISHON VIJAY ABRAHAM, Bjorn Helgaas, linux-omap, devicetree, linux-kernel, linux-pci On Thu, Jul 19, 2018 at 04:04:34PM +0530, Vignesh R wrote: > Hi Lorenzo, > > On Wednesday 18 July 2018 04:32 PM, Lorenzo Pieralisi wrote: > > On Wed, Jun 27, 2018 at 05:59:17PM +0530, Vignesh R wrote: > >> Errata i870 is applicable in both EP and RC mode. Therefore rename > >> function dra7xx_pcie_ep_unaligned_memaccess(), that implements errata > >> workaround, to dra7xx_pcie_unaligned_memaccess() and call it from a > >> common place. So, that errata workaround is applied for both modes of > >> operation. > >> > >> Reported-by: Chris Welch <Chris.Welch@viavisolutions.com> > >> Signed-off-by: Vignesh R <vigneshr@ti.com> > >> --- > >> drivers/pci/controller/dwc/pci-dra7xx.c | 12 ++++++------ > >> 1 file changed, 6 insertions(+), 6 deletions(-) > >> > >> diff --git a/drivers/pci/controller/dwc/pci-dra7xx.c b/drivers/pci/controller/dwc/pci-dra7xx.c > >> index 345aab56ce8b..95d9076e3fde 100644 > >> --- a/drivers/pci/controller/dwc/pci-dra7xx.c > >> +++ b/drivers/pci/controller/dwc/pci-dra7xx.c > >> @@ -542,7 +542,7 @@ static const struct of_device_id of_dra7xx_pcie_match[] = { > >> }; > >> > >> /* > >> - * dra7xx_pcie_ep_unaligned_memaccess: workaround for AM572x/AM571x Errata i870 > >> + * dra7xx_pcie_unaligned_memaccess: workaround for AM572x/AM571x Errata i870 > >> * @dra7xx: the dra7xx device where the workaround should be applied > >> * > >> * Access to the PCIe slave port that are not 32-bit aligned will result > >> @@ -552,7 +552,7 @@ static const struct of_device_id of_dra7xx_pcie_match[] = { > >> * > >> * To avoid this issue set PCIE_SS1_AXI2OCP_LEGACY_MODE_ENABLE to 1. > >> */ > >> -static int dra7xx_pcie_ep_unaligned_memaccess(struct device *dev) > >> +static int dra7xx_pcie_unaligned_memaccess(struct device *dev) > >> { > >> int ret; > >> struct device_node *np = dev->of_node; > >> @@ -695,6 +695,10 @@ static int __init dra7xx_pcie_probe(struct platform_device *pdev) > >> if (dra7xx->link_gen < 0 || dra7xx->link_gen > 2) > >> dra7xx->link_gen = 2; > >> > >> + ret = dra7xx_pcie_unaligned_memaccess(dev); > >> + if (ret) > >> + dev_err(dev, "WA for Errata i870 not appplied. Update DT\n"); > > > > Hi Vignesh, > > > > Nit: s/appplied/applied > > > > Oops, let me know if you want me to resend with this fixed. I can fix it, no problem but see below. > > Two questions: > > > > - Current code applies the unaligned_memaccess() workaround for all > > compatible variants. This is fine for current controllers (since > > they are all affected), the code path above will have to be > > reworked if there is any other compatible IP re-using the driver > > that does not require the workaround. > > There are no compatible IPs that don't require this workaround. Also, I > don't see this IP being re-used in future. If you insist, I can add a > errata flag I do not insist, I just pointed this out ;-) > > - How do you want this series to go upstream ? If it goes via arm-soc, > > which I think it should, here is my ACK on this patch: > > > Patch 1 and 2(dt bindings update and driver patch) can go in via PCI > tree. And DT changes(patch 3 and 4) can be picked up by Tony via > omap/arm-soc tree. They are mostly independent and should not cause any > problems. Does that sound good? It should be fine but technically as soon as patch (2) is applied we would have a regression if patches (3) and (4) are applied separately. You could re-order the series and send everything via arm-soc. It is not such a big deal, your choice, please let me know. Thanks, Lorenzo > > Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> > > > > Thanks! > > > Please let me know if I can drop this series from the PCI patchwork. > > > > Thanks, > > Lorenzo > > > >> + > >> switch (mode) { > >> case DW_PCIE_RC_TYPE: > >> if (!IS_ENABLED(CONFIG_PCI_DRA7XX_HOST)) { > >> @@ -717,10 +721,6 @@ static int __init dra7xx_pcie_probe(struct platform_device *pdev) > >> dra7xx_pcie_writel(dra7xx, PCIECTRL_TI_CONF_DEVICE_TYPE, > >> DEVICE_TYPE_EP); > >> > >> - ret = dra7xx_pcie_ep_unaligned_memaccess(dev); > >> - if (ret) > >> - goto err_gpio; > >> - > >> ret = dra7xx_add_pcie_ep(dra7xx, pdev); > >> if (ret < 0) > >> goto err_gpio; > >> -- > >> 2.18.0 > >> > > -- > Regards > Vignesh ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 2/4] pci: dwc: pci-dra7xx: Enable errata i870 for both EP and RC mode 2018-07-19 11:15 ` Lorenzo Pieralisi @ 2018-07-19 15:59 ` Vignesh R 0 siblings, 0 replies; 12+ messages in thread From: Vignesh R @ 2018-07-19 15:59 UTC (permalink / raw) To: Tony Lindgren Cc: Lorenzo Pieralisi, Rob Herring, KISHON VIJAY ABRAHAM, Bjorn Helgaas, linux-omap, devicetree, linux-kernel, linux-pci On Thursday 19 July 2018 04:45 PM, Lorenzo Pieralisi wrote: > On Thu, Jul 19, 2018 at 04:04:34PM +0530, Vignesh R wrote: >> Hi Lorenzo, >> [...] >>>> + ret = dra7xx_pcie_unaligned_memaccess(dev); >>>> + if (ret) >>>> + dev_err(dev, "WA for Errata i870 not appplied. Update DT\n"); >>> >>> Hi Vignesh, >>> >>> Nit: s/appplied/applied >>> >> >> Oops, let me know if you want me to resend with this fixed. > > I can fix it, no problem but see below. > >>> Two questions: >>> >>> - Current code applies the unaligned_memaccess() workaround for all >>> compatible variants. This is fine for current controllers (since >>> they are all affected), the code path above will have to be >>> reworked if there is any other compatible IP re-using the driver >>> that does not require the workaround. >> >> There are no compatible IPs that don't require this workaround. Also, I >> don't see this IP being re-used in future. If you insist, I can add a >> errata flag > > I do not insist, I just pointed this out ;-) > >>> - How do you want this series to go upstream ? If it goes via arm-soc, >>> which I think it should, here is my ACK on this patch: >>> >> Patch 1 and 2(dt bindings update and driver patch) can go in via PCI >> tree. And DT changes(patch 3 and 4) can be picked up by Tony via >> omap/arm-soc tree. They are mostly independent and should not cause any >> problems. Does that sound good? > > It should be fine but technically as soon as patch (2) is applied we > would have a regression if patches (3) and (4) are applied separately. > Right, although not a regression, I see your point. It would be good to merge patch 3 and 4 before patch 2. Tony, Let me know if you are okay with taking this series via omap tree. I can resend re-ordering patch 2 to come at the end of the series. Regards Vignesh > >>> Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> >>> >> >> Thanks! >> >>> Please let me know if I can drop this series from the PCI patchwork. >>> >>> Thanks, >>> Lorenzo >>> >>>> + >>>> switch (mode) { >>>> case DW_PCIE_RC_TYPE: >>>> if (!IS_ENABLED(CONFIG_PCI_DRA7XX_HOST)) { >>>> @@ -717,10 +721,6 @@ static int __init dra7xx_pcie_probe(struct platform_device *pdev) >>>> dra7xx_pcie_writel(dra7xx, PCIECTRL_TI_CONF_DEVICE_TYPE, >>>> DEVICE_TYPE_EP); >>>> >>>> - ret = dra7xx_pcie_ep_unaligned_memaccess(dev); >>>> - if (ret) >>>> - goto err_gpio; >>>> - >>>> ret = dra7xx_add_pcie_ep(dra7xx, pdev); >>>> if (ret < 0) >>>> goto err_gpio; >>>> -- >>>> 2.18.0 >>>> >> >> -- >> Regards >> Vignesh -- Regards Vignesh ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v2 3/4] ARM: dts: dra7: Enable workaround for errata i870 in PCIe host mode 2018-06-27 12:29 [PATCH v2 0/4] pci-dra7xx: Enable errata i870 workaround for RC mode Vignesh R 2018-06-27 12:29 ` [PATCH v2 1/4] dt-bindings: PCI: dra7xx: Add bindings for unaligned access in host mode Vignesh R 2018-06-27 12:29 ` [PATCH v2 2/4] pci: dwc: pci-dra7xx: Enable errata i870 for both EP and RC mode Vignesh R @ 2018-06-27 12:29 ` Vignesh R 2018-06-27 12:29 ` [PATCH v2 4/4] ARM: dts: dra7: Fix up unaligned access setting for PCIe EP Vignesh R 3 siblings, 0 replies; 12+ messages in thread From: Vignesh R @ 2018-06-27 12:29 UTC (permalink / raw) To: Tony Lindgren, Rob Herring, Kishon Vijay Abraham I, Lorenzo Pieralisi Cc: Bjorn Helgaas, linux-omap, devicetree, linux-kernel, linux-pci, Vignesh R Add ti,syscon-unaligned-access property to PCIe RC nodes to set appropriate bits in CTRL_CORE_SMA_SW_7 register to enable workaround for errata i870. Signed-off-by: Vignesh R <vigneshr@ti.com> --- arch/arm/boot/dts/dra7.dtsi | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm/boot/dts/dra7.dtsi b/arch/arm/boot/dts/dra7.dtsi index 93fc2d79d337..7bfe7f28e3bd 100644 --- a/arch/arm/boot/dts/dra7.dtsi +++ b/arch/arm/boot/dts/dra7.dtsi @@ -336,6 +336,7 @@ <0 0 0 2 &pcie1_intc 2>, <0 0 0 3 &pcie1_intc 3>, <0 0 0 4 &pcie1_intc 4>; + ti,syscon-unaligned-access = <&scm_conf1 0x14 1>; status = "disabled"; pcie1_intc: interrupt-controller { interrupt-controller; @@ -387,6 +388,7 @@ <0 0 0 2 &pcie2_intc 2>, <0 0 0 3 &pcie2_intc 3>, <0 0 0 4 &pcie2_intc 4>; + ti,syscon-unaligned-access = <&scm_conf1 0x14 2>; pcie2_intc: interrupt-controller { interrupt-controller; #address-cells = <0>; -- 2.18.0 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v2 4/4] ARM: dts: dra7: Fix up unaligned access setting for PCIe EP 2018-06-27 12:29 [PATCH v2 0/4] pci-dra7xx: Enable errata i870 workaround for RC mode Vignesh R ` (2 preceding siblings ...) 2018-06-27 12:29 ` [PATCH v2 3/4] ARM: dts: dra7: Enable workaround for errata i870 in PCIe host mode Vignesh R @ 2018-06-27 12:29 ` Vignesh R 2018-07-17 9:55 ` Kishon Vijay Abraham I 3 siblings, 1 reply; 12+ messages in thread From: Vignesh R @ 2018-06-27 12:29 UTC (permalink / raw) To: Tony Lindgren, Rob Herring, Kishon Vijay Abraham I, Lorenzo Pieralisi Cc: Bjorn Helgaas, linux-omap, devicetree, linux-kernel, linux-pci, Vignesh R Bit positions of PCIE_SS1_AXI2OCP_LEGACY_MODE_ENABLE and PCIE_SS1_AXI2OCP_LEGACY_MODE_ENABLE in CTRL_CORE_SMA_SW_7 are incorrectly documented in the TRM. In fact, the bit positions are swapped. Update the DT bindings for PCIe EP to reflect the same. Signed-off-by: Vignesh R <vigneshr@ti.com> --- arch/arm/boot/dts/dra7.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/dra7.dtsi b/arch/arm/boot/dts/dra7.dtsi index 7bfe7f28e3bd..27ad193e1a87 100644 --- a/arch/arm/boot/dts/dra7.dtsi +++ b/arch/arm/boot/dts/dra7.dtsi @@ -355,7 +355,7 @@ ti,hwmods = "pcie1"; phys = <&pcie1_phy>; phy-names = "pcie-phy0"; - ti,syscon-unaligned-access = <&scm_conf1 0x14 2>; + ti,syscon-unaligned-access = <&scm_conf1 0x14 1>; status = "disabled"; }; }; -- 2.18.0 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH v2 4/4] ARM: dts: dra7: Fix up unaligned access setting for PCIe EP 2018-06-27 12:29 ` [PATCH v2 4/4] ARM: dts: dra7: Fix up unaligned access setting for PCIe EP Vignesh R @ 2018-07-17 9:55 ` Kishon Vijay Abraham I 2018-07-19 10:54 ` Vignesh R 0 siblings, 1 reply; 12+ messages in thread From: Kishon Vijay Abraham I @ 2018-07-17 9:55 UTC (permalink / raw) To: Vignesh R, Tony Lindgren, Rob Herring, Lorenzo Pieralisi Cc: Bjorn Helgaas, linux-omap, devicetree, linux-kernel, linux-pci On Wednesday 27 June 2018 05:59 PM, Vignesh R wrote: > Bit positions of PCIE_SS1_AXI2OCP_LEGACY_MODE_ENABLE and > PCIE_SS1_AXI2OCP_LEGACY_MODE_ENABLE in CTRL_CORE_SMA_SW_7 are > incorrectly documented in the TRM. In fact, the bit positions are > swapped. Update the DT bindings for PCIe EP to reflect the same. > > Signed-off-by: Vignesh R <vigneshr@ti.com> Shouldn't this be sent to stable fixes? Thanks Kishon > --- > arch/arm/boot/dts/dra7.dtsi | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/arm/boot/dts/dra7.dtsi b/arch/arm/boot/dts/dra7.dtsi > index 7bfe7f28e3bd..27ad193e1a87 100644 > --- a/arch/arm/boot/dts/dra7.dtsi > +++ b/arch/arm/boot/dts/dra7.dtsi > @@ -355,7 +355,7 @@ > ti,hwmods = "pcie1"; > phys = <&pcie1_phy>; > phy-names = "pcie-phy0"; > - ti,syscon-unaligned-access = <&scm_conf1 0x14 2>; > + ti,syscon-unaligned-access = <&scm_conf1 0x14 1>; > status = "disabled"; > }; > }; > ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 4/4] ARM: dts: dra7: Fix up unaligned access setting for PCIe EP 2018-07-17 9:55 ` Kishon Vijay Abraham I @ 2018-07-19 10:54 ` Vignesh R 0 siblings, 0 replies; 12+ messages in thread From: Vignesh R @ 2018-07-19 10:54 UTC (permalink / raw) To: Kishon Vijay Abraham I, Tony Lindgren, Rob Herring, Lorenzo Pieralisi Cc: Bjorn Helgaas, linux-omap, devicetree, linux-kernel, linux-pci Hi Tony, On Tuesday 17 July 2018 03:25 PM, Kishon Vijay Abraham I wrote: > > > On Wednesday 27 June 2018 05:59 PM, Vignesh R wrote: >> Bit positions of PCIE_SS1_AXI2OCP_LEGACY_MODE_ENABLE and >> PCIE_SS1_AXI2OCP_LEGACY_MODE_ENABLE in CTRL_CORE_SMA_SW_7 are >> incorrectly documented in the TRM. In fact, the bit positions are >> swapped. Update the DT bindings for PCIe EP to reflect the same. >> >> Signed-off-by: Vignesh R <vigneshr@ti.com> > > Shouldn't this be sent to stable fixes? This patch fixes: Fixes: d23f3839fe97 ("ARM: dts: DRA7: Add pcie1 dt node for EP mode") Cc: stable@vger.kernel.org let me know if this needs to be resent with Fixes tag. Regards Vignesh > > Thanks > Kishon >> --- >> arch/arm/boot/dts/dra7.dtsi | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/arch/arm/boot/dts/dra7.dtsi b/arch/arm/boot/dts/dra7.dtsi >> index 7bfe7f28e3bd..27ad193e1a87 100644 >> --- a/arch/arm/boot/dts/dra7.dtsi >> +++ b/arch/arm/boot/dts/dra7.dtsi >> @@ -355,7 +355,7 @@ >> ti,hwmods = "pcie1"; >> phys = <&pcie1_phy>; >> phy-names = "pcie-phy0"; >> - ti,syscon-unaligned-access = <&scm_conf1 0x14 2>; >> + ti,syscon-unaligned-access = <&scm_conf1 0x14 1>; >> status = "disabled"; >> }; >> }; >> ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2018-07-19 15:58 UTC | newest] Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2018-06-27 12:29 [PATCH v2 0/4] pci-dra7xx: Enable errata i870 workaround for RC mode Vignesh R 2018-06-27 12:29 ` [PATCH v2 1/4] dt-bindings: PCI: dra7xx: Add bindings for unaligned access in host mode Vignesh R 2018-06-27 12:29 ` [PATCH v2 2/4] pci: dwc: pci-dra7xx: Enable errata i870 for both EP and RC mode Vignesh R 2018-07-17 9:54 ` Kishon Vijay Abraham I 2018-07-18 11:02 ` Lorenzo Pieralisi 2018-07-19 10:34 ` Vignesh R 2018-07-19 11:15 ` Lorenzo Pieralisi 2018-07-19 15:59 ` Vignesh R 2018-06-27 12:29 ` [PATCH v2 3/4] ARM: dts: dra7: Enable workaround for errata i870 in PCIe host mode Vignesh R 2018-06-27 12:29 ` [PATCH v2 4/4] ARM: dts: dra7: Fix up unaligned access setting for PCIe EP Vignesh R 2018-07-17 9:55 ` Kishon Vijay Abraham I 2018-07-19 10:54 ` Vignesh R
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).