Received: by 2002:a05:7412:8d10:b0:f3:1519:9f41 with SMTP id bj16csp1058553rdb; Wed, 6 Dec 2023 07:33:24 -0800 (PST) X-Google-Smtp-Source: AGHT+IGJc6b2yRdaIUJXQgjKL60RPyaOojYT8k7SbL3kTm6qv4dQGlh+Z/EJAkrvO4g4VTut+JP2 X-Received: by 2002:a17:90a:1d6:b0:286:a94a:867c with SMTP id 22-20020a17090a01d600b00286a94a867cmr1117623pjd.79.1701876804059; Wed, 06 Dec 2023 07:33:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701876804; cv=none; d=google.com; s=arc-20160816; b=O6bS0TyNlRp65JII6P/ElORVEfyGF781HQIyCatpSsSZIdq4HKfYtIygPYdSP/qOsL TXGEz+UWeqaZW8pkMBRhbkgyrLXPP0vkrliB/9ACaNtvrcWIDRlKrmJ7H328N6/6K7Pv 8zegbpul14GjBsNJY9+Afe+3GuaQ2RhVa5ul2fUxL2f1t36B7MCeZNysHDCyp8xR8ZeJ bRECoqyscLgzqJSdGqVkFAI/3AEBC8sJjWlDQtDvCMD1ABkC0gULklmnwPU195Ek8e9Q 9M8etKdmKmuC8o8g6hO5DZywLhZIKUOvlnEiowlEUOZ20EpTnVLk6azcKEPhRUwPf20D CMEQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:message-id:date:subject:cc:to:from :dkim-signature; bh=0+v0957d/kN/+y6AuFwlRdrAVFEWQc7Iw4PbjfhpUuo=; fh=wssge2W33EXVlaDpKW9cHmqjxTbmc+cuOlRRK/Uxwho=; b=cqtQAnOs1lpROCjxBv9rBficAAWhWZ8Ft5ge1ApgyLzJJ2mYzQHB2p+WaGchEmOiOT +BYxL0X4b6+bRfmg58X66mNnE2FIA40e9yBsfUlfcmG9Emy9r0e+IEoco6JpkvUrgvXH qGgXaifxQcxftmLP+cKhSY8sMGc9ieiSkDbY9Fk7U/zQe3xnUyuzDn2LwZw2GZX3BagX Lf5ZzPBiEFw+nJ12m3bc/Mfh27ZrN52Be0P5KSoZmed5Q9XkF8YWmOK1zf6aUwkIU0uq hD5ThYkYq/fh6L3tqrW/LPbNK6cHpoO9fp810g7XDwRLMAhTaI2FpMTP7TkdKiwR6wkf gNyw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=fkWBZvX3; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 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 pete.vger.email (pete.vger.email. [2620:137:e000::3:6]) by mx.google.com with ESMTPS id k15-20020a17090a404f00b0027ffa51a805si32148pjg.38.2023.12.06.07.33.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Dec 2023 07:33:24 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) client-ip=2620:137:e000::3:6; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=fkWBZvX3; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 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 pete.vger.email (Postfix) with ESMTP id E838081BFCCD; Wed, 6 Dec 2023 07:33:20 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at pete.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1379142AbjLFPdF (ORCPT + 99 others); Wed, 6 Dec 2023 10:33:05 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40112 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1379179AbjLFPdD (ORCPT ); Wed, 6 Dec 2023 10:33:03 -0500 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2816AD53; Wed, 6 Dec 2023 07:33:09 -0800 (PST) Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 3B6EmDkd017392; Wed, 6 Dec 2023 15:33:04 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : mime-version : content-type; s=qcppdkim1; bh=0+v0957d/kN/+y6AuFwlRdrAVFEWQc7Iw4PbjfhpUuo=; b=fkWBZvX38Y2i/BPC+otfpnZw+9GG9YDHOZ2j4zXH1NDvoeRK6rG1phRi4zZ5/4Ebr3bP ifkovyRtwJ8T/+jikrDmoH4FxH2Ul0fOB0X8Td4m+4LhLNGgLAA9w6sCIYz2RIKFVOAn 35sguuV2dby6BQQPcOmCp8X7k+L3JF2DOiPw86FKo5vufyxsGFrAoCQGYqglbYS2UDV1 rBZ2tU4Kj9huXEXhLUz5nhnRH5QiuQcQtVuXXlL4QkFGqvRqAPkYI1PMyFO/PpA64wA5 7s3zpdPMlE7ZFwbJdEoar6evTvIRoPVHKilec240GL5aq/jzP5jfCWIMKS3665HcS5bY uQ== Received: from nasanppmta01.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3utd1n26g2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 06 Dec 2023 15:33:04 +0000 Received: from nasanex01c.na.qualcomm.com (nasanex01c.na.qualcomm.com [10.45.79.139]) by NASANPPMTA01.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 3B6FX2AW016825 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 6 Dec 2023 15:33:03 GMT Received: from hu-mojha-hyd.qualcomm.com (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.40; Wed, 6 Dec 2023 07:33:00 -0800 From: Mukesh Ojha To: , , CC: , , "Atul Dhudase" , Mukesh Ojha Subject: [PATCH v2] soc: qcom: llcc: Fix dis_cap_alloc and retain_on_pc configuration Date: Wed, 6 Dec 2023 21:02:51 +0530 Message-ID: <1701876771-10695-1-git-send-email-quic_mojha@quicinc.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Content-Type: text/plain 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: idjTlTrYVDf8G4Ni8LTz4fqmx6caulYF X-Proofpoint-GUID: idjTlTrYVDf8G4Ni8LTz4fqmx6caulYF X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-12-06_13,2023-12-06_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 lowpriorityscore=0 suspectscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 adultscore=0 bulkscore=0 mlxscore=0 mlxlogscore=999 phishscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311290000 definitions=main-2312060125 X-Spam-Status: No, score=1.6 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SORTED_RECIPS,SPF_HELO_NONE,SPF_PASS,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 pete.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 (pete.vger.email [0.0.0.0]); Wed, 06 Dec 2023 07:33:21 -0800 (PST) X-Spam-Level: * From: Atul Dhudase Commit c14e64b46944 ("soc: qcom: llcc: Support chipsets that can write to llcc") add the support for chipset where capacity based allocation and retention through power collapse can be programmed based on content of SCT table mentioned in the llcc driver where the target like sdm845 where the entire programming related to it is controlled in firmware. However, the commit introduces a bug where capacity/retention register get overwritten each time it gets programmed for each slice and that results in misconfiguration of the register based on SCT table and that is not expected behaviour instead it should be read modify write to retain the configuration of other slices. This issue is totally caught from code review and programming test and not through any power/perf numbers so, it is not known what impact this could make if we don't have this change however, this feature are for these targets and they should have been programmed accordingly as per their configuration mentioned in SCT table like others bits information. This change brings one difference where it keeps capacity/retention bits of the slices that are not mentioned in SCT table in unknown state where as earlier it was initialized to zero. Fixes: c14e64b46944 ("soc: qcom: llcc: Support chipsets that can write to llcc") Signed-off-by: Atul Dhudase Signed-off-by: Mukesh Ojha --- Changes in v2: https://lore.kernel.org/lkml/20231103105712.1159213-1-quic_adhudase@quicinc.com/ - Rewritten the commit text based on feedback in v1 - Aligned the lines in the code. drivers/soc/qcom/llcc-qcom.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/soc/qcom/llcc-qcom.c b/drivers/soc/qcom/llcc-qcom.c index fb4085b7cb19..57d47dcf11b9 100644 --- a/drivers/soc/qcom/llcc-qcom.c +++ b/drivers/soc/qcom/llcc-qcom.c @@ -941,15 +941,15 @@ static int _qcom_llcc_cfg_program(const struct llcc_slice_config *config, u32 disable_cap_alloc, retain_pc; disable_cap_alloc = config->dis_cap_alloc << config->slice_id; - ret = regmap_write(drv_data->bcast_regmap, - LLCC_TRP_SCID_DIS_CAP_ALLOC, disable_cap_alloc); + ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_SCID_DIS_CAP_ALLOC, + BIT(config->slice_id), disable_cap_alloc); if (ret) return ret; if (drv_data->version < LLCC_VERSION_4_1_0_0) { retain_pc = config->retain_on_pc << config->slice_id; - ret = regmap_write(drv_data->bcast_regmap, - LLCC_TRP_PCB_ACT, retain_pc); + ret = regmap_update_bits(drv_data->bcast_regmap, LLCC_TRP_PCB_ACT, + BIT(config->slice_id), retain_pc); if (ret) return ret; } -- 2.7.4