Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp808561ybz; Wed, 29 Apr 2020 09:44:58 -0700 (PDT) X-Google-Smtp-Source: APiQypL9ICYt1h7n823pCcl3xMMBMNhl3bhtCnSYjSP/Q5QbpQVQCMUp4h4m+qB+w+NjIeC+kLt8 X-Received: by 2002:aa7:c492:: with SMTP id m18mr3273900edq.346.1588178698387; Wed, 29 Apr 2020 09:44:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588178698; cv=none; d=google.com; s=arc-20160816; b=rlNdvO7pRgls7wFYB36Xst37B8GI8CZZcd9xjiMi9QYxZ3bEcOEUwZesJsChLIzLVX Ba8weWTb3T/MgPU4KoBUxI7y4Pias3o/ILtvkUtr6QdZGKiu+EaQwVpUTedJRnOOo/Cc uJEyBmu5t/fUFFVvzr7OqGMd7oS9bf0PX8fE/sMPzkX9tO3/ufXUw37MtgaKkkmHvKd2 aQbSlK8/9A/VT52HEZUydBX6v+V+/+Bvhm+E01FDUwKtBq/IzfZWphj8f++t/SG+aKaV BmRq89w4GQV+kf4jDx5yetriS25fOQMBdTbWCNj4VNpfK+PlTt7oHYosdyNKgvpoLx+C ARkQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=8C90rttjf6mbQdfa5ALy8xHp9cSbdIUacArPyEyLM5I=; b=oqWy15OL/9q3xzfp+YEiJdPK6/YtCS+jr36OjbIFtBwiitJxBFR/5EjDyGhLv/vMXC fr44/QFRBKIwsyrszqn0cmvpb6WwyFc4uzm+EDYWK3KNsGRV3xEl7yx96M+Tfmn7TQ4L 7hAx4zE1KCtUpzVWaA1WCtXDw88DuMOrnkv3r2O4CstX7dGsq1zdFJ/nLLqcUBo58GSq CEwXTjgeNC5gtznErAmzytDZfrQhjpFCMP4mK7FGDXUiZzBwuVwxtnsezI6ZQ17je9R3 60+1Jg+0hZqAykc8r3+OLOwEmJRnka8I85CtFerASpUzEDCFfMhfnbVY2gH/ERdcswlb 1YHA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=aV5IKpRS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id b4si4109224ejj.10.2020.04.29.09.44.34; Wed, 29 Apr 2020 09:44:58 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=aV5IKpRS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726814AbgD2Qmi (ORCPT + 99 others); Wed, 29 Apr 2020 12:42:38 -0400 Received: from mail.kernel.org ([198.145.29.99]:53866 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726493AbgD2Qmi (ORCPT ); Wed, 29 Apr 2020 12:42:38 -0400 Received: from disco-boy.misterjones.org (disco-boy.misterjones.org [51.254.78.96]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 56B6020787; Wed, 29 Apr 2020 16:42:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1588178557; bh=vH8eIR3MMlTacZK4WfkYpv1el05yTxrI9SEhKlzGIcg=; h=From:To:Cc:Subject:Date:From; b=aV5IKpRSmbzOy/KapP8clDwAjF1XQgvhlAAKcGpyPC3fA71gVOlb1VJEFJUyWeh5R b8Q2FzDd80vPcdKaLjRdVqQEl3atumGCJaFIhAFsbNFW1Fz0nhWOEWLApaaE/SvBfl OZn2BehNgeP9BLcn27Z3FwzmO5d9zEizNcZLDDyU= Received: from 78.163-31-62.static.virginmediabusiness.co.uk ([62.31.163.78] helo=why.lan) by disco-boy.misterjones.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jTpn9-007lrk-7s; Wed, 29 Apr 2020 17:42:35 +0100 From: Marc Zyngier To: linux-pci@vger.kernel.org, linux-amlogic@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Yue Wang , Lorenzo Pieralisi , Rob Herring , Bjorn Helgaas , Kevin Hilman Subject: [PATCH] PCI: amlogic: meson: Don't use FAST_LINK_MODE to set up link Date: Wed, 29 Apr 2020 17:42:30 +0100 Message-Id: <20200429164230.309922-1-maz@kernel.org> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SA-Exim-Connect-IP: 62.31.163.78 X-SA-Exim-Rcpt-To: linux-pci@vger.kernel.org, linux-amlogic@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, yue.wang@Amlogic.com, lorenzo.pieralisi@arm.com, robh@kernel.org, bhelgaas@google.com, khilman@baylibre.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org My vim3l board stubbornly refuses to play ball with a bog standard PCIe switch (ASM1184e), spitting all kind of errors ranging from link never coming up to crazy things like downstream ports falling off the face of the planet. Upon investigating how the PCIe RC is configured, I found the following nugget: the Sysnopsys DWC PCIe Reference Manual, in the section dedicated to the PLCR register, describes bit 7 (FAST_LINK_MODE) as: "Sets all internal timers to fast mode for simulation purposes." I completely understand the need for setting this bit from a simulation perspective, but what I have on my desk is actual silicon, which expects timers to have a nominal value (and I expect this is the case for most people). Making sure the FAST_LINK_MODE bit is cleared when configuring the RC solves this problem. Fixes: 9c0ef6d34fdb ("PCI: amlogic: Add the Amlogic Meson PCIe controller driver") Signed-off-by: Marc Zyngier --- drivers/pci/controller/dwc/pci-meson.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/pci/controller/dwc/pci-meson.c b/drivers/pci/controller/dwc/pci-meson.c index 3715dceca1bf..ca59ba9e0ecd 100644 --- a/drivers/pci/controller/dwc/pci-meson.c +++ b/drivers/pci/controller/dwc/pci-meson.c @@ -289,11 +289,11 @@ static void meson_pcie_init_dw(struct meson_pcie *mp) meson_cfg_writel(mp, val, PCIE_CFG0); val = meson_elb_readl(mp, PCIE_PORT_LINK_CTRL_OFF); - val &= ~LINK_CAPABLE_MASK; + val &= ~(LINK_CAPABLE_MASK | FAST_LINK_MODE); meson_elb_writel(mp, val, PCIE_PORT_LINK_CTRL_OFF); val = meson_elb_readl(mp, PCIE_PORT_LINK_CTRL_OFF); - val |= LINK_CAPABLE_X1 | FAST_LINK_MODE; + val |= LINK_CAPABLE_X1; meson_elb_writel(mp, val, PCIE_PORT_LINK_CTRL_OFF); val = meson_elb_readl(mp, PCIE_GEN2_CTRL_OFF); -- 2.26.2