From patchwork Tue Mar 21 13:42:02 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Andrey Smirnov X-Patchwork-Id: 9636635 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 6F18860216 for ; Tue, 21 Mar 2017 13:46:29 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6775927C0B for ; Tue, 21 Mar 2017 13:46:29 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5AD0427DA4; Tue, 21 Mar 2017 13:46:29 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FROM autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id F3C3A27C0B for ; Tue, 21 Mar 2017 13:46:25 +0000 (UTC) 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=L5y7iBWXr7Y1i0uHzjnSHpYa3Yc8a9apa8mSriOb6uQ=; b=aV842mQEUsFnqr jKEf5BH5FONWyifNBodmeS30GMMyXHppFCiswbuvyteqGZZ5K030s6HHaB23B9NCDNr+YXoDbfnT8 v+4/C9d2G7UDP340lQ45zN6Yc9J3XhUDfclt9x25C/JRVH2x/RQsSPCLdZK58n+lhz8dRWgyy9xLp I43YwlKR4tUFK04iLXCBN/uz96b81Y7Gkt/dY/Hr+Euk+5jHMF6fQIss68968IsNYTFt2a2X7IBZs UPll8oQWkddvzHaGRCflsmLKRSSCmw39HG0WaYmV1gBLHCUYIbjTr5mCJRZFz32yuIQS1Xyvzjfql vsOwMvXtQY8AvT+R8uLQ==; 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 1cqK7C-0002ib-OZ; Tue, 21 Mar 2017 13:46:22 +0000 Received: from mail-pg0-x242.google.com ([2607:f8b0:400e:c05::242]) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1cqK3S-00082y-U1 for linux-arm-kernel@lists.infradead.org; Tue, 21 Mar 2017 13:42:33 +0000 Received: by mail-pg0-x242.google.com with SMTP id w20so312461pgc.1 for ; Tue, 21 Mar 2017 06:42:10 -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=Li4K8GR0FTDrxVTyVCZwv4W9fvMRhJ13a5Ddsu7r1Zo=; b=I9qMn2rLEpZAvbCZhhVCuSYO1gP6sOV0NSGlCuSvJ2N3peMrwJIxDcKy3DAxWOwnA1 66XWs/MOJQ9mlorsBfeASa12YgKV3RpCFAPEZWARM7U9YtwPZKUITyfHmAacutt8Eyv4 t/1oKXqRrUwqie6hz2woVUVgX3tMy3MC+DrQNqXqKP6zi4Ba8VARrecU/R3Mbqdd8lxO P+x53jU7xwjvdPLWh2OVn1FAEdJKgzPWflxjrF2wkRGTp7DGUzUiDPJGOLCpHmS2zf5g M9mJNKVnQ3EKfFnp+7Qo85+NOiATocNP4YkDuXBoaaNlRuYucOLb94Q9npy9SuQF9RSM Q03Q== 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=Li4K8GR0FTDrxVTyVCZwv4W9fvMRhJ13a5Ddsu7r1Zo=; b=C+Zadsld+8mQeJR7jzQIhDKjdVEF7EG1vpX1rcHgb4xHy8WsPBaKUWlj2FWKtOS/1H nmNh8dXbi7F+CF4N7NDgZ1g8R0hYkYv6GRtp4oHMdGlc1/0InJYdUufhFh3SXGRo0dGm 8sTkK718hdgCwMdFOZ6U14fwyTvdxHN94T1B9++VnL1az3++LaA1+okKdvwKhiIYsHk0 qvPd34OmuHURUu+0rDCWxzY6PSbqbZIogPDFPh2gIz3DLB66wXs+1rNU39sgtBs2DJ9+ alldapMnuUZEnsm8tn5KoAsx8QubsbnzSK7e3GmOmIXTQKPLIAkt8cBzP7/qoNCjkGlz 4wog== X-Gm-Message-State: AFeK/H0YzGBOpbwmLsZb+4z9tbiL/A8VFMCNl582+qmmiOauQvSztynhCXUi/qTfd90VQg== X-Received: by 10.98.144.151 with SMTP id q23mr39238899pfk.51.1490103730135; Tue, 21 Mar 2017 06:42:10 -0700 (PDT) Received: from squirtle.lan (c-73-19-0-61.hsd1.wa.comcast.net. [73.19.0.61]) by smtp.gmail.com with ESMTPSA id x21sm39898761pfa.71.2017.03.21.06.42.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 21 Mar 2017 06:42:09 -0700 (PDT) From: Andrey Smirnov To: linux-pci@vger.kernel.org Subject: [PATCH v7 3/4] PCI: imx6: Do not wait for speed change on i.MX7 Date: Tue, 21 Mar 2017 06:42:02 -0700 Message-Id: <20170321134203.26325-4-andrew.smirnov@gmail.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170321134203.26325-1-andrew.smirnov@gmail.com> References: <20170321134203.26325-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-20170321_064230_998595_BEFBD23D X-CRM114-Status: GOOD ( 15.99 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Dong Aisheng , 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+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP 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: Dong Aisheng Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Andrey Smirnov Reviewed-by: Lucas Stach --- drivers/pci/dwc/pci-imx6.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/drivers/pci/dwc/pci-imx6.c b/drivers/pci/dwc/pci-imx6.c index 64de9bb..c731e41 100644 --- a/drivers/pci/dwc/pci-imx6.c +++ b/drivers/pci/dwc/pci-imx6.c @@ -545,10 +545,21 @@ static int imx6_pcie_establish_link(struct imx6_pcie *imx6_pcie) tmp |= PORT_LOGIC_SPEED_CHANGE; dw_pcie_writel_dbi(pci, 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! */