From patchwork Wed Aug 16 04:56:56 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Z.Q. Hou" X-Patchwork-Id: 9903007 X-Patchwork-Delegate: bhelgaas@google.com 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 AEC4E603B5 for ; Wed, 16 Aug 2017 05:14:49 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A36D4288B3 for ; Wed, 16 Aug 2017 05:14:49 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9863228862; Wed, 16 Aug 2017 05:14:49 +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=-6.9 required=2.0 tests=BAYES_00,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7C12B2890F for ; Wed, 16 Aug 2017 05:14:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751068AbdHPFOP (ORCPT ); Wed, 16 Aug 2017 01:14:15 -0400 Received: from mail-sn1nam02on0040.outbound.protection.outlook.com ([104.47.36.40]:22073 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750904AbdHPFOP (ORCPT ); Wed, 16 Aug 2017 01:14:15 -0400 Received: from MWHPR03CA0005.namprd03.prod.outlook.com (10.175.133.143) by CY4PR03MB3320.namprd03.prod.outlook.com (10.171.247.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1341.21; Wed, 16 Aug 2017 05:14:13 +0000 Received: from BL2FFO11FD021.protection.gbl (2a01:111:f400:7c09::154) by MWHPR03CA0005.outlook.office365.com (2603:10b6:300:117::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1341.21 via Frontend Transport; Wed, 16 Aug 2017 05:14:13 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BL2FFO11FD021.mail.protection.outlook.com (10.173.161.100) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1304.16 via Frontend Transport; Wed, 16 Aug 2017 05:14:12 +0000 Received: from titan.ap.freescale.net ([10.192.208.233]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v7G5DiU5012144; Tue, 15 Aug 2017 22:14:09 -0700 From: Zhiqiang Hou To: , , , CC: , , , , , , Hou Zhiqiang Subject: [PATCHv3 6/9] PCI: designware: add accessors for write permission of DBI read-only registers Date: Wed, 16 Aug 2017 12:56:56 +0800 Message-ID: <1502859419-33696-7-git-send-email-Zhiqiang.Hou@nxp.com> X-Mailer: git-send-email 2.1.0.27.g96db324 In-Reply-To: <1502859419-33696-1-git-send-email-Zhiqiang.Hou@nxp.com> References: <1502859419-33696-1-git-send-email-Zhiqiang.Hou@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131473340531303462; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(336005)(39380400002)(39860400002)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(8936002)(50226002)(50986999)(5003940100001)(2950100002)(39060400002)(8676002)(54906002)(6666003)(68736007)(81166006)(97736004)(81156014)(76176999)(36756003)(2201001)(53936002)(77096006)(85426001)(86362001)(50466002)(498600001)(105606002)(72206003)(106466001)(104016004)(48376002)(8656003)(626005)(47776003)(2906002)(189998001)(4326008)(356003)(7416002)(5660300001)(305945005)(2101003); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR03MB3320; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BL2FFO11FD021; 1:MgBSIqaEAWBoywRw8e1sfnO1L+nafNP0gocvvD9LU3?= =?us-ascii?Q?WjhZM1zKiF3OMg5qXHWA7NA/kHlAWddDNv7k86xpnYOOBbOj3z9iObmFTsgE?= =?us-ascii?Q?D9huP7zU8VBk4FG7GsmZuAkXXhz2VWrx/ypUnypV+g5dZ1pvdydCbyn39us6?= =?us-ascii?Q?7De+ArRbQxggghcHg9w3Mp4mxrDSGzaCP2hCpFxVQULYGCfGb8QlvkD44eVK?= =?us-ascii?Q?NKdxOYoy9HKCwU8oREo5HRYbNjJzYxBEyyfhh7mI/xavmRvf2OWfDB5yARlh?= =?us-ascii?Q?rT0ndhoVz7/7wc7qq8urdKgZVKFEaIZkZ8iR3cQlpRetccu8SxZeUTdybDHe?= =?us-ascii?Q?5+HapwlHVdaZ+5R88Ui+Xpz06R9K7aKfFrJ4POW5fW5Md1kTvAFv1VzK8h4M?= =?us-ascii?Q?lcd/1DM9BTZqz3od0hDwwFhzzqDzK6Rc9CK/5ZZShDeITEZQHKUqYV0IqFOY?= =?us-ascii?Q?LOvNcwwiHc4Xxncs92pjI6enM0k5Ajly/M/3ITQC/ew0IiB40Rv3ylJHtuwg?= =?us-ascii?Q?A4j344KA2LXXzfDYUmo34nw2S4Ux2ycHTrpQcoDWb6p4YiMx9I2DsHsrRNlc?= =?us-ascii?Q?U6Qvg5bYq+Kx+c7I7yEEeEXT0e/1SJFLUI6+CFoXh9uDcPKT9CtmNDAMCuGx?= =?us-ascii?Q?d/txVhZHpnQdfLkWIrRmWCDcWuA0S7l9HYHNud/k0Dw1vP2nL1MVTWRwlMNE?= =?us-ascii?Q?xbTyaK1vRV0X9qgbX8tf9RI530285ATocXAzqlQ/zV/uH7wJAJ2rJf5sIpwP?= =?us-ascii?Q?QCFPv+m+OUHifJjOQ6dejmmMOrWGNJpsSFrTF8GioAhwcbZbXopJmxM2ZQKc?= =?us-ascii?Q?sEajxbihf3PqjNf6tDUCbDwW5FO+Q4nzlHbckrxCVJx4dXiA2yetNFTO6xan?= =?us-ascii?Q?vmZ9Qnj5Yw9LFsAS0I7CwZlCdlm6DwOASKccZfjtm1/tBkngmBgrkh+PLEvD?= =?us-ascii?Q?YTQNy81CunKdrT2Gthle3qGuxw96qSy1rECYhfFw=3D=3D?= MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e50cb75c-fe4b-47f8-f7c6-08d4e465a22e X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(2017052603031)(201703131430075)(201703131517081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:CY4PR03MB3320; X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB3320; 3:+vYvHhE3GR4hbgnzee7FBkJX9zAQitIficCo+xRw3JI0jdPMJ8zSIqECIPY6q2A4aD80ZHFQcPi2rC9raaeWTc8u41r/MgrYuyDLVvMF7qDUTyqnXrI5kHE8AP/VHmIXjS0kXrNSP6aYgeiySLddv6PLYt3HLBD76YatmOlCUVuAU9PnRk0FJ+AAxgSeGlzMODOYv1x4g19XNBrS/akUgqTitUaiywhv+9Ohd4LtudQQY8FsabFO+1bICIxJiimpNzfxyAS+6lOb/GI5xn9SI37cLOKTnrtdgzuwujLeWC7VtcsxFCf/02BgOZOm94fuBx7UM8MM0w6A5wzKCb45c57OhJ21bjskzzrB5+ezNkQ=; 25:wr6o2jTy+0zaoWKD70D1xTG5EU972Erup6xitXjPSWJ2H86BXb+cTPxdIWKg+kagYqWEgTJ80DR9Epwe8pUhJPzLIxF+hiXdce7KkXQeq1st+A1oQbYeTYzhvITnUFeK5WaTvAc9FHwTd2IsKmGvPM2BeP44PnyVwF3FW/qeUVWsUPY4FmmQSuJ0W7rlkqhY42EKzUEV4wFO1vdthbLifeIEO50M8Yw63BsRP7Ik5HOBaS2FYY5Q+fVCXJCrj/ZUVgCbCyficDs6HgN9TddldNeXAqvJ8m3YAKPasxePYBMdqafZXTIlej3zey71cgxkBLvIHL4QGvsuOFgB2sdURA== X-MS-TrafficTypeDiagnostic: CY4PR03MB3320: X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB3320; 31:iMoKyWQw2S+EJQk6b52icV32J9irC924ZJuIN1rpfOgBNuwOIjD4NASAKTCGsZE35vjQxbsiCPEJFbfqA/YK1UgwJcUTfQL5oYmgKL3PwTiBreR4Wjfk4znJ4JZFhvudnC+m383hWNXwfc01sVVucG4AWVy4N6Rau4Wyh04HDvUOdAgeI7HK4V79W6zubEJXQa4mVzJIOLG3o3D0LK5OKdgW93kzliYkxhJgGvKesbE=; 4:Z1X6D98RkcWPe3iBHo8F5z34pgtCxw6nld48RWjqxC6xX52QjJb/mPQnIxh6lKBYvfjcWHeudJm5sbfrtsNPWjTJr7yE441NJvmkthPkU9LjADCTZS490u8ugObwbIEOyf/TpApWlEg5uLpXDTTE9xIHIDHLKziIXWdhBy+u0CtFaYQag87LtzERgL7Y+4DzI2jOrGdvtv/8KqMXv1MG910V6Wq7Ia8aOQ6r2yRTuimii2eUn7iydlkmZySUE0gptyeh+/DbZSrPPU4UeExSV7FPAMO1Eq3b3WasVJki7Cw= X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(601004)(2401047)(8121501046)(13016025)(5005006)(13018025)(3002001)(10201501046)(93006095)(93001095)(100000703101)(100105400095)(6055026)(6096035)(20161123565025)(20161123556025)(201703131430075)(201703131433075)(201703131441075)(201703131448075)(201703161259150)(20161123559100)(20161123563025)(20161123561025)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY4PR03MB3320; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY4PR03MB3320; X-Forefront-PRVS: 0401647B7F X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR03MB3320; 23:tY+hJnS0s2p+gGpf7k4n3fg3Hh+/QHf15quuN8cOF?= =?us-ascii?Q?hQ5K2wQb8teORIgkRKZBd83DQpYwmx2cJ/7eJJIJX5CV2hIXIUwYlhoT8I1J?= =?us-ascii?Q?QvhWYvErscww+587YNTFf5QJ41+eZBnajjAMk9fSkf98K3EDaBVnUpTI68SO?= =?us-ascii?Q?j1Rl+lY7THT5KKBDYxI85ozDVMMXDUPhZrxpHGXV8rg4k+4h0qH0UlBiWkrv?= =?us-ascii?Q?SrPWfyygjUJeqe75+zJbv08VX4aVYhjjdL/C1Rqrb6KWjkOAs2ErCe1fYHIi?= =?us-ascii?Q?F8KmSE0Cw97/1ZOYkRIM6afGvXqj5uDNOODPOx+Kmx+zzR2Nx+/hf8/HSbE+?= =?us-ascii?Q?Wkloj8erHQUwIccsaPUytH3L3Z0tPEbT7dLdaAQmu3yruXwELhYqZtRVYnDU?= =?us-ascii?Q?q+j//lHcbMu5r2PHtQZQEsu7UgeU3Qv7eojQgqwgmzAsBiSjeFPRr8JXifEi?= =?us-ascii?Q?mDFKuqEtb0F/Ij8gKHiH4xMEyaXJwH97dNIo24Yh42pOq40JOOV4VfrgV5ET?= =?us-ascii?Q?4XpW7kgQH86tYqavj32pxNV7qlS5y++wivAhO9zcBib71BrwHNnr2DDVz8uF?= =?us-ascii?Q?31PRD0PNHzCPAXnptQ2+9mhK0DsIHmUBR1z0nQoQQ6RdfQy9Jt/kTzh7kPM2?= =?us-ascii?Q?EG/8LzzMUS7gxyP3koj9RTEsB4ZB8UIq+erBUnQuERBS+d2LWpghnqtD0Uj+?= =?us-ascii?Q?8ahitaESoBzyO2ARG6z2DC/QnaM8xJHgl4FRwuO3fjJwTFf8TrTmivm6NmXO?= =?us-ascii?Q?bFeR7F+1iTFLOu29Vbdd+KFe75RQMzj1VZ893XKK/Z8RTforSV+eJ6AoWwN8?= =?us-ascii?Q?owqN9raG9vKWa5P2RkEBj2KhO93GJWld/BlHdksXMcMy4tHGnK3V/5kvYUbv?= =?us-ascii?Q?WANmeO/L74rxhPu4XQpPerzgfLotM07Skr04jN7yXrQxJqtX7aeuFKZelRLN?= =?us-ascii?Q?bWAX1YZ7xH0W6FKGQl1aR2QIbS9tVr2/uv0V9/ts1RI41Y5o3ioxw/8KSwZs?= =?us-ascii?Q?n8ctlxjdsNIUyQaiDu8xLbs01fdIAcspMKWTP56tI9ZFlBn2sk6mCBtM7WNt?= =?us-ascii?Q?04xmr04Py9PT85LxJO7oqbX/P6s9q2QroK4KzSrczdoBU57TBmrG9ns6mXbg?= =?us-ascii?Q?8W3Sfiep3kZyC39u+KKzWVJNNfFjInYsrFou2teyG5C/oZgqTQ70w=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB3320; 6:wNGyjmL/VhOcUxiH5PCIPeBFG4wlp1rNTNMhIFIviyTK8vNKixJGqUokCEJokkLiA6+hY0I4od27xc9KZKLi9DLU1IPMhPW/OJRkvgU/fo80PR64LtxEBA25MOf5Pq12BBfXD/pgNc5OFDtGCnDAVfAMtYDZ8gBZasBR3MwD0VAzoWBeQRK9tZ57436+MqQyAOFASlAb/+J3adkqLHvTil0GemZOH4lWDmR/HvtmdL2+S8E0IQ8HYMvQmJzht6Di20oCo0pu8IT/q9QMF8gNf0uRLDjLVxj99f5oIZH9DCFzYwTt3cJsAd25iixFy0UdaqiW1JQNqtO1OEQyFbXy4w==; 5:9D9NqdEXGbYJ399tB84YkpMgBuXOfrOxuyvRGt5asUTqE7fCJsmZIB0RRuX2qYMmY7ujB3HIRzx3d0wBYXkTd4pn5oTP8EB+mYJCoQETPBwJLjrpHpBYQdKLK4PT4Sie5GkwxjpGQL51+//LixWMUg==; 24:WXs+zD7e4T68UnB2Y7Exy/7aR80LUYz51rQ9ZTSlo3UG7LG6M4svQqkyogimCOWUVf/XIC0qpxKXjgtgii6fqnws7sFJywi9lCqhccPxpTg=; 7:lT+2aVv1KULc/3cyg0Rjb5PIFuhMq9jjdhb39ceZhkv1DPvVHpDL+6Kb4PV+4o/uV0oplc5sBXTY+FVWykKRbks7JYJkmpDdoxBEvuoRG5UjrRi62OU8PK5RgCQnXYom0TOV9/jlgwbjKuXR7Bo84O/qyJ/T4GakwxlpmEechqQxAFMm01G17ApY3MIB9+EqJiVJtITgXvFbh17qdYh0xn8rGCNGwW+NAebWqv/SLOw= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Aug 2017 05:14:12.8183 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR03MB3320 Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Hou Zhiqiang The read-only DBI registers can be written over the DBI when set the "Write to RO Registers Using DBI" (DBI_RO_WR_EN) field of the MISC_CONTROL_1_OFF register. Signed-off-by: Hou Zhiqiang --- V3: - No change drivers/pci/dwc/pcie-designware.h | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/drivers/pci/dwc/pcie-designware.h b/drivers/pci/dwc/pcie-designware.h index 7366c81..0c5f874 100644 --- a/drivers/pci/dwc/pcie-designware.h +++ b/drivers/pci/dwc/pcie-designware.h @@ -76,6 +76,9 @@ #define PCIE_ATU_FUNC(x) (((x) & 0x7) << 16) #define PCIE_ATU_UPPER_TARGET 0x91C +#define PCIE_MISC_CONTROL_1_OFF 0x8BC +#define PCIE_DBI_RO_WR_EN (0x1 << 0) + /* * iATU Unroll-specific register definitions * From 4.80 core version the address translation will be made by unroll @@ -279,6 +282,28 @@ static inline u32 dw_pcie_readl_dbi2(struct dw_pcie *pci, u32 reg) return __dw_pcie_read_dbi(pci, pci->dbi_base2, reg, 0x4); } +static inline void dw_pcie_dbi_ro_wr_en(struct dw_pcie *pci) +{ + u32 reg; + u32 val; + + reg = PCIE_MISC_CONTROL_1_OFF; + val = dw_pcie_readl_dbi(pci, reg); + val |= PCIE_DBI_RO_WR_EN; + dw_pcie_writel_dbi(pci, reg, val); +} + +static inline void dw_pcie_dbi_ro_wr_dis(struct dw_pcie *pci) +{ + u32 reg; + u32 val; + + reg = PCIE_MISC_CONTROL_1_OFF; + val = dw_pcie_readl_dbi(pci, reg); + val &= ~PCIE_DBI_RO_WR_EN; + dw_pcie_writel_dbi(pci, reg, val); +} + #ifdef CONFIG_PCIE_DW_HOST irqreturn_t dw_handle_msi_irq(struct pcie_port *pp); void dw_pcie_msi_init(struct pcie_port *pp);