Received: by 2002:a05:6a10:1a4d:0:0:0:0 with SMTP id nk13csp5946807pxb; Mon, 14 Feb 2022 11:23:10 -0800 (PST) X-Google-Smtp-Source: ABdhPJyw8CExDFxRuqjOmugc57ZxFMqKUpxShsMRZp5rP/ld3nxHCdkPXr2Qw8Mwcid52N5dQ/p8 X-Received: by 2002:a17:90b:3806:b0:1b8:e628:d88 with SMTP id mq6-20020a17090b380600b001b8e6280d88mr242205pjb.32.1644866589904; Mon, 14 Feb 2022 11:23:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1644866589; cv=none; d=google.com; s=arc-20160816; b=UzCCJgLvTCUlqGce37AT4dW/O1KT0GI/VJqEV3d909Z8WZSCqXSP9v8dXCvrCtxCBE YFSyluiYLvL2IA4Xr2B/GINS14O89x3NgKA3N5TbGI0sjxLxhyK7aUdTRZsw1BIkvz6i 3o1w+vc5qqSFj7ON3qnZGb8tuPHX7omPkjYvSo59SrmHP/jOE09ecz/fQ26LiP8TRE9B 6D/vqe5MEJVjDDE3iihWh/F+8qtNomwlr9PiRcSg3wftIZzOYtazQS38x7dzrlXjLv0w jKNY1sbj5Dafg2zStQElNu7lfZeNwq6ITkUZ58sLWV+wdbURZxS/yXE7F9kNw/xtL5xG yKGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to :mime-version:user-agent:date:message-id:from:references:to:subject :cc; bh=lBUYsPA8SZ0a9yxOIr3nIyKvS8oIiYH6oKekwEittFk=; b=j4MWb3EykOrTP2LRwXaIY2P4ff0ThbHmRYkvetn768t41QKIkC0eOyAWEkV5P35nKB m+hZuhcZP9nTI4M/go6t57o5rJJq4TGHPN9dXRpSHocCeyW7oAwlLhmhGPsXSQOevkvX OHtIKMP7V89UOvPQjAQbBABL7X2cU6Mky1vQqpintXwOFmE3IytpKYiemCqjdUGhm3KW JtD3JF/+6w+IqnS22ZLng+cwm0+MFGFTEDlZvWcB8aDwZdy3FmXGZ3BBifqyrkzkBoLi TUI0WvJQMUiTCHEB9H910EKVbL0flRDtqLE8KcgKwiLIjeLtajZ1GI1rl4+OqbdefV3A 8qow== ARC-Authentication-Results: i=1; mx.google.com; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id r66si481461pgr.160.2022.02.14.11.23.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Feb 2022 11:23:09 -0800 (PST) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id BD806CB67C; Mon, 14 Feb 2022 11:14:04 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1353730AbiBNMzc (ORCPT + 99 others); Mon, 14 Feb 2022 07:55:32 -0500 Received: from mxb-00190b01.gslb.pphosted.com ([23.128.96.19]:46424 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1353712AbiBNMzb (ORCPT ); Mon, 14 Feb 2022 07:55:31 -0500 Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CEEC49FF5; Mon, 14 Feb 2022 04:55:23 -0800 (PST) Received: from canpemm500009.china.huawei.com (unknown [172.30.72.53]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4Jy414298PzccxJ; Mon, 14 Feb 2022 20:54:16 +0800 (CST) Received: from [10.67.102.169] (10.67.102.169) by canpemm500009.china.huawei.com (7.192.105.203) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.21; Mon, 14 Feb 2022 20:55:20 +0800 CC: , , , , Subject: Re: [PATCH v3 8/8] iommu/arm-smmu-v3: Make default domain type of HiSilicon PTT device to identity To: Yicong Yang , , , , , , , , , , , , , , , , , , , , , , , , , References: <20220124131118.17887-1-yangyicong@hisilicon.com> <20220124131118.17887-9-yangyicong@hisilicon.com> From: Yicong Yang Message-ID: Date: Mon, 14 Feb 2022 20:55:20 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.5.1 MIME-Version: 1.0 In-Reply-To: <20220124131118.17887-9-yangyicong@hisilicon.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Originating-IP: [10.67.102.169] X-ClientProxiedBy: dggems701-chm.china.huawei.com (10.3.19.178) To canpemm500009.china.huawei.com (7.192.105.203) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,NICE_REPLY_A, RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Robin, Is this quirk ok with the SMMU v3 driver? Just want to confirm that I'm on the right way to dealing with the issue of our device. Thanks. On 2022/1/24 21:11, Yicong Yang wrote: > The DMA of HiSilicon PTT device can only work with identical > mapping. So add a quirk for the device to force the domain > passthrough. > > Signed-off-by: Yicong Yang > --- > drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 16 ++++++++++++++++ > 1 file changed, 16 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 6dc6d8b6b368..6f67a2b1dd27 100644 > --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c > +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c > @@ -2838,6 +2838,21 @@ static int arm_smmu_dev_disable_feature(struct device *dev, > } > } > > +#define IS_HISI_PTT_DEVICE(pdev) ((pdev)->vendor == PCI_VENDOR_ID_HUAWEI && \ > + (pdev)->device == 0xa12e) > + > +static int arm_smmu_def_domain_type(struct device *dev) > +{ > + if (dev_is_pci(dev)) { > + struct pci_dev *pdev = to_pci_dev(dev); > + > + if (IS_HISI_PTT_DEVICE(pdev)) > + return IOMMU_DOMAIN_IDENTITY; > + } > + > + return 0; > +} > + > static struct iommu_ops arm_smmu_ops = { > .capable = arm_smmu_capable, > .domain_alloc = arm_smmu_domain_alloc, > @@ -2863,6 +2878,7 @@ static struct iommu_ops arm_smmu_ops = { > .sva_unbind = arm_smmu_sva_unbind, > .sva_get_pasid = arm_smmu_sva_get_pasid, > .page_response = arm_smmu_page_response, > + .def_domain_type = arm_smmu_def_domain_type, > .pgsize_bitmap = -1UL, /* Restricted during device attach */ > .owner = THIS_MODULE, > }; >