Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp3888453pxv; Mon, 19 Jul 2021 11:10:54 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw//SCs+CT5stKahKKLhO0xbHe4qgmFeYiTgwbaY9154l5sM5VZgKh9SgrnaEAfUojuWf+h X-Received: by 2002:aa7:d8c1:: with SMTP id k1mr35502221eds.28.1626718253872; Mon, 19 Jul 2021 11:10:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626718253; cv=none; d=google.com; s=arc-20160816; b=UntAui5ICVGud7gJAY7TSDdZLuxtSSz0+FgYF8Me5Vl5M5uHLqbHiG2EOB+JiKl8Gq Xonq/xZhCdlv6SkX8F5LaO/N9UYFFXrArMMy7LvyXWQn+iU2cAX4FsUqbrKxbmarNJlv c64qcqznjJ/zOMbgftxGusK20FHn2IMQZq4adZIIjhWt6V/blvhgvr2stUa9UB6r9dyU xxTNmjDsNNzsCHxxIZTspd25nrgiJPTGrPLJwCnZv9i6GkOMwyDDDPCFz3fIMqk7x7Jc pM5aRJuRVxN3Tp0awpIUd7wVv1e/uCcELFGRkxMlwebgF5jXE1riqFl1gBLT5mAiSBIr srwg== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=EKHwpwyUeu5OTThYqXFgMT4UYvNyDfK4dlun7u6SneE=; b=mOXNM/4OeURv+/Ds5N2bcDsDQ6xSZSmR8RGmiaQqjoV2o+F+P6rOBzHHoD1vmLJWLb rrJVZganMgSmb2WO0JAh72AbNIpj9JvK9jeUtabadg+/QK5FzvV5bC1pBOMo+S//k+0/ ZHtK1TFX5Y+f9OoW8PQo/FKUCulT66Lc2YNf2sg+BDcNDPpDNM717VWXzsmOzHi8fQE1 GKztqyzBLd8ledoNx+Y8XitC2bsADxyi2mnQMvl50LNfCpTYcGeVDxPGhGwRUI9BUJ9T MzQGC29aZ2QRKVqFi3yq7ed2Bx8qauM0DgZryx/Im/GXaPvd9FfVEAHlcU7oDPUVOC0p ym8Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=OUbHeAmP; 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=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id k9si9098457edh.461.2021.07.19.11.10.30; Mon, 19 Jul 2021 11:10:53 -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=@linuxfoundation.org header.s=korg header.b=OUbHeAmP; 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=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1356536AbhGSRWu (ORCPT + 99 others); Mon, 19 Jul 2021 13:22:50 -0400 Received: from mail.kernel.org ([198.145.29.99]:45036 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1347944AbhGSPni (ORCPT ); Mon, 19 Jul 2021 11:43:38 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 1C08C6140A; Mon, 19 Jul 2021 16:22:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1626711750; bh=6MAIkxHaPo+Yqp2Ff/ElNQYLdszBr4YG2QdZKdHUdtg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OUbHeAmPJTI8foJ1OhHdenQyVPNXsjKPw9VmwBFHc8DnCdoBspI7LNXSHK7uZNDT/ n+Wnvps5/74yYmO4pUxu1xENuyjIhd3E1IgXooAZHUPuHr5vpFMfUgei9hP1hD2zl6 4pu3jM2SQnZWzOfR1lbtZzIXZDZDziceDhK8P6b4= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Eric Anholt , Bjorn Andersson , Will Deacon , Sasha Levin Subject: [PATCH 5.12 085/292] iommu/arm-smmu-qcom: Skip the TTBR1 quirk for db820c. Date: Mon, 19 Jul 2021 16:52:27 +0200 Message-Id: <20210719144945.307816624@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210719144942.514164272@linuxfoundation.org> References: <20210719144942.514164272@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Eric Anholt [ Upstream commit a242f4297cfe3f4589a7620dcd42cc503607fc6b ] 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 Reviewed-by: Bjorn Andersson Link: https://lore.kernel.org/r/20210326231303.3071950-1-eric@anholt.net Signed-off-by: Will Deacon Signed-off-by: Sasha Levin --- 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 98b3a1c2a181..44a427833385 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.30.2