Received: by 2002:a5d:925a:0:0:0:0:0 with SMTP id e26csp1187662iol; Fri, 10 Jun 2022 02:06:19 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyuQV7Izg+2T/lR67w39W+vXXAdvwJc84rWmny7CucjEqq4xVLjLBlm1xayIfDnmn8z7cQh X-Received: by 2002:a17:907:1b28:b0:6fe:fc41:35ce with SMTP id mp40-20020a1709071b2800b006fefc4135cemr40311212ejc.153.1654851979545; Fri, 10 Jun 2022 02:06:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1654851979; cv=none; d=google.com; s=arc-20160816; b=Once7bGW/kC0KploxV2DSrqcaHWqgjBWkxHg8uBBg2SUWNXGEJ7sfZTJw1yRV8h0l7 JpC6wUMI+yU3UIU0IZkzLI7zo8wyZcdkjVOT9+TTbX8vBJyePEvcdlttjH+Ze6osZnpC /CoF0FMTaP1w6VPSNJIcJVstmt53M8WfVa9AZpBHNDcB3vNoQoDIapv9CnG66hg0nf5/ kAXK0cn1urDw54V+g3rgv2ek+LgAtd5HGPErMIYBMpFWK3ogNhZ5F+5Ep28oqoEZcQNz rikMXkt/6lj80JuknIAk+AKuXKsou4EJNCqVEXzZKIe1KMBtoGQBQxzq7m2IcgjrQPa2 zmzg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-filter; bh=3qGTdt7z7PgMIeLrOUnz8BGjA4aE8NJd1KjGC5/ncCc=; b=Rrt6aMcY/OB9c/9CzhJxDodqRpF+UBsYRDQRhl9Lbd5QOgsCzCgMX9nHDsOV8rrGki gYeyLERKN8gweSg9UHV8cl1Vex/+yJLC3uiH6HxKo8Wd38r1iGO5488D8ZI5kFav3xoG wY82VdGsl0JY6pqFzxdzD1MNqtjDKbXEDJqazTtI/fzGWPdo7MxtslbXfOP4h+mE6Btt FpArE/7actX3C64zwcvncMPFhwUGLrzasD6sUaQhoNT7k42jEtPqL954t9CCCP+SR8OD zoUtFTaf7Skuw+FaIzvAo5xCKjS680HzBZX4og1qBnqtZBzamV9P2mOy8dpzRDp7TJqX /mEg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baikalelectronics.ru header.s=mail header.b=KCOgRQzk; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=baikalelectronics.ru Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f19-20020a0564021e9300b00425cd9dfd48si27600132edf.171.2022.06.10.02.05.54; Fri, 10 Jun 2022 02:06:19 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@baikalelectronics.ru header.s=mail header.b=KCOgRQzk; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=baikalelectronics.ru Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S245171AbiFJI3Y (ORCPT + 99 others); Fri, 10 Jun 2022 04:29:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37646 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1347604AbiFJI1n (ORCPT ); Fri, 10 Jun 2022 04:27:43 -0400 Received: from mail.baikalelectronics.com (mail.baikalelectronics.com [87.245.175.230]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id E4CDD267B; Fri, 10 Jun 2022 01:25:53 -0700 (PDT) Received: from mail (mail.baikal.int [192.168.51.25]) by mail.baikalelectronics.com (Postfix) with ESMTP id 3C855BD6; Fri, 10 Jun 2022 11:26:33 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 mail.baikalelectronics.com 3C855BD6 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baikalelectronics.ru; s=mail; t=1654849593; bh=3qGTdt7z7PgMIeLrOUnz8BGjA4aE8NJd1KjGC5/ncCc=; h=From:To:CC:Subject:Date:In-Reply-To:References:From; b=KCOgRQzkZGhN41Hq8EDeHQFdkm/6XYmFTv2D9WtplV/U0jBYIBdOmnQBYhiRCvWfJ SKP8+GDUiA8R8AJsrJpgl7TWNDIKPJZjoM9RoFkGm9jgn74w9GHd09HNYHlL2aQJEP pv+Vzd6pU0NrvTiHCVVxNnPtVFG/KLLqftekaFVo= Received: from localhost (192.168.53.207) by mail (192.168.51.25) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Fri, 10 Jun 2022 11:25:40 +0300 From: Serge Semin To: Rob Herring , Bjorn Helgaas , Lorenzo Pieralisi , Jingoo Han , Gustavo Pimentel , =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , Vidya Sagar , Thierry Reding CC: Serge Semin , Serge Semin , Alexey Malahov , Pavel Parkhomenko , Frank Li , Manivannan Sadhasivam , , Subject: [PATCH v4 06/18] PCI: dwc: Enable CDM-check independently from the num_lanes value Date: Fri, 10 Jun 2022 11:25:22 +0300 Message-ID: <20220610082535.12802-7-Sergey.Semin@baikalelectronics.ru> In-Reply-To: <20220610082535.12802-1-Sergey.Semin@baikalelectronics.ru> References: <20220610082535.12802-1-Sergey.Semin@baikalelectronics.ru> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: MAIL.baikal.int (192.168.51.25) To mail (192.168.51.25) X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Currently the embedded CDM IOs consistency check-engine is enabled only if the num_lanes field of dw_pcie structure is set to non-zero value. It's definitely wrong since the CDM checking has nothing to do with the PCIe lanes settings, while that feature will be left disabled for the platforms which expect it being enabled and prefer keeping the default lanes setup. Let's fix that by enabling the CDM-check feature before the num_lanes parameter is handled. Fixes: 07f123def73e ("PCI: dwc: Add support to enable CDM register check") Signed-off-by: Serge Semin --- Changelog v4: - This is a new patch created on v4 lap of the series. --- drivers/pci/controller/dwc/pcie-designware.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/pci/controller/dwc/pcie-designware.c b/drivers/pci/controller/dwc/pcie-designware.c index 347251bf87d0..5848cc520b52 100644 --- a/drivers/pci/controller/dwc/pcie-designware.c +++ b/drivers/pci/controller/dwc/pcie-designware.c @@ -740,6 +740,13 @@ void dw_pcie_setup(struct dw_pcie *pci) val |= PORT_LINK_DLL_LINK_EN; dw_pcie_writel_dbi(pci, PCIE_PORT_LINK_CONTROL, val); + if (of_property_read_bool(np, "snps,enable-cdm-check")) { + val = dw_pcie_readl_dbi(pci, PCIE_PL_CHK_REG_CONTROL_STATUS); + val |= PCIE_PL_CHK_REG_CHK_REG_CONTINUOUS | + PCIE_PL_CHK_REG_CHK_REG_START; + dw_pcie_writel_dbi(pci, PCIE_PL_CHK_REG_CONTROL_STATUS, val); + } + of_property_read_u32(np, "num-lanes", &pci->num_lanes); if (!pci->num_lanes) { dev_dbg(pci->dev, "Using h/w default number of lanes\n"); @@ -786,11 +793,4 @@ void dw_pcie_setup(struct dw_pcie *pci) break; } dw_pcie_writel_dbi(pci, PCIE_LINK_WIDTH_SPEED_CONTROL, val); - - if (of_property_read_bool(np, "snps,enable-cdm-check")) { - val = dw_pcie_readl_dbi(pci, PCIE_PL_CHK_REG_CONTROL_STATUS); - val |= PCIE_PL_CHK_REG_CHK_REG_CONTINUOUS | - PCIE_PL_CHK_REG_CHK_REG_START; - dw_pcie_writel_dbi(pci, PCIE_PL_CHK_REG_CONTROL_STATUS, val); - } } -- 2.35.1