From patchwork Mon Feb 20 16:08:58 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Andrey Smirnov X-Patchwork-Id: 9583219 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 EB0D6604A0 for ; Mon, 20 Feb 2017 16:13:42 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0DDD0283F2 for ; Mon, 20 Feb 2017 16:13:43 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 01B5628449; Mon, 20 Feb 2017 16:13:42 +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 4979C283F2 for ; Mon, 20 Feb 2017 16:13:42 +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=N8P/lOvz24qDe7ZxN1UUuIRr/NByNdrzNzeyO8JoRX8=; b=Z23Cd7OlFH/Mn4 lt1rOeRC4JfyquSmriFgB2NIS9DpbDFdie/7klkReZHFJ/mwUUO17CU+noXXsD14DgpLNjNND0Z/U +GjaZYFeJWghWV7goFOmkss10G1lvRKfE/GQEW74EYVRtuB3rXA0jXRE7MlOmXOXd7Fj2e41gU9rn baW2U+bF7818YbTrh5U2gakgUCTgq2IV3RYNiftsWb+oLziR494iShw6hSM1FKsZpOc+PeF7uk57u rfEP45P7gfpEjaSGQTjhrNyUA7A0ugp/0o2umdqsU8meq1UdW2B90qtB8JhrIP7sjoGoyTeoKHu2X Cv5xvriTicAynxxI/q8Q==; 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 1cfqak-0001Ta-TZ; Mon, 20 Feb 2017 16:13:34 +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 1cfqXR-00071W-M9 for linux-arm-kernel@lists.infradead.org; Mon, 20 Feb 2017 16:10:16 +0000 Received: by mail-pg0-x242.google.com with SMTP id s67so2926176pgb.1 for ; Mon, 20 Feb 2017 08:09:51 -0800 (PST) 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=GSoYee35EHmRJrzA4wbfxjBbx4omjBkASF0w/wc03amAWmsqsp0kyzpIq+DrDW3b4t uO+JceFPgaP5vkaulbXn42qqpcjKQEZq39eZ7yuYKlDJPei05D+QAmgz342Kh4tfVPiY 0YkIzYE6smWFj7tSrQjgFMbeYXEvdqkXEowtoxhMzxgpGXFuJCibkIUwrILqpItTCOAF FH1L8z7jkSXOm6pODCxPDlbz7dRPz8dItLilCCWUbs+pcUhpvfAqCm/9Y6q89SbqOWpY 8vTOcMyDa7d/eHMVdVFRsczVTH7G/68+hJ35Fn3XAJlMCFDCg/NXuF7KOeVXenleUFcz GAtQ== 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=WiFf+i6budU1NnQ3acWYJZPSwMOqPBk9eIoGxOCHF6jbAQe2cmiQWxTy2uBBmHcwFi xDAEjONOVxk3yCbEnpBrTvDBhUKbJUYZr7hEtJqOLimPweAz4OkgE6IJRGA/HyBvfrFr LggUlNNDdEoqOBnUI8EGAOhQ5kBFchC5Q6f9RgVmTBZn9wGpmaSYencsyW1INY8oTUK1 x2Wcl0UtySPHyUmXq0sBrUSDBQMbE/cfw5z3UFRVcNp1iyNSWLxo5hMMXPzuHPo+j/Nx UZVcdPWd8caLSlY0xVAJ7p9XDbWnNOQ+Vl255lcR4wN/qr2UssZX4C5kpkqM5ZSo6Ggp 4KcA== X-Gm-Message-State: AMke39m5b9ITXZK5YpHiLeyb3SJYbeRwItwsXJyk6TwhY7IE7o7jXVHgQUT9DZGQmXELzg== X-Received: by 10.98.192.25 with SMTP id x25mr9678100pff.158.1487606990832; Mon, 20 Feb 2017 08:09:50 -0800 (PST) Received: from localhost.localdomain (c-73-19-0-61.hsd1.wa.comcast.net. [73.19.0.61]) by smtp.gmail.com with ESMTPSA id y184sm36059266pfg.86.2017.02.20.08.09.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 Feb 2017 08:09:50 -0800 (PST) From: Andrey Smirnov To: linux-pci@vger.kernel.org Subject: [RESEND PATCH v5 2/4] PCI: imx6: Do not wait for speed change on i.MX7 Date: Mon, 20 Feb 2017 08:08:58 -0800 Message-Id: <20170220160900.7014-3-andrew.smirnov@gmail.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170220160900.7014-1-andrew.smirnov@gmail.com> References: <20170220160900.7014-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-20170220_081010_327035_C45099C0 X-CRM114-Status: GOOD ( 15.32 ) 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: 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: 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! */