Received: by 2002:a05:7412:8521:b0:e2:908c:2ebd with SMTP id t33csp788471rdf; Fri, 3 Nov 2023 15:38:45 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE/qLgHfPNJEFi535C6woQaOXWaJKcHGQDnWpS4O0qWdNwUVaHbDedWT0cksO71XqF3mUOy X-Received: by 2002:a05:6a00:17a9:b0:6be:265:1bf6 with SMTP id s41-20020a056a0017a900b006be02651bf6mr24164291pfg.32.1699051125571; Fri, 03 Nov 2023 15:38:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1699051125; cv=none; d=google.com; s=arc-20160816; b=hFosgafnN/rQVndWXaxsKywJlW5zNx9bd7oP/kh8rBgUJEi79h5H3OGFbCs1zVljkR 7qZOF6cO6WAKImkgFE28pXm+1b4gu4WoOurrhe2zmNIMnKdA2z4kCVC6aPpLsvigZ2H6 Q8jwGEATKCunQoCNFyjKdXcxmMB3oduakMKcNoEtLz+cbUyf4l7YB1kMuV3ZTgUcmthS n5boAsa/QggzryEZfzPRYtJwL1XDkDp1B9fbIGHQIixqiCcIVTp08B5feT74MF072d3q KojjwLEOITD1nU8FU7hBWg9oi3Ji5NWQTiTyYi3jLiW0J52dTNw4amsuXM/hmij+1CSM EcZA== 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:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id:dkim-signature; bh=aqiAiSiZc2cIzFlgNs5OJbo+4fVtFgFXmChwz5UKL/w=; fh=g/pwu76vTzBX0o8XqhuNF1fHtWWUqIlSb8jhuv6eV3g=; b=Z/w98MnYLWlnH+dzLQe1HYmjcMTanwk2h2hv15ar9G5Dfn9rjGM+tMBfGLEku3whNK 3sO3xlrt6SpqtWrDAVtK5Q9Z3I406ud9N+hZQpTPm4h1umJPNOceiX27/OK1e+3DxDaG wwnqIu7kP6YQjD654STt3IDq0yJj4h19GWARNtZhRi3IehsLvqqAKNo/YZupLn1Ynfos 8rVQ0OIOfkddGlZHgB/fDcSBxYVxJrgkxJOAAQJkR8k0Ww2AmsCkMlE2JN+g7e9Ft1/A 6HTzx1ZDIm3Gel2WMKWczW4DlsgZequeGm7GSU5y8s59cHhcmPiQvDmY2mP6PJAOgavl OTwg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=ha4ZNuWF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Return-Path: Received: from agentk.vger.email (agentk.vger.email. [23.128.96.32]) by mx.google.com with ESMTPS id z18-20020a656112000000b005ac39221cc8si2235479pgu.567.2023.11.03.15.38.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Nov 2023 15:38:45 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) client-ip=23.128.96.32; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=ha4ZNuWF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by agentk.vger.email (Postfix) with ESMTP id DFE3282222B5; Fri, 3 Nov 2023 15:38:42 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at agentk.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230439AbjKCWig (ORCPT + 99 others); Fri, 3 Nov 2023 18:38:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52748 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230076AbjKCWif (ORCPT ); Fri, 3 Nov 2023 18:38:35 -0400 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DD5F7D61 for ; Fri, 3 Nov 2023 15:38:31 -0700 (PDT) Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 3A3LrugR026091; Fri, 3 Nov 2023 22:38:18 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=message-id : date : mime-version : subject : to : cc : references : from : in-reply-to : content-type : content-transfer-encoding; s=qcppdkim1; bh=aqiAiSiZc2cIzFlgNs5OJbo+4fVtFgFXmChwz5UKL/w=; b=ha4ZNuWFxwagc25o0RdvW5KdTv9GeGcRTMme0ldej5g7ylC6SgIoZd8ivnHNxJQ5R1g9 i92WFQdLJMMoDibecQ2aMms4/5uOWa7rRGEvdTCa+xpJf/KiJ+XTTaDDjN4OqiGDxMc3 0X8sJjxPZ8uhBnDDevREUc5c1j6MfKrhqAolYI1SouAhO7aBpTf7GejV6zXDR6dJnVSt fxGzVsQI53VPMYtXl84wXzZsYFQFEmEu1MVmxnxBWvPdLgSQfCleAJgd7vIKkthMaScP LlkFH7oUvbvNtd5Z0v2M8Q+T/tmoMo29tH0vt5bId2NGeFF18ZAr1dSGBl6cCLw4HVIS BQ== Received: from nasanppmta04.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3u4yk0sdx1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 03 Nov 2023 22:38:17 +0000 Received: from nasanex01c.na.qualcomm.com (nasanex01c.na.qualcomm.com [10.45.79.139]) by NASANPPMTA04.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 3A3McH5M008029 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 3 Nov 2023 22:38:17 GMT Received: from [10.216.13.74] (10.80.80.8) by nasanex01c.na.qualcomm.com (10.45.79.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.39; Fri, 3 Nov 2023 15:38:12 -0700 Message-ID: Date: Sat, 4 Nov 2023 04:08:08 +0530 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 2/3] iommu/arm-smmu: add ACTLR data and support for SM8550 Content-Language: en-US To: Dmitry Baryshkov CC: , , , , , , , , , , , References: <20231103215124.1095-1-quic_bibekkum@quicinc.com> <20231103215124.1095-3-quic_bibekkum@quicinc.com> From: Bibek Kumar Patro In-Reply-To: Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nasanex01c.na.qualcomm.com (10.45.79.139) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: 1HFkuZkfmFf7LvMr4VPk758zhEQIyQbn X-Proofpoint-GUID: 1HFkuZkfmFf7LvMr4VPk758zhEQIyQbn X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.987,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-11-03_21,2023-11-02_03,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 mlxscore=0 spamscore=0 malwarescore=0 suspectscore=0 impostorscore=0 mlxlogscore=999 bulkscore=0 lowpriorityscore=0 adultscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2310240000 definitions=main-2311030192 X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on agentk.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (agentk.vger.email [0.0.0.0]); Fri, 03 Nov 2023 15:38:43 -0700 (PDT) On 11/4/2023 3:31 AM, Dmitry Baryshkov wrote: > On Fri, 3 Nov 2023 at 23:53, Bibek Kumar Patro > wrote: >> >> Add ACTLR data table for SM8550 along with support for >> same including SM8550 specific implementation operations. >> >> Signed-off-by: Bibek Kumar Patro >> --- >> drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 85 +++++++++++++++++++++- >> 1 file changed, 81 insertions(+), 4 deletions(-) >> >> diff --git a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c >> index 68c1f4908473..590b7c285299 100644 >> --- a/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c >> +++ b/drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c >> @@ -25,6 +25,64 @@ struct actlr_data { >> u32 actlr; >> }; >> >> +static const struct actlr_data sm8550_apps_actlr_data[] = { >> + { 0x18a0, 0x0000, 0x00000103 }, >> + { 0x18e0, 0x0000, 0x00000103 }, >> + { 0x0800, 0x0020, 0x00000001 }, >> + { 0x1800, 0x00c0, 0x00000001 }, >> + { 0x1820, 0x0000, 0x00000001 }, >> + { 0x1860, 0x0000, 0x00000001 }, >> + { 0x0c01, 0x0020, 0x00000303 }, >> + { 0x0c02, 0x0020, 0x00000303 }, >> + { 0x0c03, 0x0020, 0x00000303 }, >> + { 0x0c04, 0x0020, 0x00000303 }, >> + { 0x0c05, 0x0020, 0x00000303 }, >> + { 0x0c06, 0x0020, 0x00000303 }, >> + { 0x0c07, 0x0020, 0x00000303 }, >> + { 0x0c08, 0x0020, 0x00000303 }, >> + { 0x0c09, 0x0020, 0x00000303 }, >> + { 0x0c0c, 0x0020, 0x00000303 }, >> + { 0x0c0d, 0x0020, 0x00000303 }, >> + { 0x0c0e, 0x0020, 0x00000303 }, >> + { 0x0c0f, 0x0020, 0x00000303 }, >> + { 0x1961, 0x0000, 0x00000303 }, >> + { 0x1962, 0x0000, 0x00000303 }, >> + { 0x1963, 0x0000, 0x00000303 }, >> + { 0x1964, 0x0000, 0x00000303 }, >> + { 0x1965, 0x0000, 0x00000303 }, >> + { 0x1966, 0x0000, 0x00000303 }, >> + { 0x1967, 0x0000, 0x00000303 }, >> + { 0x1968, 0x0000, 0x00000303 }, >> + { 0x1969, 0x0000, 0x00000303 }, >> + { 0x196c, 0x0000, 0x00000303 }, >> + { 0x196d, 0x0000, 0x00000303 }, >> + { 0x196e, 0x0000, 0x00000303 }, >> + { 0x196f, 0x0000, 0x00000303 }, >> + { 0x19c1, 0x0010, 0x00000303 }, >> + { 0x19c2, 0x0010, 0x00000303 }, >> + { 0x19c3, 0x0010, 0x00000303 }, >> + { 0x19c4, 0x0010, 0x00000303 }, >> + { 0x19c5, 0x0010, 0x00000303 }, >> + { 0x19c6, 0x0010, 0x00000303 }, >> + { 0x19c7, 0x0010, 0x00000303 }, >> + { 0x19c8, 0x0010, 0x00000303 }, >> + { 0x19c9, 0x0010, 0x00000303 }, >> + { 0x19cc, 0x0010, 0x00000303 }, >> + { 0x19cd, 0x0010, 0x00000303 }, >> + { 0x19ce, 0x0010, 0x00000303 }, >> + { 0x19cf, 0x0010, 0x00000303 }, >> + { 0x1c00, 0x0002, 0x00000103 }, >> + { 0x1c01, 0x0000, 0x00000001 }, >> + { 0x1920, 0x0000, 0x00000103 }, >> + { 0x1923, 0x0000, 0x00000103 }, >> + { 0x1924, 0x0000, 0x00000103 }, >> + { 0x1940, 0x0000, 0x00000103 }, >> + { 0x1941, 0x0004, 0x00000103 }, >> + { 0x1943, 0x0000, 0x00000103 }, >> + { 0x1944, 0x0000, 0x00000103 }, >> + { 0x1947, 0x0000, 0x00000103 }, >> +}; > > This is nearly impossible to handle. > Please add defines for 0x1, 0x103 and 0x303. Also please consider > adding comments for the devices. > Ack, Initially added the comments for devices, but since only driver is handling this data, and clients won't refer this so removed it. Will consider adding it back. This actlr field value might different (other than 0x1,0x103,0x303) in other platforms as per my anticipation, depending on the bit settings, so won't the defines change with different platforms? Hence this register setting value might be apt? >> + >> static struct qcom_smmu *to_qcom_smmu(struct arm_smmu_device *smmu) >> { >> return container_of(smmu, struct qcom_smmu, smmu); >> @@ -444,6 +502,16 @@ static const struct arm_smmu_impl sdm845_smmu_500_impl = { >> .tlb_sync = qcom_smmu_tlb_sync, >> }; >> >> + >> +static const struct arm_smmu_impl sm8550_smmu_500_impl = { >> + .init_context = qcom_smmu_init_context, >> + .cfg_probe = qcom_smmu_cfg_probe, >> + .def_domain_type = qcom_smmu_def_domain_type, >> + .reset = arm_mmu500_reset, >> + .write_s2cr = qcom_smmu_write_s2cr, >> + .tlb_sync = qcom_smmu_tlb_sync, >> +}; >> + >> static const struct arm_smmu_impl qcom_adreno_smmu_v2_impl = { >> .init_context = qcom_adreno_smmu_init_context, >> .def_domain_type = qcom_smmu_def_domain_type, >> @@ -507,6 +575,11 @@ static const struct qcom_smmu_config qcom_smmu_impl0_cfg = { >> .reg_offset = qcom_smmu_impl0_reg_offset, >> }; >> >> +static const struct actlr_config sm8550_actlrcfg = { >> + .adata = sm8550_apps_actlr_data, >> + .size = ARRAY_SIZE(sm8550_apps_actlr_data), >> +}; >> + >> /* >> * It is not yet possible to use MDP SMMU with the bypass quirk on the msm8996, >> * there are not enough context banks. >> @@ -530,16 +603,20 @@ static const struct qcom_smmu_match_data sdm845_smmu_500_data = { >> /* Also no debug configuration. */ >> }; >> >> + >> +static const struct qcom_smmu_match_data sm8550_smmu_500_impl0_data = { >> + .impl = &sm8550_smmu_500_impl, >> + .adreno_impl = &qcom_adreno_smmu_500_impl, >> + .cfg = &qcom_smmu_impl0_cfg, >> + .actlrcfg = &sm8550_actlrcfg, >> +}; > > This structure doesn't seem to be linked. Did you test your patches? > Apologies Dmitry, just checked back my patches, I tested it but while refining the patches I somehow missed this link { .compatible = "qcom,sm8550-smmu-500", .data = &sm8550_smmu_500_impl0_data }; in below qcom_smmu_500_impl0_data structure. I will take care of this in next version. >> + >> static const struct qcom_smmu_match_data qcom_smmu_500_impl0_data = { >> .impl = &qcom_smmu_500_impl, >> .adreno_impl = &qcom_adreno_smmu_500_impl, >> .cfg = &qcom_smmu_impl0_cfg, >> }; >> >> -/* >> - * Do not add any more qcom,SOC-smmu-500 entries to this list, unless they need >> - * special handling and can not be covered by the qcom,smmu-500 entry. >> - */ > > Leave the comment in place. > Thanks for this comment which helped me to note the above mentioned mistake. >> static const struct of_device_id __maybe_unused qcom_smmu_impl_of_match[] = { >> { .compatible = "qcom,msm8996-smmu-v2", .data = &msm8996_smmu_data }, >> { .compatible = "qcom,msm8998-smmu-v2", .data = &qcom_smmu_v2_data }, >> -- >> 2.17.1 >> > >