From nobody Fri May 20 01:10:39 2022 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id C270E1AE5BAC; Fri, 20 May 2022 01:10:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4L47vM504pz4RSn; Fri, 20 May 2022 01:10:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1653009039; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=INuOm2j2kKBHOKR6qbg5lrsOtF/FieKSdymd9j8/+Yw=; b=TaGX2fXGkZnfmROO8zI2DyFkUQy6GumDdHBnQneNlsrtLx5vjjQJ+6PHt2UNWSnYLe3Ho9 UMbGjZTADBtgyoU/oZShyAlOdkgSmukp2M44OB1vZtCYsP7+4SOjlgIPLN5RXV69138GYo H5vl4g88rxn9fLUBIZuQpEAw3N8aqq9mY4ezqDu7XRE2TZXYqc6xpvGCHwj+6lqH7/GTlY Z+9QTLzjEKqaamUZ9xeZTWNjlhlFiyG19wzWCUQDxfzT3MAGeEW0WpZLkZvdV69DPkAoP/ sHw1oxeyI3+hM7+YcdrFWhWMkRdCeXd/VkZBvqbUVq/mTU5fW0Q1oTSowc3N8g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8C09636D; Fri, 20 May 2022 01:10:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 24K1AdTV043742; Fri, 20 May 2022 01:10:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 24K1Ad3I043740; Fri, 20 May 2022 01:10:39 GMT (envelope-from git) Date: Fri, 20 May 2022 01:10:39 GMT Message-Id: <202205200110.24K1Ad3I043740@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 85eb99f9a471 - main - LinuxKPI: implement pcie_capability_set_word() List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 85eb99f9a47151f90565a1fb37395b8302c2978c Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1653009039; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=INuOm2j2kKBHOKR6qbg5lrsOtF/FieKSdymd9j8/+Yw=; b=qyJ5YBUZ44qY1QbPEKFwNP0yRRcrFL/B5iF5tiM44s96E3vh8FEEax9VSt6onnAEtNCD9+ qUPOSBM9av4ZW0YxKM+vkON/fAceAA/Gk+4ji5CGDXj7ppsja3hkcv7AbYDq5nkISZadCZ W411a9ZldeDNgNgDJEpE5tvWRDxvkimThy9SfHxBx5HXE9wcFNUFyDRaJMYSY78KiI1MLt PWKrJjsp/hwszCtJ9nKWq8OlCzUIsHXIWunZaxO7IQquaI5OIbmxZiIRzFx/1BSnMkLr8p FA+hF8KMil8aj4SQBcoJ+sCyD+tf8EpWhZCUfmsffp49p9+MC9c2TVtc20WdBg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1653009039; a=rsa-sha256; cv=none; b=SDt43vr8hO7qPWyfgXO83kKOUufhuNpvo6ZkOlPYMZ7fz/Si9MQfehZ0bEE+CKauHrr7D0 tCtzPtagCxuYm2lKHBOBvc70Q8lp1df8y2RHKAqa1wqvEhggHUu7Yj7kbOHSqKgKsEgHjx VdUF5ReCX1PbeeSAhn4SyxqRY4jGMItQJVDEISKjpWkXww4dbDnX5HpPCVoFlMMCJX4tWM HJYPagtJLa1m1leQrvEc+Mea48J1gJwIe2Qjmga/rOgbxsVKZlZIMN8Svb0/MXT7IkGl81 DFUa/3STgm5K5jPS0C14zku6A5qYhx2/L60McqkMvvt5skjxIbxtC7WB8xu1Aw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=85eb99f9a47151f90565a1fb37395b8302c2978c commit 85eb99f9a47151f90565a1fb37395b8302c2978c Author: Bjoern A. Zeeb AuthorDate: 2022-05-18 22:36:31 +0000 Commit: Bjoern A. Zeeb CommitDate: 2022-05-20 01:09:08 +0000 LinuxKPI: implement pcie_capability_set_word() Implement pcie_capability_set_word() using the already available read/write functions. Also define the completion timeout disable value to our PCI one. Both needed by a driver update. Sponsored by: The FreeBSD Foundation MFC after: 3 days Reviewed by: manu, hselasky Differential Revision: https://reviews.freebsd.org/D35250 --- sys/compat/linuxkpi/common/include/linux/pci.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/sys/compat/linuxkpi/common/include/linux/pci.h b/sys/compat/linuxkpi/common/include/linux/pci.h index 35a0f70669fb..d87cf51cf173 100644 --- a/sys/compat/linuxkpi/common/include/linux/pci.h +++ b/sys/compat/linuxkpi/common/include/linux/pci.h @@ -129,6 +129,7 @@ MODULE_PNP_INFO("U32:vendor;U32:device;V32:subvendor;V32:subdevice", \ #define PCI_EXP_DEVCAP2 PCIER_DEVICE_CAP2 /* Device Capabilities 2 */ #define PCI_EXP_DEVCTL2 PCIER_DEVICE_CTL2 /* Device Control 2 */ #define PCI_EXP_DEVCTL2_LTR_EN PCIEM_CTL2_LTR_ENABLE +#define PCI_EXP_DEVCTL2_COMP_TMOUT_DIS PCIEM_CTL2_COMP_TIMO_DISABLE #define PCI_EXP_LNKCAP2 PCIER_LINK_CAP2 /* Link Capabilities 2 */ #define PCI_EXP_LNKCTL2 PCIER_LINK_CTL2 /* Link Control 2 */ #define PCI_EXP_LNKSTA2 PCIER_LINK_STA2 /* Link Status 2 */ @@ -1141,6 +1142,22 @@ pcie_capability_write_word(struct pci_dev *dev, int pos, u16 val) return pci_write_config_word(dev, pci_pcie_cap(dev) + pos, val); } +static inline int +pcie_capability_set_word(struct pci_dev *dev, int pos, uint16_t val) +{ + int error; + uint16_t v; + + error = pcie_capability_read_word(dev, pos, &v); + if (error != 0) + return (error); + + v |= val; + + error = pcie_capability_write_word(dev, pos, v); + return (error); +} + static inline int pcie_get_minimum_link(struct pci_dev *dev, enum pci_bus_speed *speed, enum pcie_link_width *width) {