Received: by 2002:a05:7412:98c1:b0:fa:551:50a7 with SMTP id kc1csp1695954rdb; Mon, 8 Jan 2024 07:28:46 -0800 (PST) X-Google-Smtp-Source: AGHT+IE07nSJO9W3+YTeW1o3y/65w9Ia1LWMuGKbU+fCbW5oE539VH0U2skQ1QnZbsu72/0E/fEB X-Received: by 2002:a05:6e02:1bab:b0:360:6d1e:ad35 with SMTP id n11-20020a056e021bab00b003606d1ead35mr6917851ili.4.1704727726425; Mon, 08 Jan 2024 07:28:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1704727726; cv=none; d=google.com; s=arc-20160816; b=vHSrYZVVuJup6D0f18WJ1j+vNTi3WzeXxNre/sPAC8kgrZfem9xHszkNsRVgXYfHWL KgBEBm8gOjjznTYLRC6xVnTyn41YGkBHX3b3Jc9YwY1W3l/B+7Yd8qHhK+R4rXZQ4kX4 oWptpCOe7f+0jy1bS2sHiV/fs3UfaU4FVsgHXVX6fTQg7f7Eq/JSNPrslyXko6cPi2iD QcKig3Wy5s4GRZhVv5lbo6jmiAmrsYA/kB0cL52ulGrBECjRpXujzNKb2aMChyqCCW2D FPI9wfk8iOO8cUpJkZ4XcWZe0jaJqSA8fT5Px7bQmS/VNylIf+Cc8GScjO41w39LKnFG 7kiQ== 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-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-19766-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id n16-20020a634d50000000b005cd77a0fd8dsi6164181pgl.484.2024.01.08.07.28.46 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 08 Jan 2024 07:28:46 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-19766-linux.lists.archive=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-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-19766-linux.lists.archive=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 158E6282F32 for ; Mon, 8 Jan 2024 15:28:46 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id D8D4551C5F; Mon, 8 Jan 2024 15:28:13 +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 Content-Type: text/plain 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 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 --- 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"); -- 2.7.4