From patchwork Tue Mar 14 15:18:25 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Andrey Smirnov X-Patchwork-Id: 738778 Return-Path: X-Original-To: incoming-imx@patchwork.ozlabs.org Delivered-To: patchwork-incoming-imx@bilbo.ozlabs.org Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3vjJdM5DyPz9s2Q for ; Wed, 15 Mar 2017 02:32:23 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="efjPQQhX"; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="rdqDPXXy"; dkim-atps=neutral DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=N8P/lOvz24qDe7ZxN1UUuIRr/NByNdrzNzeyO8JoRX8=; b=efjPQQhXY8t39Z CnJDEkBypXIeIhIZju1Mca6wbVKnylisMAlR9toVMDFj39DS0E96ymA5QQ/Fkh5W00p+QFghy9Ihr WuLPPcwI7ziCmgIppW0L9U36Kf7HGnU0CNw3Cka8naw3mFiy3w6D1LYjjz1jsG32LGherR5UhHlhy KtPBTXUIMzFbRlw5MFpnMGlcgxJBGAxS0xgRZwNEQTkLjAVHghBrMno6Hvq8FidAI4Ty88VMzt+8/ vILHBYRdcKI0RzptWf8wWXCuYvEBt5SKqPgpeBkBvNDoWrizt59fpqAWjWLHgJDWG3Q39KAQD4iS9 hmnGoGYy+xzX9LqjpXwA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1cnoQv-00023e-J5; Tue, 14 Mar 2017 15:32:21 +0000 Received: from mail-pg0-x241.google.com ([2607:f8b0:400e:c05::241]) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1cnoDw-00031L-CH for linux-arm-kernel@lists.infradead.org; Tue, 14 Mar 2017 15:19:01 +0000 Received: by mail-pg0-x241.google.com with SMTP id g2so20624646pge.2 for ; Tue, 14 Mar 2017 08:18:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ePbiKF2W6kKNRTxuHnnP6+bHK+6aH9P08o/whfSMWgU=; b=rdqDPXXyBDWVBbIBZNwoay1WM3GXckEQGaqVj0dRenBD72fYoT9VbVCZXdDkTc1ms1 s4AHbJihS9wbfnCeYmEkCgOJJV7NW6SB299GYH2j868ac+VTTotUuKqNY908SxN0W+op 7cC7LxoieNI/NPOZ2m6YMna10JhX5OtvNa3ebXk/70PtAxKphz2/yz8LvovfU/Ao1QYA 8QEjI4j9eHmDmjUBtKCJAAs5OK+xqv6t7g45Qu+3r9WU3nuztw51BnNL7OYNpkkFBGRk viSW7hSKB72X+2ss+Ac65qoy9hzcRN5bsGGr0xAXVwusL9qkgcxlrR7Z4vZ4Kg7SM8tV Xyvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ePbiKF2W6kKNRTxuHnnP6+bHK+6aH9P08o/whfSMWgU=; b=gyqe/p4J/9LodGVRwuXhuTfPMjeL9Dhl0UoBkBE7FhT3hCq6BNymP2ClMSU0Fuv3Pa IlcnPXeilkwmmqw1CDXMirmkBuaIwm8pYCOlkrOYKAz26yIu6kofc4HjK+PnPANWybty Ixs8G0wd5IZPnvCUXdv4cYg7GQsCNJylMNWwuUjFpC/TnFv5iI5fllFQ3Lfyo4rCPN6h 0IsUV2Yhi4Paqqppy5QzaAT+kZJzIVgUoOmh0BEBlCTklCKN2d1LiA2b0P08zsFBLK7A NW55QTyHwyB5S1vNMfx5DqJl35NXo0+edwiMTowemG7kLwBw9Xem/aG4O6YgGVu8Vxju UDFw== X-Gm-Message-State: AMke39l4E9rLbHTzJ/ATWUYmDC+3Q5Imp0UrTdnVWEgWs/AM/kh4qdectFY1SrwG6hacpQ== X-Received: by 10.99.189.9 with SMTP id a9mr44008800pgf.190.1489504714582; Tue, 14 Mar 2017 08:18:34 -0700 (PDT) Received: from squirtle.lan ([2601:602:9400:8377:f0f2:a63b:2597:b3d9]) by smtp.gmail.com with ESMTPSA id m6sm39248277pfm.22.2017.03.14.08.18.33 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 14 Mar 2017 08:18:33 -0700 (PDT) From: Andrey Smirnov To: linux-pci@vger.kernel.org Subject: [PATCH v6 2/4] PCI: imx6: Do not wait for speed change on i.MX7 Date: Tue, 14 Mar 2017 08:18:25 -0700 Message-Id: <20170314151827.31248-3-andrew.smirnov@gmail.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170314151827.31248-1-andrew.smirnov@gmail.com> References: <20170314151827.31248-1-andrew.smirnov@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20170314_081856_470068_39DC6A2D X-CRM114-Status: GOOD ( 15.73 ) X-Spam-Score: -2.0 (--) X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary: Content analysis details: (-2.0 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [2607:f8b0:400e:c05:0:0:0:241 listed in] [list.dnswl.org] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (andrew.smirnov[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Andrey Smirnov , linux-kernel@vger.kernel.org, Fabio Estevam , Bjorn Helgaas , yurovsky@gmail.com, linux-arm-kernel@lists.infradead.org, Lucas Stach Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org List-Id: linux-imx-kernel.lists.patchwork.ozlabs.org As can be seen from [1]: "...the different behavior between iMX6Q PCIe and iMX7D PCIe maybe caused by the different controller version. Regarding to the DOC description, the DIRECT_SPEED_CHANGE should be cleared after the speed change from GEN1 to GEN2. Unfortunately, when GEN1 device is used, the behavior is not documented. So, IC design guys run the simulation and find out the following behaviors: 1. DIRECT_SPEED_CHANGE will be cleared in 7D after speed change from GEN1 to GEN2. This matches doc’s description 2. set MAX link speed(PCIE_CAP_TARGET_LINK_SPEED=0x01) as GEN1 and re-run the simulation, DIRECT_SPEED_CHANGE will not be cleared; remain as 1, this matches your result, but function test is passed, so this bit should not affect the normal PCIe function. ..." imx6_pcie_wait_for_speed_change will report false failures for Gen1 -> Gen1 speed transition, so avoid doing that check and just rely on imx6_pcie_wait_for_link only. [1] https://community.nxp.com/message/867943 Cc: yurovsky@gmail.com Cc: Lucas Stach Cc: Bjorn Helgaas Cc: Fabio Estevam Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Andrey Smirnov --- drivers/pci/host/pci-imx6.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/drivers/pci/host/pci-imx6.c b/drivers/pci/host/pci-imx6.c index 2f3f375..473bbdc 100644 --- a/drivers/pci/host/pci-imx6.c +++ b/drivers/pci/host/pci-imx6.c @@ -577,10 +577,21 @@ static int imx6_pcie_establish_link(struct imx6_pcie *imx6_pcie) tmp |= PORT_LOGIC_SPEED_CHANGE; dw_pcie_writel_rc(pp, PCIE_LINK_WIDTH_SPEED_CONTROL, tmp); - ret = imx6_pcie_wait_for_speed_change(imx6_pcie); - if (ret) { - dev_err(dev, "Failed to bring link up!\n"); - goto err_reset_phy; + if (imx6_pcie->variant != IMX7D) { + /* + * On i.MX7, DIRECT_SPEED_CHANGE behaves differently + * from i.MX6 family when no link speed transition + * occurs and we go Gen1 -> yep, Gen1. The difference + * is that, in such case, it will not be cleared by HW + * which will cause the following code to report false + * failure. + */ + + ret = imx6_pcie_wait_for_speed_change(imx6_pcie); + if (ret) { + dev_err(dev, "Failed to bring link up!\n"); + goto err_reset_phy; + } } /* Make sure link training is finished as well! */