From patchwork Fri Nov 8 15:25:03 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jean-Philippe Brucker X-Patchwork-Id: 178915 Delivered-To: patch@linaro.org Received: by 2002:a92:38d5:0:0:0:0:0 with SMTP id g82csp2860739ilf; Fri, 8 Nov 2019 07:26:54 -0800 (PST) X-Google-Smtp-Source: APXvYqyXP2TH2Yk5O3Zd/JEJiy5oRQhI9SqTRRzR34oJXacpQTxebaUm+rLbRwNIPeD2BuxldeAP X-Received: by 2002:a17:906:ecf5:: with SMTP id qt21mr9075288ejb.295.1573226814116; Fri, 08 Nov 2019 07:26:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1573226814; cv=none; d=google.com; s=arc-20160816; b=W32g0qJDFNgUgogzN2vzS3d4wO09A5BrvSVnHcnTWWagzYEDsAM4YFCzlVXiDxScri bnxQf23VTfiELeh/j61fu+/TLzrw2205S61mtLo0GzgcLIjG/emZ94HK9XYdsHoF71QK a7Vz/R73kcgEhWTtFEI3fqEMiQ/7rLxI4w9aSIeWZZqFI1sgduSkoAvhgXeAVecPc0Ej ipGIF+OJnV2at0Lt6SA3yeBBs/qAYxYEKPsUSax7kvDzSuqVyaukRenywW7vLiu7wp1h bx0J6YzDElyerMSZkGEAweU7e2NlMRvrwWBCnPg4VaNpvQzdOz12ImveUQ5GZvAeplvY GhMw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=+aAa3kHo6X36UARQ/hBD+CYIStSC9Mwak+bAj3lpxxM=; b=h6cMy3CWBBDsqhUBBc7pH+lLGRKMMZWrPsbnAK6WOYiUgf5E8iobafDiEiieKRBpAu DZoAP1gU0agFZ7sCnm46YAYptpSnFon8oqCUP3VIR0gifd8QhNR/meVpAKNa48h1RdNs jUYYwCgroqXNPNzi3sPyr/1pLNQe13AKJLEvotYNLIW99bEe3SzTGlvid8TQxjGgbLJX 9j/Ybfx6vrPtRiU0ePooYTnygU8Nim57Zh1YZyeIIi1pzIBlXCMQnmsYUC8uSrjfofvr bu5ztQbSHSLI0fZq8OC16XnmvnPEk+0/bcVQ4WVmBPq96C3STtIrao+KtJRdWZWirPKe pJGA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=rk9za0j+; spf=pass (google.com: best guess record for domain of linux-acpi-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-acpi-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y31si4384892edb.47.2019.11.08.07.26.53; Fri, 08 Nov 2019 07:26:54 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-acpi-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=@linaro.org header.s=google header.b=rk9za0j+; spf=pass (google.com: best guess record for domain of linux-acpi-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-acpi-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726843AbfKHP0w (ORCPT + 7 others); Fri, 8 Nov 2019 10:26:52 -0500 Received: from mail-wm1-f68.google.com ([209.85.128.68]:54858 "EHLO mail-wm1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726763AbfKHP0w (ORCPT ); Fri, 8 Nov 2019 10:26:52 -0500 Received: by mail-wm1-f68.google.com with SMTP id z26so6579161wmi.4 for ; Fri, 08 Nov 2019 07:26:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=+aAa3kHo6X36UARQ/hBD+CYIStSC9Mwak+bAj3lpxxM=; b=rk9za0j+DjrBF+nEQLw0UeApqKkWBCvgDbUXpotyR3WcOdSZUdqJemsRAUO0+HTGL1 GUNs7bt4UgSxiL6f3ok4bdNmEamSc9EHDrNjbCyOo0oxmj2VNzcujqfH6kFCFjfZ1jQt hks2xi69COXdeSg2aAH4ow5jW7bVQgVZrQTOC+OPqBNFj6FssCrQTeUkL6YYO5NilsTS /qQBGPNk10VAvkFNz87SS5aKQnT2uWXfhGs90RxNw+Ls/MQBN9vtyfWpRtTWyVnn4706 4oAPI5kC4UaL+xz9ryj+/AzkP48rL4NOmp9fynAASOANWZvjDBAghHTT1yBZyxAtJnha iLBg== 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:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=+aAa3kHo6X36UARQ/hBD+CYIStSC9Mwak+bAj3lpxxM=; b=Amj0z7VB7+/Kp7AP1LsdLkprkqV5yrcbg0rSA9DoteS1Bw9erjeLJcOxCthsXemuVV Jy04Qk0bSEbE2q9Ii2DDYdNfXfEs4h781nVDHrNrXgHxafhfgq8Mw1AFgDc8Z5YVmMMF McVi7vFK8K06DHrkjRooxPouNC8+okFg83PIh6ZOWAXdZTZdfylxAD15tdWTqrIfFlbq Ixx6j3jWY6aShGfZwmw9o0lceyXPpMPzv3jivIX0H8i/tZkVXgo5xiF95R0umSG/ukQc G7Adz4o5d2M0FqlfvyNID3JlE7uxmRn1Me4y2Vy42o8OeOWbpIB0zoDrWY+0T6xQjlBM qqJg== X-Gm-Message-State: APjAAAWb+0G30IPaVicFILxFlb9/uDeVlaj4uyrBVoYalC/mWWFpIZF6 wzHLVR/KHPmKlgyvdYVtiLA7uw== X-Received: by 2002:a1c:7d47:: with SMTP id y68mr8658213wmc.157.1573226810884; Fri, 08 Nov 2019 07:26:50 -0800 (PST) Received: from localhost.localdomain ([85.195.192.192]) by smtp.gmail.com with ESMTPSA id w18sm6579232wrp.31.2019.11.08.07.26.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Nov 2019 07:26:50 -0800 (PST) From: Jean-Philippe Brucker To: iommu@lists.linux-foundation.org, devicetree@vger.kernel.org, linux-acpi@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: joro@8bytes.org, robh+dt@kernel.org, mark.rutland@arm.com, lorenzo.pieralisi@arm.com, guohanjun@huawei.com, sudeep.holla@arm.com, rjw@rjwysocki.net, lenb@kernel.org, will@kernel.org, robin.murphy@arm.com, zhangfei.gao@linaro.org, eric.auger@redhat.com, jonathan.cameron@huawei.com Subject: [PATCH v2 3/8] ACPI/IORT: Support PASID for platform devices Date: Fri, 8 Nov 2019 16:25:03 +0100 Message-Id: <20191108152508.4039168-4-jean-philippe@linaro.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191108152508.4039168-1-jean-philippe@linaro.org> References: <20191108152508.4039168-1-jean-philippe@linaro.org> MIME-Version: 1.0 Sender: linux-acpi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-acpi@vger.kernel.org Named component nodes in the IORT tables describe the number of Substream ID bits (aka. PASID) supported by the device. Propagate this value to the fwspec structure in order to enable PASID for platform devices. Signed-off-by: Jean-Philippe Brucker --- drivers/acpi/arm64/iort.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) -- 2.23.0 Acked-by: Hanjun Guo diff --git a/drivers/acpi/arm64/iort.c b/drivers/acpi/arm64/iort.c index 5a7551d060f2..9aebb180744f 100644 --- a/drivers/acpi/arm64/iort.c +++ b/drivers/acpi/arm64/iort.c @@ -11,6 +11,7 @@ #define pr_fmt(fmt) "ACPI: IORT: " fmt #include +#include #include #include #include @@ -924,6 +925,20 @@ static int iort_pci_iommu_init(struct pci_dev *pdev, u16 alias, void *data) return iort_iommu_xlate(info->dev, parent, streamid); } +static void iort_named_component_init(struct device *dev, + struct acpi_iort_node *node) +{ + struct acpi_iort_named_component *nc; + struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(dev); + + if (!fwspec) + return; + + nc = (struct acpi_iort_named_component *)node->node_data; + fwspec->num_pasid_bits = FIELD_GET(ACPI_IORT_NC_PASID_BITS, + nc->node_flags); +} + /** * iort_iommu_configure - Set-up IOMMU configuration for a device. * @@ -978,6 +993,9 @@ const struct iommu_ops *iort_iommu_configure(struct device *dev) if (parent) err = iort_iommu_xlate(dev, parent, streamid); } while (parent && !err); + + if (!err) + iort_named_component_init(dev, node); } /*