Received: by 2002:a05:6a10:17d3:0:0:0:0 with SMTP id hz19csp2469901pxb; Tue, 13 Apr 2021 02:41:40 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxF7sDvgNNEYE0xs9M3hak+Dg+pSOQ7MzbGNo2xUQZmjIqEk3Iv++LrqsGeJLs7Rf8aHFYa X-Received: by 2002:a17:902:7592:b029:ea:d7cd:eb56 with SMTP id j18-20020a1709027592b02900ead7cdeb56mr14091555pll.23.1618306900574; Tue, 13 Apr 2021 02:41:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1618306900; cv=none; d=google.com; s=arc-20160816; b=nZt+Qr1MxAKZM6ornDkHs7viRLgFVNqEF5blx94KOUEyteLQJKN08yB+1TIlTXkpND Ab6fDEqmUzqA5q6VSpjKpSCNeoDlSHly/AlVkDga8x0y9E1n8QRkz8NEpjEHeH06Is5m YfG8kXaLXwFOBFqIPFvqi/2lt4Yf90Z2mTfVOlxJ4UrkwasDDATDsmDIBjV2zDHWiuzF Fng8gCgvhw2PbFFGWjpgZZv93c2ZdiCkpyJuRPW3EjPP+UC+VcG7+EjkwjOCSDDAeSfV ghewXLHLWqtuzXoIY2sXIQI2Ad/HS/DgmOxwEbYM1yRhixSTXC9RL4Lq8zA6WkMCC9eI YH2g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from; bh=hJVbbJRwM27RSmW2GX3jHQC7+BaVHvhiGLdCLNH3xJs=; b=ETuy2JgZlcm20NnYjoTyAj+It610dy8Pi4YPmXFEeD5xK3OntVm54RA1VdVyu9quF3 3mWQ7iRiJ0YqVNNLxpI5mXjJQhSLpZWjJBVhRtSdk839oXvRn24pK6SJ+qiIvryMHRhT QmCoHc6RBvxyrvMHYJbwtd0UFRk7A46/7vXJIwiyHIG982HP2YFEbnrE0k8Prem1SL7g LGDrEnxO2AIYqP39bPM/y2DarZro7V9Ykvu/pfZXVhneFaFWX64gvW4fXRHja1Z05CZD Ws08yibnwZZU0+ixRXcZTiQN9zKrzbG8JNw0P30/KDkH7yP/7VjI5eoRoGbwW+gclR90 kE+g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=huawei.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d5si2438419pln.305.2021.04.13.02.41.28; Tue, 13 Apr 2021 02:41:40 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244985AbhDMI4O (ORCPT + 99 others); Tue, 13 Apr 2021 04:56:14 -0400 Received: from szxga05-in.huawei.com ([45.249.212.191]:16547 "EHLO szxga05-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244158AbhDMIzn (ORCPT ); Tue, 13 Apr 2021 04:55:43 -0400 Received: from DGGEMS407-HUB.china.huawei.com (unknown [172.30.72.60]) by szxga05-in.huawei.com (SkyGuard) with ESMTP id 4FKK9q0Tz9zPqkj; Tue, 13 Apr 2021 16:52:31 +0800 (CST) Received: from DESKTOP-5IS4806.china.huawei.com (10.174.187.224) by DGGEMS407-HUB.china.huawei.com (10.3.19.207) with Microsoft SMTP Server id 14.3.498.0; Tue, 13 Apr 2021 16:55:16 +0800 From: Keqian Zhu To: , , , Robin Murphy , "Will Deacon" , Joerg Roedel , Yi Sun , Jean-Philippe Brucker , Jonathan Cameron , Tian Kevin , Lu Baolu CC: Alex Williamson , Cornelia Huck , Kirti Wankhede , , , , Subject: [PATCH v3 12/12] iommu/arm-smmu-v3: Add HWDBM device feature reporting Date: Tue, 13 Apr 2021 16:54:57 +0800 Message-ID: <20210413085457.25400-13-zhukeqian1@huawei.com> X-Mailer: git-send-email 2.8.4.windows.1 In-Reply-To: <20210413085457.25400-1-zhukeqian1@huawei.com> References: <20210413085457.25400-1-zhukeqian1@huawei.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.174.187.224] X-CFilter-Loop: Reflected Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Kunkun Jiang We have implemented these interfaces required to support iommu dirty log tracking. The last step is reporting this feature to upper user, then the user can perform higher policy base on it. There is a new dev feature named IOMMU_DEV_FEAT_HWDBM in iommu layer. For arm smmuv3, it is equal to ARM_SMMU_FEAT_HD and it is enabled by default if supported. Other types of IOMMU can enable it by default or when user invokes enable_feature. Co-developed-by: Keqian Zhu Signed-off-by: Kunkun Jiang --- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c index 59bb1d198631..2d716ee5621f 100644 --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c @@ -2712,6 +2712,9 @@ static bool arm_smmu_dev_has_feature(struct device *dev, switch (feat) { case IOMMU_DEV_FEAT_SVA: return arm_smmu_master_sva_supported(master); + case IOMMU_DEV_FEAT_HWDBM: + /* No requirement for device, require HTTU HD of smmu */ + return !!(master->smmu->features & ARM_SMMU_FEAT_HD); default: return false; } @@ -2728,6 +2731,9 @@ static bool arm_smmu_dev_feature_enabled(struct device *dev, switch (feat) { case IOMMU_DEV_FEAT_SVA: return arm_smmu_master_sva_enabled(master); + case IOMMU_DEV_FEAT_HWDBM: + /* HTTU HD is enabled if supported */ + return arm_smmu_dev_has_feature(dev, feat); default: return false; } -- 2.19.1