Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp3401546ybi; Mon, 17 Jun 2019 23:44:21 -0700 (PDT) X-Google-Smtp-Source: APXvYqwOPtTNmolw5n3SZ07yhEqVD+cgV9N8misjqpiT8OYI6Nps3+EJj/aQ/9j2JziUUAJOwkcQ X-Received: by 2002:a17:902:1003:: with SMTP id b3mr113688147pla.172.1560840260986; Mon, 17 Jun 2019 23:44:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1560840260; cv=none; d=google.com; s=arc-20160816; b=ZZ2xo0HEkLnDPMNDrVcayWoUSYssArC27mfmiYF72tkIvRe3KUHMbsUYF6DG5kRf+9 dz2C1SnFnvHJRwH/QynKBDovqWB+BPe4rtVO9WYWoqD0XF8+bl/wXRiaRgI0ue3uuGny LiWCOEfgAmRLXVIkN05E4Cbq+i0cujGubJ9mekuV+dqtfSIqJ180imxHJyg77hI0AEjo dbi5jSNi6ilcAsRx+xcxRepzVzo0WVFutul+2sORvwaa1XshJcQYm6DBpqbsPMSFmboc 4UbiBjCWa0mGf6kpMQkEhMNpYuDCsS6UXh1xu0qwoD8pnd9wCkZNmYz8gDkSeGc9ljMN w3ew== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=AwdujDdMY1xkfO2MFtISLAJ7c2q8GQgPX1OyMyL8iRQ=; b=RVckHr4nfjX30ZFhwKWLR/v6FxGTZMbUk7outn01vvKL+QAoWjRKZzrDuys9m4VXvW VU/ldn8ShuPXmDJfNNijhtRAFiiOYW0qn6y1Yd6yHowTJoIPGHtWtdZWESgR9OI4hKyI HVWUpv/8d8TPT3+QdxzVQWpeCUTarKoK1IYRR2pEuAi5dSWfqEk6R1eD6SfD6i2sSAS8 QPFgSXTsTF6x5+xE9h6TAVze5aJVuFmmNq55KQBLiOEfykGJHYhFF5L7ORl8AvCZXB63 mVvBzL04kv6OivHngc3KbfEJ02XJu8yPvwGw/2mjxfW+n956GZ12zyQiKsB6sTeYGiip ISaA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=gc2T8mZd; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 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. [209.132.180.67]) by mx.google.com with ESMTP id x1si11775734pgr.561.2019.06.17.23.44.05; Mon, 17 Jun 2019 23:44:20 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=gc2T8mZd; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 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 S1728529AbfFRGmm (ORCPT + 99 others); Tue, 18 Jun 2019 02:42:42 -0400 Received: from mail-pg1-f193.google.com ([209.85.215.193]:41186 "EHLO mail-pg1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726640AbfFRGmd (ORCPT ); Tue, 18 Jun 2019 02:42:33 -0400 Received: by mail-pg1-f193.google.com with SMTP id 83so7110497pgg.8; Mon, 17 Jun 2019 23:42:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:thread-topic:thread-index:date:message-id :references:in-reply-to:accept-language:content-language :content-transfer-encoding:mime-version; bh=AwdujDdMY1xkfO2MFtISLAJ7c2q8GQgPX1OyMyL8iRQ=; b=gc2T8mZda1iOBIUmBR+zjgUg7PzAigxme6RC6t0LcJNLaNAGfWI8VT0+Hl16YajImI dt8LgXYjCOCR5b+h3pZ0JCkE2PdcwIhrIfXcm4fNt4PhNwdMwPlVL18i8VJpHnqjRblO 7Z5Yjbyk/4A8NUfguEKdBgIeWYbcSE6+pMxYQszys+hq8z6wtL/7bMF1s5n0ZJKRU8c6 deHly0PG/anOfsaEeErCt2F8+ui2INpvBvCFodzBg78FPYttPGrATfvLeXcMzTdZvNK3 5ZQ3OEpWMwqP1ZYHv077vlJ8LaPXwWZDbW/QlKKRPhTpg0ZMXXhImyw8m8M1Ltlox0xa /Ldw== 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:thread-topic:thread-index :date:message-id:references:in-reply-to:accept-language :content-language:content-transfer-encoding:mime-version; bh=AwdujDdMY1xkfO2MFtISLAJ7c2q8GQgPX1OyMyL8iRQ=; b=is1cRqJPXhAaP71bRPI9ANiQI5+gLAQfjP9R+ufbdQV26D2boA0cmBZ9pypkAFP/Cq VNb8Betj0+fQWk2qNVWyvZFL2uu03l9zawSrRKCVZbgC7ovj7AyMogLyeMAbwQhKd/JI hlbaFmar8RgK4nm2ca1+iBOnRcEA4VtfQDC7rQWkYoKDaA1/EaPb24PtguYct7wThSyF 1PphLpi7MhMMRRr5AJUqSA6/7GT28QxuFX8qNtPPK9foeAtlBmz9IhT2GlJhFG5ZIrQq 4ZR2wDqqbIeVv0TZEvzG5ICZpNGhz54/vfmcgST+EHjezGH1sxInjFrDUsSlz1gKIzIM 0fXg== X-Gm-Message-State: APjAAAW7QpWASIRYicoPG/1fsL/IjiIghH8YYIEhpA+2CKve0vKdyEVk 0QmmCYS1mBwnYOAwNwaNXnk= X-Received: by 2002:a17:90a:ca0f:: with SMTP id x15mr218820pjt.82.1560839660866; Mon, 17 Jun 2019 23:34:20 -0700 (PDT) Received: from PSXP216MB0662.KORP216.PROD.OUTLOOK.COM ([40.100.44.181]) by smtp.gmail.com with ESMTPSA id y1sm1204874pjw.5.2019.06.17.23.34.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 17 Jun 2019 23:34:19 -0700 (PDT) From: Jingoo Han To: Vidya Sagar , "lorenzo.pieralisi@arm.com" , "bhelgaas@google.com" , "robh+dt@kernel.org" , "mark.rutland@arm.com" , "thierry.reding@gmail.com" , "jonathanh@nvidia.com" , "kishon@ti.com" , "catalin.marinas@arm.com" , "will.deacon@arm.com" , "gustavo.pimentel@synopsys.com" CC: "digetx@gmail.com" , "mperttunen@nvidia.com" , "linux-pci@vger.kernel.org" , "devicetree@vger.kernel.org" , "linux-tegra@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , "kthota@nvidia.com" , "mmaddireddy@nvidia.com" , "sagar.tv@gmail.com" , Han Jingoo Subject: Re: [PATCH V10 03/15] PCI: dwc: Perform dbi regs write lock towards the end Thread-Topic: [PATCH V10 03/15] PCI: dwc: Perform dbi regs write lock towards the end Thread-Index: AQHVJZgV1RcRQMIdqU6FIMIehEk3Laag9HhB X-MS-Exchange-MessageSentRepresentingType: 1 Date: Tue, 18 Jun 2019 06:34:12 +0000 Message-ID: References: <20190612095339.20118-1-vidyas@nvidia.com> <20190612095339.20118-4-vidyas@nvidia.com> In-Reply-To: <20190612095339.20118-4-vidyas@nvidia.com> Accept-Language: ko-KR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-Exchange-Organization-SCL: -1 X-MS-TNEF-Correlator: X-MS-Exchange-Organization-RecordReviewCfmType: 0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 6/12/19, 6:54 PM, Vidya Sagar wrote: > > Remove multiple write enable and disable sequences of dbi registers as > Tegra194 implements writes to BAR-0 register (offset: 0x10) controlled by > DBI write-lock enable bit thereby not allowing any further writes to BAR-= 0 > register in config space to take place. Hence enabling write permission a= t > the start of function and disabling the same only towards the end. > > Signed-off-by: Vidya Sagar > Reviewed-by: Thierry Reding Acked-by: Jingoo Han Sorry for being late. I read the previous threads. I don't think that this = patch has any harmful effects. This patch looks good to me. Thank you. Best regards, Jingoo Han > --- > Changes since [v9]: > * None > > Changes since [v8]: > * None > > Changes since [v7]: > * None > > Changes since [v6]: > * None > > Changes since [v5]: > * Moved write enable to the beginning of the API and write disable to the= end > > Changes since [v4]: > * None > > Changes since [v3]: > * None > > Changes since [v2]: > * None > > Changes since [v1]: > * None > > drivers/pci/controller/dwc/pcie-designware-host.c | 14 ++++++++------ > 1 file changed, 8 insertions(+), 6 deletions(-) > > diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/= pci/controller/dwc/pcie-designware-host.c > index f93252d0da5b..d3156446ff27 100644 > --- a/drivers/pci/controller/dwc/pcie-designware-host.c > +++ b/drivers/pci/controller/dwc/pcie-designware-host.c > @@ -628,6 +628,12 @@ void dw_pcie_setup_rc(struct pcie_port *pp) > u32 val, ctrl, num_ctrls; > struct dw_pcie *pci =3D to_dw_pcie_from_pp(pp); > =20 > + /* > + * Enable DBI read-only registers for writing/updating configuration. > + * Write permission gets disabled towards the end of this function. > + */ > + dw_pcie_dbi_ro_wr_en(pci); > + > dw_pcie_setup(pci); > =20 > if (!pp->ops->msi_host_init) { > @@ -650,12 +656,10 @@ void dw_pcie_setup_rc(struct pcie_port *pp) > dw_pcie_writel_dbi(pci, PCI_BASE_ADDRESS_1, 0x00000000); > =20 > /* Setup interrupt pins */ > - dw_pcie_dbi_ro_wr_en(pci); > val =3D dw_pcie_readl_dbi(pci, PCI_INTERRUPT_LINE); > val &=3D 0xffff00ff; > val |=3D 0x00000100; > dw_pcie_writel_dbi(pci, PCI_INTERRUPT_LINE, val); > - dw_pcie_dbi_ro_wr_dis(pci); > =20 > /* Setup bus numbers */ > val =3D dw_pcie_readl_dbi(pci, PCI_PRIMARY_BUS); > @@ -687,15 +691,13 @@ void dw_pcie_setup_rc(struct pcie_port *pp) > =20 > dw_pcie_wr_own_conf(pp, PCI_BASE_ADDRESS_0, 4, 0); > =20 > - /* Enable write permission for the DBI read-only register */ > - dw_pcie_dbi_ro_wr_en(pci); > /* Program correct class for RC */ > dw_pcie_wr_own_conf(pp, PCI_CLASS_DEVICE, 2, PCI_CLASS_BRIDGE_PCI); > - /* Better disable write permission right after the update */ > - dw_pcie_dbi_ro_wr_dis(pci); > =20 > dw_pcie_rd_own_conf(pp, PCIE_LINK_WIDTH_SPEED_CONTROL, 4, &val); > val |=3D PORT_LOGIC_SPEED_CHANGE; > dw_pcie_wr_own_conf(pp, PCIE_LINK_WIDTH_SPEED_CONTROL, 4, val); > + > + dw_pcie_dbi_ro_wr_dis(pci); > } > EXPORT_SYMBOL_GPL(dw_pcie_setup_rc); > --=20 > 2.17.1