From nobody Mon Apr 24 11:52:10 2023 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 4Q4k575qcSz46kP4; Mon, 24 Apr 2023 11:52:11 +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 4Q4k5666CDz3jHX; Mon, 24 Apr 2023 11:52:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1682337131; 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=fESWXKZEAVuUMNSA+Np+xA/uyY23Pe+Z8tTvWa2YJkk=; b=vPJPbUVbskFVEqy/tR6mifXZsJ4ikhqyIiWu4PM+mHt/C9GiegCFaG8MgW64IwP7S51Aqa W9iuJTA0RuYifmnkxMZVMEwCmreHQwfPSEMVxDg9Cs8iGVOWZFKIcf9WFvrV0DYPWklmpn TcAc1eI/kpY7H8fE+UdUqF4+xn0zKTH3hQBms9nacfETGJVris9cQ0Rk2awQlJovHkcgCD Mx6WjK0JPpBYx6Nk0deK9PfPZOuzQaqqfvA/FUrGypA3qFoC6b8yMwzh4qIxD0VI2z+ib+ tZssz/3ICsObUdTOHNPE5/8iJGFGda1xsLqoIGsA/h5Qq4KAoKZBPGnri1zsZw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1682337131; 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=fESWXKZEAVuUMNSA+Np+xA/uyY23Pe+Z8tTvWa2YJkk=; b=CTfXeI+1QF8B9z754ijVYnJJwf4zeyliBObXfgM6E+zqvHpHoPPmmuUeU7z74/gw0+R4sh Sf1ACB+kHeDLmxfzTHv8zm8Y4LFre2v/8ISMXEdSUO2+t0LIRh/RP/49JovGA6KoXePb9m QmbxCn3I2xh3xHvvTBDK4lv/JFKqUkwAXzsokHkPqvx6ftEvsYJ6LYN9+TnMMUzf8IProQ JgbC7m/5FFTQy+ZJXoL0IgBare2FH9ee8/ZzlxgOEWGi/Zl5wD8fOotd8JqrSirUSqkwig DPw+juvjlVU99itMb1jfvj4Kd9P+TzjT5GRJKUmSvE+wTWF/EkHr5fdZMWndjQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1682337131; a=rsa-sha256; cv=none; b=unzEhcODA6DSptocsFGl2O3ZHDxNjdela/a6FIdGITmkpEAapQoeIjiYSbay1vRL2b2EEX K2oc/E3uiApJpxa47hzX90vcpr83pvnO3BzuCxdRBWo5kOxKGdXi5Z1LfUPJsKp5iilQOW zlEGFU7mwjqnRS0pM+SbHGYZRSpPT2hK/Gg9eQSn5xiG54o8wW1cVxfn7ANJguRQneRyye yX8RSmK56njYK68vMFOVScJx6IoWvcVzFFoh73Q5rFUDmHP0NQPT48YxgQHfgJTNlpN/Ky +OpgR/XekC7mhv8hWtamxymKrEG+NubLdJMRYF7wfGwht6rtanmtruzUtPDNsw== 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 4Q4k564t2SzP5g; Mon, 24 Apr 2023 11:52:10 +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 33OBqAn6003189; Mon, 24 Apr 2023 11:52:10 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 33OBqAE6003188; Mon, 24 Apr 2023 11:52:10 GMT (envelope-from git) Date: Mon, 24 Apr 2023 11:52:10 GMT Message-Id: <202304241152.33OBqAE6003188@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Andrew Turner Subject: git: 49ee1a7ef0b1 - main - Create a common function to get the SMMU sid 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: andrew X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 49ee1a7ef0b164ce70408651621a0195c7c6930f Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=49ee1a7ef0b164ce70408651621a0195c7c6930f commit 49ee1a7ef0b164ce70408651621a0195c7c6930f Author: Andrew Turner AuthorDate: 2023-04-24 11:47:44 +0000 Commit: Andrew Turner CommitDate: 2023-04-24 11:47:44 +0000 Create a common function to get the SMMU sid Now the PCI drivers have a common interface to read the IOMMU xref and SID create a common function to read it. This fixes an issue where we will call into an ACPI specific function when booting with FDT when both are enabled. Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D39183 --- sys/arm64/iommu/smmu.c | 41 +++-------------------------------------- 1 file changed, 3 insertions(+), 38 deletions(-) diff --git a/sys/arm64/iommu/smmu.c b/sys/arm64/iommu/smmu.c index 923b77e2d5b2..9a9d7a4f6c2f 100644 --- a/sys/arm64/iommu/smmu.c +++ b/sys/arm64/iommu/smmu.c @@ -1799,34 +1799,8 @@ smmu_set_buswide(device_t dev, struct smmu_domain *domain, return (0); } -#ifdef DEV_ACPI static int -smmu_pci_get_sid_acpi(device_t child, u_int *xref0, u_int *sid0) -{ - uint16_t rid; - u_int xref; - int seg; - int err; - int sid; - - seg = pci_get_domain(child); - rid = pci_get_rid(child); - - err = acpi_iort_map_pci_smmuv3(seg, rid, &xref, &sid); - if (err == 0) { - if (sid0) - *sid0 = sid; - if (xref0) - *xref0 = xref; - } - - return (err); -} -#endif - -#ifdef FDT -static int -smmu_pci_get_sid_fdt(device_t child, u_int *xref0, u_int *sid0) +smmu_pci_get_sid(device_t child, u_int *xref0, u_int *sid0) { struct pci_id_ofw_iommu pi; int err; @@ -1841,7 +1815,6 @@ smmu_pci_get_sid_fdt(device_t child, u_int *xref0, u_int *sid0) return (err); } -#endif static struct iommu_ctx * smmu_ctx_alloc(device_t dev, struct iommu_domain *iodom, device_t child, @@ -1885,11 +1858,7 @@ smmu_ctx_init(device_t dev, struct iommu_ctx *ioctx) pci_class = devclass_find("pci"); if (device_get_devclass(device_get_parent(ctx->dev)) == pci_class) { -#ifdef DEV_ACPI - err = smmu_pci_get_sid_acpi(ctx->dev, NULL, &sid); -#else - err = smmu_pci_get_sid_fdt(ctx->dev, NULL, &sid); -#endif + err = smmu_pci_get_sid(ctx->dev, NULL, &sid); if (err) return (err); @@ -2000,11 +1969,7 @@ smmu_find(device_t dev, device_t child) sc = device_get_softc(dev); -#ifdef DEV_ACPI - err = smmu_pci_get_sid_acpi(child, &xref, NULL); -#else - err = smmu_pci_get_sid_fdt(child, &xref, NULL); -#endif + err = smmu_pci_get_sid(child, &xref, NULL); if (err) return (ENOENT);