From patchwork Sat May 13 09:47:29 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shameerali Kolothum Thodi X-Patchwork-Id: 99747 Delivered-To: patch@linaro.org Received: by 10.140.96.100 with SMTP id j91csp700528qge; Sat, 13 May 2017 02:53:51 -0700 (PDT) X-Received: by 10.98.73.9 with SMTP id w9mr9078265pfa.218.1494669231112; Sat, 13 May 2017 02:53:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1494669231; cv=none; d=google.com; s=arc-20160816; b=GC6750qHYmfRJ6aOXFYQMTH4aa9JMuOwDfJpLBH/p/McwXfuuSg/gHXK3Z1radAlFQ RGeIZ7mRjyIZx4oDY05KS082BzzreNl8xgNL6zk3dgjcoDN+EX14vwwojRVkJQYCLZpK Uaol7GBpS/ojcXtda/oL3JXyDsLfulQCEvLj8WKb3KSXt3WsaOMRz21NzTQnbSWDeign ejX9duHGdixjgSxlKqHB4ffXA6O0P4Ma076BHX0VAGwa30cgtXuHcZvxvUIt2WfA8YJy Hg3UwZAvmOHLt7wY2l78JA7KDPenOwO5puMkeYFQj7VuBzy+F26PQQgOqoC6iwQkuGXy frcA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:arc-authentication-results; bh=rm8hN/zAt7ZYgQww3WS7eTy9aUsI+rorCyzkwsJah2U=; b=QHEBCeeXGjAozlztaeHWm6dGxQXF8MhblRODTQoZc2FW/v/5vya+DRV9pkixChjxom mvb4pyNCcDtzBw5YuaqPtp3FbG04ZMIhKNtSNXAHqgRCJu3Eb/qIN4ch2yW8TNU40HRH +1re07EI2y/4SQHStBlEECeNE3b1lNcHByanzwVffI/lmpnJJqz/dV6PwtGrNs7UEKwZ L+5x1A2DotipOMMr5l73Nt9A2txQnecjyuS6c2eVCnxgBfe+wnCCRU+uzZAsxb0c9qIO cZQD4RSvuiiR+38vE+lDOJDk/Q7WrZ5qQfhkAFP8S4/G3ciQIu0mOJJIUFCvYnJcpbsQ 367A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of devicetree-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id c26si5622017pfl.163.2017.05.13.02.53.50; Sat, 13 May 2017 02:53:51 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of devicetree-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of devicetree-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751885AbdEMJxt (ORCPT + 7 others); Sat, 13 May 2017 05:53:49 -0400 Received: from szxga01-in.huawei.com ([45.249.212.187]:6288 "EHLO szxga01-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752699AbdEMJxs (ORCPT ); Sat, 13 May 2017 05:53:48 -0400 Received: from 172.30.72.55 (EHLO DGGEML404-HUB.china.huawei.com) ([172.30.72.55]) by dggrg01-dlp.huawei.com (MOS 4.4.6-GA FastPath queued) with ESMTP id AOL14085; Sat, 13 May 2017 17:53:04 +0800 (CST) Received: from S00345302A-PC.china.huawei.com (10.47.91.84) by DGGEML404-HUB.china.huawei.com (10.3.17.39) with Microsoft SMTP Server id 14.3.301.0; Sat, 13 May 2017 17:51:11 +0800 From: shameer To: , , , , CC: , , , , , , , , , , shameer Subject: [RFC v1 5/7] iommu/arm-smmu-v3: Enable ACPI based HiSilicon erratum 161010701 Date: Sat, 13 May 2017 10:47:29 +0100 Message-ID: <20170513094731.3676-6-shameerali.kolothum.thodi@huawei.com> X-Mailer: git-send-email 2.12.0.windows.1 In-Reply-To: <20170513094731.3676-1-shameerali.kolothum.thodi@huawei.com> References: <20170513094731.3676-1-shameerali.kolothum.thodi@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.47.91.84] X-CFilter-Loop: Reflected X-Mirapoint-Virus-RAPID-Raw: score=unknown(0), refid=str=0001.0A090202.5916D782.00E7, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0, ip=0.0.0.0, so=2014-11-16 11:51:01, dmn=2013-03-21 17:37:32 X-Mirapoint-Loop-Id: 2249c3c04c0b13ae77a256d479371668 Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org This uses the ACPI IORT model number to enable the erratum. Signed-off-by: shameer --- drivers/iommu/arm-smmu-v3.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) -- 2.5.0 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/drivers/iommu/arm-smmu-v3.c b/drivers/iommu/arm-smmu-v3.c index 14538cb..770cc9e 100644 --- a/drivers/iommu/arm-smmu-v3.c +++ b/drivers/iommu/arm-smmu-v3.c @@ -652,6 +652,7 @@ struct arm_smmu_domain { enum smmu_erratum_match_type { se_match_dt, + se_match_acpi_iort_model, }; void erratum_skip_prefetch_cmd(struct arm_smmu_device *smmu, void *arg) @@ -674,6 +675,13 @@ static const struct smmu_erratum_workaround smmu_workarounds[] = { .desc_str = "HiSilicon erratum 161010701", .enable = erratum_skip_prefetch_cmd, }, + { + .match_type = se_match_acpi_iort_model, + .id = (void *)ACPI_IORT_SMMU_HISILICON_HI161X, + .desc_str = "HiSilicon erratum 161010701", + .enable = erratum_skip_prefetch_cmd, + }, + #endif { @@ -691,6 +699,15 @@ bool smmu_check_dt_erratum(const struct smmu_erratum_workaround *wa, return of_property_read_bool(np, wa->id); } +static +bool smmu_check_acpi_iort_erratum(const struct smmu_erratum_workaround *wa, + const void *arg) +{ + const struct acpi_iort_smmu_v3 *iort_smmu = arg; + + return (iort_smmu->model == *(u32 *)(&wa->id)) ? true : false; +} + static void smmu_enable_errata(struct arm_smmu_device *smmu, enum smmu_erratum_match_type type, se_match_fn_t match_fn, @@ -724,6 +741,9 @@ static void smmu_check_workarounds(struct arm_smmu_device *smmu, case se_match_dt: match_fn = smmu_check_dt_erratum; break; + case se_match_acpi_iort_model: + match_fn = smmu_check_acpi_iort_erratum; + break; } smmu_enable_errata(smmu, type, match_fn, arg); @@ -2654,6 +2674,8 @@ static int arm_smmu_device_acpi_probe(struct platform_device *pdev, /* Retrieve SMMUv3 specific data */ iort_smmu = (struct acpi_iort_smmu_v3 *)node->node_data; + smmu_check_workarounds(smmu, se_match_acpi_iort_model, iort_smmu); + if (iort_smmu->flags & ACPI_IORT_SMMU_V3_COHACC_OVERRIDE) smmu->features |= ARM_SMMU_FEAT_COHERENCY;