From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS,URIBL_BLOCKED,USER_AGENT_MUTT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C4472ECDFBB for ; Wed, 18 Jul 2018 11:00:58 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 8A7DA2084E for ; Wed, 18 Jul 2018 11:00:58 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8A7DA2084E Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730460AbeGRLiR (ORCPT ); Wed, 18 Jul 2018 07:38:17 -0400 Received: from foss.arm.com ([217.140.101.70]:60466 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727000AbeGRLiR (ORCPT ); Wed, 18 Jul 2018 07:38:17 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id C599380D; Wed, 18 Jul 2018 04:00:53 -0700 (PDT) Received: from red-moon (red-moon.cambridge.arm.com [10.1.206.55]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 299B73F318; Wed, 18 Jul 2018 04:00:52 -0700 (PDT) Date: Wed, 18 Jul 2018 12:02:50 +0100 From: Lorenzo Pieralisi To: Vignesh R Cc: Tony Lindgren , Rob Herring , Kishon Vijay Abraham I , Bjorn Helgaas , linux-omap@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org Subject: Re: [PATCH v2 2/4] pci: dwc: pci-dra7xx: Enable errata i870 for both EP and RC mode Message-ID: <20180718110250.GA21589@red-moon> References: <20180627122919.23926-1-vigneshr@ti.com> <20180627122919.23926-3-vigneshr@ti.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180627122919.23926-3-vigneshr@ti.com> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 > Signed-off-by: Vignesh R > --- > 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 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 >