Received: by 2002:a25:868d:0:0:0:0:0 with SMTP id z13csp806876ybk; Wed, 13 May 2020 13:41:20 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyo4Pqbg+2L1lFNiNcbaUM+nsg+D3gEYiyWCqSO4D/MklvD+OpqR6FALw78JqGaWJG1G4DK X-Received: by 2002:aa7:c306:: with SMTP id l6mr1375001edq.356.1589402479917; Wed, 13 May 2020 13:41:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1589402479; cv=none; d=google.com; s=arc-20160816; b=GFWhx0yne07AivmU02uwD5XFoHqlyQclyYJSiCioeHU5VKlNvmoi0eu8xjX724U9r8 6IB3g76FKBofBRac3oDMrz65guOmnxD0IbRdxHNxp/HdDELIv0gwrQAhd5n52TD+hntR FGgEmkiC7z86Eu3Rq3JUnUuDy/ZdOpKba5HSWr6kiBsq1yUrBfuE56320HfKmrZYmxr3 xST6yHzZRezUOFAul54EVuDmqqPy68MB+l/vjn9KeswZo4xIlMdMidrB2n9ufwr0kaGQ zPABV56iBb0VdhIQJygbzEAZNUwDMJf+JHoGpaX5/GtlH7JKMXGTWMSvDoNMgLqHDQiG tMIg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:thread-index:content-language :content-transfer-encoding:mime-version:message-id:date:subject :in-reply-to:references:cc:to:from:dkim-signature; bh=gjKKMxa6xHI1LOhBmFUHbDk1I1ew8jSwGc3Qoec8V+Q=; b=bSPiHl0XlcpnCn6IqVxccYjtAT2bddR/e9aD+A+06OLNApgBCLW2+HUPcmVvy1R+cd i3Ff5OKGi7xmuhIgSX0xEhpVuyszCUeP4Ah3wwewmJyjd5+RHtPmBqNbakSCfF5haJTP WWmQqet6hJBj1Q8XBZo+AXOFb9F02sf99/0wi/Cl2roCiSzTESC78RZRRvTmjiJ61i5p Je/dTayYT9+iW4dBw3VCegpu2SyCyHWbQQt7XjIs4IM/y1U2fscRjHBbj5XCdEzAYfW5 77DJaRTLp7QNHlv/ki0o9boSQE6jMlr9EdIgLufRzZGH47c15W3gUIFcw5+pLego+IYx JZtQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=UBNz8U1A; 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=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id qo7si509148ejb.458.2020.05.13.13.40.57; Wed, 13 May 2020 13:41:19 -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=@gmail.com header.s=20161025 header.b=UBNz8U1A; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732799AbgEMMyt (ORCPT + 99 others); Wed, 13 May 2020 08:54:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49916 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728313AbgEMMyt (ORCPT ); Wed, 13 May 2020 08:54:49 -0400 Received: from mail-wr1-x441.google.com (mail-wr1-x441.google.com [IPv6:2a00:1450:4864:20::441]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 125F8C061A0C; Wed, 13 May 2020 05:54:48 -0700 (PDT) Received: by mail-wr1-x441.google.com with SMTP id v12so20716613wrp.12; Wed, 13 May 2020 05:54:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:references:in-reply-to:subject:date:message-id :mime-version:content-transfer-encoding:content-language :thread-index; bh=gjKKMxa6xHI1LOhBmFUHbDk1I1ew8jSwGc3Qoec8V+Q=; b=UBNz8U1As5Vt7c5ZDDS1AoaWSmwZKNX6frEeTvbyV71E0BCKVyd2TEF4KA3888hxpS l6mSMgwqDLXr2mFZR7GpBZr0Wkrtw6gCHanK5TOuUuI9qa8Ndv7P98jrySSmVln7LFwJ +O+V5roxN+jRG60EAHChKxZGgr+s0YC4RCi9K2hDcnPf6CY/Zl62PyWvc1hyXzHLarKh PoFqjzdCzb2/0MKKPDcLAAxyZR+gLiRn0CtPGr+Mdp5jZL480s1myIvtg8taa26ANgHg WGPXa6jNEpWIBQ8WY2LjglX2XDGGDBUaRL62Xj13Uj9hmBT2SFyFuzXH2CMMqHjkY3Kq XBBQ== 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:references:in-reply-to:subject:date :message-id:mime-version:content-transfer-encoding:content-language :thread-index; bh=gjKKMxa6xHI1LOhBmFUHbDk1I1ew8jSwGc3Qoec8V+Q=; b=DXw+PWej1TzOXWEezifwXEwSVSx5cq6P8BrJejMmDCdruGxTIDIlYC9KSlLikZ3kkA jZKPCydIgRfjIdw0XQe3XnLi9Brbf/bZ1l9OG6sAmTnojNCVkgClzq1hIRz+MoJkUQ4P HzdUhtLDgHBNc8AlTJpJtNL+w2RQOofAEYHH8ZowRCsedE2tM80+VmjA2Gwn86/6qmla 6w3iXEXR5+CLWkVktqmR9bI60laQ6xy/xr628ky8UKuY1Y8Maoge4l8lvEWXQjbTEpge lnuBNQtEHotnEtDWFHIvKDWMUslZQcE+K1WRFP2TDvWbYfFEeShoe8plgaHhrFH8hhQD j/Zw== X-Gm-Message-State: AGi0PuajDTnPgnUc7IbEFfUrC3W1hrGGDyPTIAQwvipArOMeitpZCVlR fxhWOWh5SQi5XtqGCLGKPo4= X-Received: by 2002:a5d:4806:: with SMTP id l6mr31495243wrq.121.1589374486610; Wed, 13 May 2020 05:54:46 -0700 (PDT) Received: from AnsuelXPS (host122-89-dynamic.247-95-r.retail.telecomitalia.it. [95.247.89.122]) by smtp.gmail.com with ESMTPSA id s11sm36459960wms.5.2020.05.13.05.54.44 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 13 May 2020 05:54:45 -0700 (PDT) From: To: "'Stanimir Varbanov'" , "'Bjorn Andersson'" Cc: "'Sham Muthayyan'" , "'Andy Gross'" , "'Bjorn Helgaas'" , "'Rob Herring'" , "'Mark Rutland'" , "'Lorenzo Pieralisi'" , "'Andrew Murray'" , "'Philipp Zabel'" , , , , References: <20200430220619.3169-1-ansuelsmth@gmail.com> <20200430220619.3169-10-ansuelsmth@gmail.com> <3dc89ec6-d550-9402-1a4a-ca0c6f1e1fb9@mm-sol.com> In-Reply-To: <3dc89ec6-d550-9402-1a4a-ca0c6f1e1fb9@mm-sol.com> Subject: R: [PATCH v3 09/11] PCI: qcom: add ipq8064 rev2 variant and set tx term offset Date: Wed, 13 May 2020 14:54:41 +0200 Message-ID: <02df01d62925$acd160a0$067421e0$@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Outlook 16.0 Content-Language: it Thread-Index: AQH0plL6ngkayUAAEEU7BifA9vEwhgKDdr3rAu/CbUKoPWRmMA== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > Hi Ansuel, > > On 5/1/20 1:06 AM, Ansuel Smith wrote: > > From: Sham Muthayyan > > > > Add tx term offset support to pcie qcom driver need in some revision of > > the ipq806x SoC. > > Ipq8064 have tx term offset set to 7. > > Ipq8064-v2 revision and ipq8065 have the tx term offset set to 0. > > > > Signed-off-by: Sham Muthayyan > > Signed-off-by: Ansuel Smith > > --- > > drivers/pci/controller/dwc/pcie-qcom.c | 15 +++++++++++++++ > > 1 file changed, 15 insertions(+) > > > > diff --git a/drivers/pci/controller/dwc/pcie-qcom.c > b/drivers/pci/controller/dwc/pcie-qcom.c > > index da8058fd1925..372d2c8508b5 100644 > > --- a/drivers/pci/controller/dwc/pcie-qcom.c > > +++ b/drivers/pci/controller/dwc/pcie-qcom.c > > @@ -45,6 +45,9 @@ > > #define PCIE_CAP_CPL_TIMEOUT_DISABLE 0x10 > > > > #define PCIE20_PARF_PHY_CTRL 0x40 > > +#define PHY_CTRL_PHY_TX0_TERM_OFFSET_MASK GENMASK(12, > 16) > > The mask definition is not correct. Should be GENMASK(20, 16) > > > +#define PHY_CTRL_PHY_TX0_TERM_OFFSET(x) ((x) << 16) > > + > > #define PCIE20_PARF_PHY_REFCLK 0x4C > > #define PHY_REFCLK_SSP_EN BIT(16) > > #define PHY_REFCLK_USE_PAD BIT(12) > > @@ -118,6 +121,7 @@ struct qcom_pcie_resources_2_1_0 { > > u32 tx_swing_full; > > u32 tx_swing_low; > > u32 rx0_eq; > > + u8 phy_tx0_term_offset; > > }; > > > > struct qcom_pcie_resources_1_0_0 { > > @@ -318,6 +322,11 @@ static int > qcom_pcie_get_resources_2_1_0(struct qcom_pcie *pcie) > > if (IS_ERR(res->ext_reset)) > > return PTR_ERR(res->ext_reset); > > > > + if (of_device_is_compatible(dev->of_node, "qcom,pcie-ipq8064")) > > + res->phy_tx0_term_offset = 7; > > Before your change the phy_tx0_term_offser was 0 for apq8064, but here > you change it to 7, why? > apq8064 board should use qcom,pcie-apq8064 right? This should be set to 0 only with pcie-ipq8064 compatible. Tell me if I'm wrong. > > + else > > + res->phy_tx0_term_offset = 0; > > + > > res->phy_reset = devm_reset_control_get_exclusive(dev, "phy"); > > return PTR_ERR_OR_ZERO(res->phy_reset); > > } > > @@ -402,6 +411,11 @@ static int qcom_pcie_init_2_1_0(struct > qcom_pcie *pcie) > > /* enable PCIe clocks and resets */ > > qcom_clear_and_set_dword(pcie->parf + PCIE20_PARF_PHY_CTRL, > BIT(0), 0); > > > > + /* set TX termination offset */ > > + qcom_clear_and_set_dword(pcie->parf + PCIE20_PARF_PHY_CTRL, > > + PHY_CTRL_PHY_TX0_TERM_OFFSET_MASK, > > As the mask definition is incorrect you actually clear 12 to 16 bit in > the register where is another PHY parameter. Is that was intentional? > Will check this and the wrong genmask. > > + PHY_CTRL_PHY_TX0_TERM_OFFSET(res- > >phy_tx0_term_offset)); > > + > > writel(PCS_DEEMPH_TX_DEEMPH_GEN1(res->tx_deemph_gen1) | > > PCS_DEEMPH_TX_DEEMPH_GEN2_3_5DB(res- > >tx_deemph_gen2_3p5db) | > > PCS_DEEMPH_TX_DEEMPH_GEN2_6DB(res- > >tx_deemph_gen2_6db), > > @@ -1485,6 +1499,7 @@ static int qcom_pcie_probe(struct > platform_device *pdev) > > static const struct of_device_id qcom_pcie_match[] = { > > { .compatible = "qcom,pcie-apq8084", .data = &ops_1_0_0 }, > > { .compatible = "qcom,pcie-ipq8064", .data = &ops_2_1_0 }, > > + { .compatible = "qcom,pcie-ipq8064-v2", .data = &ops_2_1_0 }, > > { .compatible = "qcom,pcie-apq8064", .data = &ops_2_1_0 }, > > { .compatible = "qcom,pcie-msm8996", .data = &ops_2_3_2 }, > > { .compatible = "qcom,pcie-ipq8074", .data = &ops_2_3_3 }, > > > > -- > regards, > Stan