From patchwork Mon Jan 8 15:27:32 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mukesh Ojha X-Patchwork-Id: 186044 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:37c1:b0:101:2151:f287 with SMTP id y1csp1090623dyq; Mon, 8 Jan 2024 07:29:01 -0800 (PST) X-Google-Smtp-Source: AGHT+IE3To2g9FTVaxxLCvkT2A1PIRSPQL1bOHRAa2zuvNc9BDFeO8ksOyflNHz4iRHiSTxtNDsl X-Received: by 2002:a17:90b:15c9:b0:28c:ef28:b451 with SMTP id lh9-20020a17090b15c900b0028cef28b451mr1120115pjb.83.1704727741721; Mon, 08 Jan 2024 07:29:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1704727741; cv=none; d=google.com; s=arc-20160816; b=o/SEMK3iqQCrTSqkvj5e1l3KIe55FJFx/4r0X+dEf6W3vh3iNDvK3O6QTVTOF0fuN4 1fqain8+gqLo9ms2l6TDIcCHkqEjtLemzOy9RQ2TBX4bkp3R173V6MoIXGvV/ZEDZo83 WozKrImM/ejBcVlNFiAewGlNcImwczIIcGc9GdSRyyFEvwvC5iI77I2/7K+YkiYlDujF fVvXiPpzlFB/aHH3D+T2at7Ci7sVC4RKnS2dgGSaCs8ulqwfQ9ldzZc9an53fB0Ovq/r 1tRUsBvssngyEWCfrl8rg1owWW3T0BiIwk9nL/Ah2s1R9t7yfWYzDGIC1FaxEMFuP8HF j7eQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=4qKFzzVkAJJ2WN9UITkdJknNja53E7RfSyVdiQRQD5E=; fh=EORLdVRmUcp+4Oo0bXlo1MO1s6RsUC40cb4cSgkJG+M=; b=Ct0XW/UzHrUnF0UOWoUYnL9lnICJnp3xui4vn+23rECMo+GJvlhwEd+PrdR7Eu8OrP 0VHxuJ8YFHVJIi/IGIGypKcVReG2Qv2MVm2MbZS8JRTmMkeDPl+VGwUoTquQjtv4ABWb 5UB2w/+VCJE/Yk+9KaU37Mw+wm9s3DkNHSBWCZULsch/Yl9qFPvaSjM5Bm7y9lEWZiFm sAgGcL+hBIRc6mXzxHRm3XyvE34dh7099zyyklLD2EMJWDvDo6ECP8Ozk/+FBiwr7bMr V4Xa/xovfu8F51ceBuCBDD5h+mHaeYWgwrJxFz57wGJsiN0pUgZcTQa9Dz3Nk98/Vw3s kZkw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=VLmvoI8d; spf=pass (google.com: domain of linux-kernel+bounces-19766-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-19766-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id v18-20020a17090ac91200b0028d4f90399esi2655637pjt.135.2024.01.08.07.29.01 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 08 Jan 2024 07:29:01 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-19766-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=VLmvoI8d; spf=pass (google.com: domain of linux-kernel+bounces-19766-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-19766-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 7FB8B2829E0 for ; Mon, 8 Jan 2024 15:29:01 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id B6F68524D8; Mon, 8 Jan 2024 15:28:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="VLmvoI8d" X-Original-To: linux-kernel@vger.kernel.org Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A0CF351C2B; Mon, 8 Jan 2024 15:28:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=quicinc.com Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id 408D50cb016368; Mon, 8 Jan 2024 15:28:07 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h= from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-type; s=qcppdkim1; bh=4qKFzzVkAJJ2WN9UITkd JknNja53E7RfSyVdiQRQD5E=; b=VLmvoI8dkmdDmoUlYucBJmoirlFobWSkOdi0 2/sJ1yiWPVczv+RPM1fD6rynPopJdUcCM8WunRU8CuF0l5IG1kSVUF2hbCix7XLn TsU6tnNCJEX/L8wghvjCyrI+UA9m8l3uxn2JdQT7lZvF/+AoRXu7x/x6s6e6iRBb wK/gQm54x2FEnuGSr8va5zi4EdGkQdMY5h1TdOHJk0V6OaLQR0QqxkXxCfMRZpy7 yGivAk0kLgU4EjEv6wwnGLx4lYwp3afMARAwbgcxBZ1LTV6A1u7432qbTnNlf7EC Ep548q59uqX1pyhw38/MQUsZnnnJ8sMlprG5dSiMF5N3NE6W2w== Received: from nasanppmta04.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3vghmbr95m-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 08 Jan 2024 15:28:07 +0000 (GMT) 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 408FS6og006120 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 8 Jan 2024 15:28:06 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; Mon, 8 Jan 2024 07:28:03 -0800 From: Mukesh Ojha To: , , CC: , , , Mukesh Ojha , Poovendhan Selvaraj Subject: [PATCH v11 2/4] firmware: qcom: scm: Modify only the download bits in TCSR register Date: Mon, 8 Jan 2024 20:57:32 +0530 Message-ID: <1704727654-13999-3-git-send-email-quic_mojha@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1704727654-13999-1-git-send-email-quic_mojha@quicinc.com> References: <1704727654-13999-1-git-send-email-quic_mojha@quicinc.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 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: unPG0NM15vDAEPsNYJijV7F9SMFN3BBW X-Proofpoint-GUID: unPG0NM15vDAEPsNYJijV7F9SMFN3BBW 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-09_02,2023-12-07_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=999 mlxscore=0 adultscore=0 malwarescore=0 priorityscore=1501 bulkscore=0 lowpriorityscore=0 phishscore=0 suspectscore=0 clxscore=1015 spamscore=0 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2311290000 definitions=main-2401080132 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1787536596593983069 X-GMAIL-MSGID: 1787536596593983069 Crashdump collection is done based on DLOAD bits of TCSR register. To retain other bits, scm driver need to read the register and modify only the DLOAD bits, as other bits in TCSR may have their own significance. Co-developed-by: Poovendhan Selvaraj Signed-off-by: Poovendhan Selvaraj Signed-off-by: Mukesh Ojha Tested-by: Kathiravan Thirumoorthy # IPQ9574 and IPQ5332 Reviewed-by: Dmitry Baryshkov Reviewed-by: Elliot Berman --- drivers/firmware/qcom/qcom_scm.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_scm.c index 25549178a30f..4421f219fe9a 100644 --- a/drivers/firmware/qcom/qcom_scm.c +++ b/drivers/firmware/qcom/qcom_scm.c @@ -4,6 +4,8 @@ */ #include +#include +#include #include #include #include @@ -117,6 +119,12 @@ static const u8 qcom_scm_cpu_warm_bits[QCOM_SCM_BOOT_MAX_CPUS] = { #define QCOM_SMC_WAITQ_FLAG_WAKE_ONE BIT(0) #define QCOM_SMC_WAITQ_FLAG_WAKE_ALL BIT(1) +#define QCOM_DLOAD_MASK GENMASK(5, 4) +enum qcom_dload_mode { + QCOM_DLOAD_NODUMP = 0, + QCOM_DLOAD_FULLDUMP = 1, +}; + static const char * const qcom_scm_convention_names[] = { [SMC_CONVENTION_UNKNOWN] = "unknown", [SMC_CONVENTION_ARM_32] = "smc arm 32", @@ -523,6 +531,7 @@ static int __qcom_scm_set_dload_mode(struct device *dev, bool enable) static void qcom_scm_set_download_mode(bool enable) { + u32 val = enable ? QCOM_DLOAD_FULLDUMP : QCOM_DLOAD_NODUMP; bool avail; int ret = 0; @@ -532,8 +541,9 @@ static void qcom_scm_set_download_mode(bool enable) if (avail) { ret = __qcom_scm_set_dload_mode(__scm->dev, enable); } else if (__scm->dload_mode_addr) { - ret = qcom_scm_io_writel(__scm->dload_mode_addr, - enable ? QCOM_SCM_BOOT_SET_DLOAD_MODE : 0); + ret = qcom_scm_io_rmw(__scm->dload_mode_addr, + QCOM_DLOAD_MASK, + FIELD_PREP(QCOM_DLOAD_MASK, val)); } else { dev_err(__scm->dev, "No available mechanism for setting download mode\n");