Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp1822609pxf; Fri, 26 Mar 2021 16:14:28 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxX4I5ktypTft875nxY9pOuBygSxD3cDDP1Yj40XYWhnDf9NVHhX1TrpLxP/0Dli+uTZ1Oj X-Received: by 2002:a17:906:fc1c:: with SMTP id ov28mr17731366ejb.342.1616800468517; Fri, 26 Mar 2021 16:14:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1616800468; cv=none; d=google.com; s=arc-20160816; b=ZugkfHYjqO4x15XU2a0cRi9PYRUUhAeV3j18qijywZw9ct0BHvsE6mg2eo06Xo6gBs NGVPBl0GEBA6D5hqG7X8J3ogRNrFU6nDZjKTzhIX9Gvbq8qcurn3l5OX8kRPNWceyLiG VVWeme4FXlKxtN9UeIVgcqB80oFmtrXfwhOvlswUQ7tesdVxA3thZ1H2d1VXmFfICo2f QlTM0xrSs23GiAGMNczoTVG/9LDKVwM9wnqUX79Pl/xkpje2H+9SpjaJzmmHtEpz8sYh E4JrsJbTUJbfl0GvB7TfZ+7Kmh9qqhbyQ6AXN91HkGMtxYxSsN5xFS0239BxDb8XzjAL EklQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=Br5dnsn6qntOpU2U5zqHAGfW5LmzUx9sZjoQtT0uBvA=; b=YUXNJCSG9HOI5GLidf7SPicXxlaBagnh13cqwKMBLcOGEqoXPVrR6+LBZK/CaYPei8 BCaPuUOs24KGxG/dv5JmGK5+jsF0kdYlW4oKxoZIRzr3j/nx4kuLJEn85ZnaCDyMtnUc oqJ23j1bMmlmxvlXoeqzqsbqgdJgh92NOY9ey85ireSNpaGpv6CsroTBvHz0ye8e5U/Y 3kfNYPCyGMe/8yED13r3rwaCNg6SAOfVSNLEnPiRnJuglVikQj6g39ywfE9HJ2NSX49W f2r/5+mdMWERxT2cCmiLh3E4bs4HJOiO+wk3Ks2zm3lVHOIcR72Y8cwXelBOlf2AWmfA c5WA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@anholt-net.20150623.gappssmtp.com header.s=20150623 header.b=IEdGgwaq; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id p16si7695640edu.606.2021.03.26.16.14.06; Fri, 26 Mar 2021 16:14:28 -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; dkim=pass header.i=@anholt-net.20150623.gappssmtp.com header.s=20150623 header.b=IEdGgwaq; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230406AbhCZXNN (ORCPT + 99 others); Fri, 26 Mar 2021 19:13:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51648 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230226AbhCZXNG (ORCPT ); Fri, 26 Mar 2021 19:13:06 -0400 Received: from mail-pg1-x535.google.com (mail-pg1-x535.google.com [IPv6:2607:f8b0:4864:20::535]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 43B0DC0613AA for ; Fri, 26 Mar 2021 16:13:06 -0700 (PDT) Received: by mail-pg1-x535.google.com with SMTP id r17so5636374pgi.0 for ; Fri, 26 Mar 2021 16:13:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=anholt-net.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=Br5dnsn6qntOpU2U5zqHAGfW5LmzUx9sZjoQtT0uBvA=; b=IEdGgwaqDywiGX1dYZabuHGeCPVqPOmtJ9gWumaiYE8LhpP7TPrmgh9Am25ZaK541g Sd6wCiWEHPLssN/QZZQCUeV+b1jFHBa9vQqdVSP3T3NKxBgV1FzobrzJQk+NKL1vpuLV nEBB9ozh/jSnm0UXI/GzbP33fvZOn8O0AIvyW/rAMtsz/ObcK8gFgtMXwYpCI7Cdziuy hK/y6rYLo5xaOrwm+VBc/5k6KIR1KnM5+EV+9VYRQNJJmPdIwyGNck0fJFpkoeQjmTPC AxTNhc1eE8HVAOr6kzUsbL0Uf0SoOCvwLRALNWIDRuXgHEd9O9L4wwkNJpd+hDPMKjIY 3mKg== 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:mime-version :content-transfer-encoding; bh=Br5dnsn6qntOpU2U5zqHAGfW5LmzUx9sZjoQtT0uBvA=; b=ChLixvUsDdyouArg0dR37idWeGWo6Cywsr4Nv71xw53iA9rZYYiHC/cb73FPmbhQ2H KcvUgl7Us8ULJMmEOIZNpCALSQDq8Niy6nLcBtSIAd92emWdnaiAjtPHt6oMUsXLEvsn A35wcSuHPQUBc6QbZy9QWlmsdBUqkJx6jbGsMGz49+GqzIkjX4b3xak4JQ+d3kxz4tb9 zY2gLPmMZJmQLHzl/iXZtjQj71v9qIaXoLu5x1WrFvksz4myzTxhF/FktEpRwjrBR1E4 AhzAiDkYTsca5LYutfvIDMUBH1b891RUrwo5ZD26cphw4QPXaFc1d6KZ1XTB0o+iZl1l n9tw== X-Gm-Message-State: AOAM531XmYDeldHSB6FyIty8vNpd9xxUdsvSdR0HEwaJl88igJQTO6eT bIfWNJpJY8CFPg42UcGCkHWM6A== X-Received: by 2002:a65:458f:: with SMTP id o15mr13853926pgq.111.1616800385764; Fri, 26 Mar 2021 16:13:05 -0700 (PDT) Received: from wildbow.anholt.net ([97.115.138.77]) by smtp.gmail.com with ESMTPSA id a144sm10289325pfd.200.2021.03.26.16.13.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 26 Mar 2021 16:13:05 -0700 (PDT) From: Eric Anholt To: dri-devel@lists.freedesktop.org, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, Rob Clark , Sean Paul , Jordan Crouse , Robin Murphy , Will Deacon , Rob Herring , Joerg Roedel , linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Eric Anholt Subject: [PATCH 1/2] iommu/arm-smmu-qcom: Skip the TTBR1 quirk for db820c. Date: Fri, 26 Mar 2021 16:13:02 -0700 Message-Id: <20210326231303.3071950-1-eric@anholt.net> X-Mailer: git-send-email 2.31.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org db820c wants to use the qcom smmu path to get HUPCF set (which keeps the GPU from wedging and then sometimes wedging the kernel after a page fault), but it doesn't have separate pagetables support yet in drm/msm so we can't go all the way to the TTBR1 path. Signed-off-by: Eric Anholt --- We've been seeing a flaky test per day or so in Mesa CI where the kernel gets wedged after an iommu fault turns into CP errors. With this patch, the CI isn't throwing the string of CP errors on the faults in any of the ~10 jobs I've run so far. drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c index bcda17012aee..51f22193e456 100644 --- a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c +++ b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c @@ -130,6 +130,16 @@ static int qcom_adreno_smmu_alloc_context_bank(struct arm_smmu_domain *smmu_doma return __arm_smmu_alloc_bitmap(smmu->context_map, start, count); } +static bool qcom_adreno_can_do_ttbr1(struct arm_smmu_device *smmu) +{ + const struct device_node *np = smmu->dev->of_node; + + if (of_device_is_compatible(np, "qcom,msm8996-smmu-v2")) + return false; + + return true; +} + static int qcom_adreno_smmu_init_context(struct arm_smmu_domain *smmu_domain, struct io_pgtable_cfg *pgtbl_cfg, struct device *dev) { @@ -144,7 +154,8 @@ static int qcom_adreno_smmu_init_context(struct arm_smmu_domain *smmu_domain, * be AARCH64 stage 1 but double check because the arm-smmu code assumes * that is the case when the TTBR1 quirk is enabled */ - if ((smmu_domain->stage == ARM_SMMU_DOMAIN_S1) && + if (qcom_adreno_can_do_ttbr1(smmu_domain->smmu) && + (smmu_domain->stage == ARM_SMMU_DOMAIN_S1) && (smmu_domain->cfg.fmt == ARM_SMMU_CTX_FMT_AARCH64)) pgtbl_cfg->quirks |= IO_PGTABLE_QUIRK_ARM_TTBR1; -- 2.31.0