From patchwork Fri Mar 17 16:27:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mukesh Ojha X-Patchwork-Id: 71359 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp442208wrt; Fri, 17 Mar 2023 09:41:40 -0700 (PDT) X-Google-Smtp-Source: AK7set8VElY7aNfdifYnSalMV1MgUzAwgfz8CfXmQ20eRIfJiQ1ijbgPqSB+ic2OR5ro0GVdZ0IA X-Received: by 2002:a17:90a:4ca4:b0:23d:1bef:8594 with SMTP id k33-20020a17090a4ca400b0023d1bef8594mr6950097pjh.1.1679071300078; Fri, 17 Mar 2023 09:41:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679071300; cv=none; d=google.com; s=arc-20160816; b=rWY+/b+z5sJkq9By1xR7yfC8rTv7wHzo7fu5b47Jk174gUOffzI/wJgBzurSk2/LS1 fFzfKvzwTUjhck5eOQA5Pt20zE4MIv+OOpdU7JE+Mm7Pu3UVpXfNXdoUdRZTfvnRQ67+ TUwce7CxLB543J5OWUtMImb0wFUTTjbjoDwE7ob3w+QDztrhjzO+dR8IcYBEbsxYxcdw gvG29EMdq4tkMkO+7KhsICXFpQhc9N9uiPYcJs84+zCfbgtnYan9uKaMCkAqO4FLBDEO V789ABS3WJX+a3KHb1Emjy9EaW81EzRi3plidTF4jfrG5uSPhR1/URDxxihtcEsrlGS2 KuLg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=nkBsAZfODivvEozfpAZNG7SNQg7Qpw0wy0KI5RRCxaw=; b=S31gm8OOi7zOuclfI2mg50agQj8VqLAyMJP6QHuXBFIyONzXUgiONgt2ukvnz+YTnu uro+loLVOPs4wsn6ZOu67gXTKO+mmiFsJVz8CTlqAOufVQiUPVEWjD9ll4KehMToMFrA s9gpQJ/WwOHrxYD3/EtTBnlUZ7ytG6jak/J3RATfnSwe6LwAmoPl3EXu9hy7CN5W7Wpk SXpes63NT8YPWePbjOPy+UgyHKpm5ubpnE4UPf3MjGX27VmNAl19lW4DYIFOs+peSxZ3 L7ujNuCuUH/Aa0CDlIQiPXW9f6gFFzMhvzwlI+86EAGkZWdlEBPtufDxn/bVWYf6HMuw XNJA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=e8X6xN0p; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id cu6-20020a17090afa8600b00215dedefc32si2516077pjb.163.2023.03.17.09.41.27; Fri, 17 Mar 2023 09:41:40 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=e8X6xN0p; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230011AbjCQQ2w (ORCPT + 99 others); Fri, 17 Mar 2023 12:28:52 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42452 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229599AbjCQQ2q (ORCPT ); Fri, 17 Mar 2023 12:28:46 -0400 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1C0ED4E5F7; Fri, 17 Mar 2023 09:28:32 -0700 (PDT) Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 32H90I3q017582; Fri, 17 Mar 2023 16:28:29 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=nkBsAZfODivvEozfpAZNG7SNQg7Qpw0wy0KI5RRCxaw=; b=e8X6xN0p18Ikao4Ni+u0cMFOpLXbogh/pfvGYK3yQkJG5iw1u7iT0Od7OTF3UsVRurgt nZK+dGKQjdtXrMnwgKYQow00u5CDFk2HWjuK8EweKzT3u7MbCcaazzQACnq3U8RJQs6v 5A63KVKQ3FozEWyzaK3WI6aT7dhWoWEeewqZnKkeYiSDy2dYl1hd+7OEocgCxuz0ZwqA rLPsHrbr7fQLi2J+pVunors3xkzCMbOqfKyLYmNFXKREFptRSNJkEP1+Mo85yGEg1bUz FbLRSX272XKMw2YiKH31lmwb68v+vgydSUXFjUTXy2gzdHztuyaf0y45VDBxEH3JeLZz aw== Received: from nasanppmta03.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3pcn6f1hhb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 17 Mar 2023 16:28:29 +0000 Received: from nasanex01c.na.qualcomm.com (nasanex01c.na.qualcomm.com [10.45.79.139]) by NASANPPMTA03.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 32HGSSu8016728 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 17 Mar 2023 16:28:28 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.986.41; Fri, 17 Mar 2023 09:28:26 -0700 From: Mukesh Ojha To: , , , CC: , , , Mukesh Ojha Subject: [PATCH v3 1/5] firmware: qcom_scm: provide a read-modify-write function Date: Fri, 17 Mar 2023 21:57:58 +0530 Message-ID: <1679070482-8391-2-git-send-email-quic_mojha@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1679070482-8391-1-git-send-email-quic_mojha@quicinc.com> References: <1679070482-8391-1-git-send-email-quic_mojha@quicinc.com> MIME-Version: 1.0 X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) 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-GUID: uUt2XbfI64IbJNjCfQHJ4ig6XrSdfnhm X-Proofpoint-ORIG-GUID: uUt2XbfI64IbJNjCfQHJ4ig6XrSdfnhm X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-03-17_10,2023-03-16_02,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 adultscore=0 priorityscore=1501 spamscore=0 clxscore=1015 suspectscore=0 malwarescore=0 mlxlogscore=601 lowpriorityscore=0 impostorscore=0 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2303150002 definitions=main-2303170110 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760633867354635097?= X-GMAIL-MSGID: =?utf-8?q?1760633867354635097?= It was released by Srinivas K. that there is a need of read-modify-write scm exported function so that it can be used by multiple clients. Let's introduce qcom_scm_io_update_field() which masks out the bits and write the passed value to that bit-offset. Subsequent patch will use this function. Suggested-by: Srinivas Kandagatla Signed-off-by: Mukesh Ojha --- drivers/firmware/qcom_scm.c | 15 +++++++++++++++ include/linux/firmware/qcom/qcom_scm.h | 2 ++ 2 files changed, 17 insertions(+) diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c index 3e020d1..aca2556 100644 --- a/drivers/firmware/qcom_scm.c +++ b/drivers/firmware/qcom_scm.c @@ -407,6 +407,21 @@ int qcom_scm_set_remote_state(u32 state, u32 id) } EXPORT_SYMBOL(qcom_scm_set_remote_state); +int qcom_scm_io_update_field(phys_addr_t addr, unsigned int mask, unsigned int val) +{ + unsigned int old, new; + int ret; + + ret = qcom_scm_io_readl(addr, &old); + if (ret) + return ret; + + new = (old & ~mask) | val; + + return qcom_scm_io_writel(addr, new); +} +EXPORT_SYMBOL(qcom_scm_io_update_field); + static int __qcom_scm_set_dload_mode(struct device *dev, bool enable) { struct qcom_scm_desc desc = { diff --git a/include/linux/firmware/qcom/qcom_scm.h b/include/linux/firmware/qcom/qcom_scm.h index 1e449a5..203a781 100644 --- a/include/linux/firmware/qcom/qcom_scm.h +++ b/include/linux/firmware/qcom/qcom_scm.h @@ -84,6 +84,8 @@ extern bool qcom_scm_pas_supported(u32 peripheral); extern int qcom_scm_io_readl(phys_addr_t addr, unsigned int *val); extern int qcom_scm_io_writel(phys_addr_t addr, unsigned int val); +extern int qcom_scm_io_update_field(phys_addr_t addr, unsigned int mask, + unsigned int val); extern bool qcom_scm_restore_sec_cfg_available(void); extern int qcom_scm_restore_sec_cfg(u32 device_id, u32 spare); From patchwork Fri Mar 17 16:27:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mukesh Ojha X-Patchwork-Id: 71354 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp436526wrt; Fri, 17 Mar 2023 09:29:56 -0700 (PDT) X-Google-Smtp-Source: AK7set8mpLdQat3Wo9sG1UUcpPRsaxRT+Oac6RRQV9SDzaTdr/zjC4k4KTYLQIPk5BH6JiDJQuYV X-Received: by 2002:a17:90a:7182:b0:236:7144:669f with SMTP id i2-20020a17090a718200b002367144669fmr9869022pjk.2.1679070596434; Fri, 17 Mar 2023 09:29:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679070596; cv=none; d=google.com; s=arc-20160816; b=DkQa0OuFlI06XRIQ83FnaOwSegpkx7cEB0WZTzHgHNKQBwG2BaI1eUJXP/y9zDJR2/ e2p3edDhZqryx6JrjHGReqBYZCa5o/Zqev+LkYBCoGnIrZtxR+G8392DpW5Axpq61tVs 3huIVktWKPRqLmU2zJJMsqSVPb5bP9FTNOaQQ7ynBFFB7OsmrQjAAfPxJuxs1ON5E39J dkqJuWVzFfi2z2Zz7LxwTbQocZiSo8OY3Lafv8IqUqg2ioBSfyJduUkQQ+AqeocTuxme QMjhmXTbE3JDI2UtVNXVUdsgWgGzJXsNZ0JMsqUyDtn9+Z16ZThxHWVw9vJ5hXMsWUtr hgRg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=45Sa0KvhtyZyoLD9CE/N9cMwquHru6OA03DUNWKKcFs=; b=IT6Ya98GYsISgEyxALn8Cj5Sla42X7OdDlZnNZION77AcTsAIG9Gl6zoOBmYvQAzUK FqpcbJ/zEQPHI0pqZGb0HgTDHuo4olMOhCkqwBKVbKO2I8on3lm4vH/UmG7J0t+OfBnx MjiRgZZCb4xD4r2k3kQnDys9fVwvL8iljUChqoHXC8AYzh43FkAgT9pLvpiO+fU8XJLq 44Fbg2un+q4sNFQhQ53S99cMi1D2CSlRyITfYKLjdC3LUQJ8+rkdtd3EdZJVZTwvpfTw qqmaVFFgG6VUgWuZAChrudJvvgP7JNY3xglg7hfM8jwUVPsTk4Y65P9pXyWcuRQodTZW QNYw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b="YQF/Cw3m"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ot2-20020a17090b3b4200b0023495f71234si9300517pjb.67.2023.03.17.09.29.40; Fri, 17 Mar 2023 09:29:56 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b="YQF/Cw3m"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229562AbjCQQ24 (ORCPT + 99 others); Fri, 17 Mar 2023 12:28:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42454 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229647AbjCQQ2q (ORCPT ); Fri, 17 Mar 2023 12:28:46 -0400 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A0B7D52914; Fri, 17 Mar 2023 09:28:34 -0700 (PDT) Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 32H90I3r017582; Fri, 17 Mar 2023 16:28:32 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=45Sa0KvhtyZyoLD9CE/N9cMwquHru6OA03DUNWKKcFs=; b=YQF/Cw3mhBYIunNTh/caRsS69G+UAFVurB1+olgAz7INQpIG6uQPgoXscKrn0NmObw6I jW3Sr7ppvOtJVXadlgJgfA9vJR0TM0/dM2msOnxaMxj1SmtO8nIGhcI567SNvloSAza0 T4jRAVo+1/ZICa0DbiIoxXz0B0ZT8Tk+3pfVGZlGiaNQImlwXpqaKLZYUs1pvFRqX6pB q0dDfZzHgqnZWAcI1k+YjKlxsxBQMAFxlb2vZfLtkgqbi2r8Eqg0lexTfhIiCSPMJdCs oXOFRGyLZE5ojBFUbKPvzTCaUdQMZGVuzKAB00STfp2ZMzMHOoHya8mFn8D8d25rIks7 jg== Received: from nasanppmta02.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3pcn6f1hhh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 17 Mar 2023 16:28:32 +0000 Received: from nasanex01c.na.qualcomm.com (nasanex01c.na.qualcomm.com [10.45.79.139]) by NASANPPMTA02.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 32HGSVfQ031328 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 17 Mar 2023 16:28:31 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.986.41; Fri, 17 Mar 2023 09:28:28 -0700 From: Mukesh Ojha To: , , , CC: , , , Mukesh Ojha Subject: [PATCH v3 2/5] pinctrl: qcom: Use qcom_scm_io_update_field() Date: Fri, 17 Mar 2023 21:57:59 +0530 Message-ID: <1679070482-8391-3-git-send-email-quic_mojha@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1679070482-8391-1-git-send-email-quic_mojha@quicinc.com> References: <1679070482-8391-1-git-send-email-quic_mojha@quicinc.com> MIME-Version: 1.0 X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) 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-GUID: FPVvtoiQVXniFzdJBhNB4yU5jGzcaQK_ X-Proofpoint-ORIG-GUID: FPVvtoiQVXniFzdJBhNB4yU5jGzcaQK_ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-03-17_10,2023-03-16_02,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 adultscore=0 priorityscore=1501 spamscore=0 clxscore=1015 suspectscore=0 malwarescore=0 mlxlogscore=650 lowpriorityscore=0 impostorscore=0 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2303150002 definitions=main-2303170110 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760633129875726305?= X-GMAIL-MSGID: =?utf-8?q?1760633129875726305?= Use qcom_scm_io_update_field() exported function introduced in last commit. Signed-off-by: Mukesh Ojha Acked-by: Linus Walleij --- drivers/pinctrl/qcom/pinctrl-msm.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/drivers/pinctrl/qcom/pinctrl-msm.c b/drivers/pinctrl/qcom/pinctrl-msm.c index daeb79a..3d3d520 100644 --- a/drivers/pinctrl/qcom/pinctrl-msm.c +++ b/drivers/pinctrl/qcom/pinctrl-msm.c @@ -1016,6 +1016,8 @@ static int msm_gpio_irq_set_type(struct irq_data *d, unsigned int type) unsigned long flags; bool was_enabled; u32 val; + u32 tmp_val; + u32 mask; if (msm_gpio_needs_dual_edge_parent_workaround(d, type)) { set_bit(d->hwirq, pctrl->dual_edge_irqs); @@ -1049,24 +1051,21 @@ static int msm_gpio_irq_set_type(struct irq_data *d, unsigned int type) * With intr_target_use_scm interrupts are routed to * application cpu using scm calls. */ + mask = (7 << g->intr_target_bit); + tmp_val = g->intr_target_kpss_val << g->intr_target_bit; if (pctrl->intr_target_use_scm) { u32 addr = pctrl->phys_base[0] + g->intr_target_reg; int ret; - qcom_scm_io_readl(addr, &val); - - val &= ~(7 << g->intr_target_bit); - val |= g->intr_target_kpss_val << g->intr_target_bit; - - ret = qcom_scm_io_writel(addr, val); + ret = qcom_scm_io_update_field(addr, mask, tmp_val); if (ret) dev_err(pctrl->dev, "Failed routing %lu interrupt to Apps proc", d->hwirq); } else { val = msm_readl_intr_target(pctrl, g); - val &= ~(7 << g->intr_target_bit); - val |= g->intr_target_kpss_val << g->intr_target_bit; + val &= ~mask; + val |= tmp_val; msm_writel_intr_target(val, pctrl, g); } From patchwork Fri Mar 17 16:28:00 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mukesh Ojha X-Patchwork-Id: 71355 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp436563wrt; Fri, 17 Mar 2023 09:30:00 -0700 (PDT) X-Google-Smtp-Source: AK7set+N8gTEpuOFJ5IDCzpZ4wv9kDR8J+mzlL1X1nv4SV0Uf29ddJqnPaFAzvrnCE2FfEiWdt/W X-Received: by 2002:a05:6a20:7f8c:b0:c7:af88:3dd8 with SMTP id d12-20020a056a207f8c00b000c7af883dd8mr10222490pzj.6.1679070600026; Fri, 17 Mar 2023 09:30:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679070600; cv=none; d=google.com; s=arc-20160816; b=ae15o/YotFDQIXXn0wG/5Tmg8Zb3BS2IBXZL6lfKgTuYu5ZU3gBRMfCa/DDks6RgwC PTHsFwFrq8CLefsPWrYbWbIXFL35z3/ZqO8+5F4MIgBd5fN+Db49daZ6F0+BBCBxNwn6 +Dg3S+2ixPoXbjCP+V+NxPGzDAE0mEX8zwztvpqfT31gnokhBq0reMXDx9FQ8yeDNh50 BV+ozc9oKe9mPBiYyazlqgOv51usnHJxhidh/0ZwlPe91HWv6osWcTUmI4St80gBAxXX XW62OqA0ww/DqLCjHuiZI0jIdzMDJdWnWaUvds9AqVkgU4VpPewhYcYr+8FuSFXihGQR qv6w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=rOqyaP58V4I+pR9h3qJL/GGfnieE1g/V9Z3CjuwrvLA=; b=ytYp0z8UlMbOPgdmI0JcND8/inWMa/bLxNk1bv3hvDMbT06yE6nW+EQ8w+wRJxiS28 GjQGkPPDqYxRDIeHkf2ghoiFYhwqFkyZ3AajJKL0ib4+spVGS277EQs66c5244HzH2SG fgDC0a3PZxqwN80w5Z1ImefjUaeGb3TchhAghsX62hjha78lOlvmONgW5p2kWwqFyEa0 edbZPlocZ2vGCikbEGGFc1Nv75Vq15HHg/yajNOEvQUmbFPiHXgAWWU5/PyTVZTX2ctf DmDgAJUSlsH9QQpJGCm/UfhlO3a2cN4lvZwSDKtz12txM3hNVM70omBJFsW638bJ99va mdLQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=VufqM+ef; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id z11-20020a6552cb000000b0050ac7d1b32asi2622676pgp.603.2023.03.17.09.29.47; Fri, 17 Mar 2023 09:30:00 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=VufqM+ef; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230084AbjCQQ27 (ORCPT + 99 others); Fri, 17 Mar 2023 12:28:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42510 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229940AbjCQQ2s (ORCPT ); Fri, 17 Mar 2023 12:28:48 -0400 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E9950E2760; Fri, 17 Mar 2023 09:28:37 -0700 (PDT) Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 32HEoEud005689; Fri, 17 Mar 2023 16:28:35 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=rOqyaP58V4I+pR9h3qJL/GGfnieE1g/V9Z3CjuwrvLA=; b=VufqM+efoOZfGFr9ACg+vKt3lYzIjb9Tn4qJPEmEcbZH8Slye90f5uA18j16c6z006Cy KutRqNs2UDFOW4wF19u5bEiIj8sZ0Xgc5NcgFolIuLsMTCt0xa40PhuSoI5H7bcnmfBZ 14l56gVJO+g/Pm+d2oi0FdJ5kfadl8TPR2HATMvyb2FRKntMaxrbugwqalk/nNiTCtYL qgo0dx1I0s0H9TJUd+8kWAS728gLrXMGMgu3A4VO9Ww4vzVKuSncQ5SFJfw1QOnwbzrt VnM2JGWxMtQdWRAErTuCPPuAwjJ9bqXmkXEWw+xf/IU9tDPO6CsICkWFz0JIH40Lc4y0 nw== Received: from nasanppmta02.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3pctap8f3m-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 17 Mar 2023 16:28:35 +0000 Received: from nasanex01c.na.qualcomm.com (nasanex01c.na.qualcomm.com [10.45.79.139]) by NASANPPMTA02.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 32HGSYlP031407 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 17 Mar 2023 16:28:34 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.986.41; Fri, 17 Mar 2023 09:28:31 -0700 From: Mukesh Ojha To: , , , CC: , , , Mukesh Ojha , Poovendhan Selvaraj Subject: [PATCH v3 3/5] firmware: scm: Modify only the download bits in TCSR register Date: Fri, 17 Mar 2023 21:58:00 +0530 Message-ID: <1679070482-8391-4-git-send-email-quic_mojha@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1679070482-8391-1-git-send-email-quic_mojha@quicinc.com> References: <1679070482-8391-1-git-send-email-quic_mojha@quicinc.com> MIME-Version: 1.0 X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) 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: xYFq1WydpWgW5O39-yGMCt-Fv9YFcKEf X-Proofpoint-GUID: xYFq1WydpWgW5O39-yGMCt-Fv9YFcKEf X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-03-17_10,2023-03-16_02,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 mlxlogscore=999 clxscore=1015 mlxscore=0 lowpriorityscore=0 malwarescore=0 bulkscore=0 impostorscore=0 suspectscore=0 priorityscore=1501 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2303150002 definitions=main-2303170110 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760633133132897238?= X-GMAIL-MSGID: =?utf-8?q?1760633133132897238?= CrashDump collection is based on the DLOAD bit of TCSR register. To retain other bits, we read the register and modify only the DLOAD bit as the other bits have their own significance. Signed-off-by: Poovendhan Selvaraj Signed-off-by: Mukesh Ojha --- drivers/firmware/qcom_scm.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c index aca2556..eb491da 100644 --- a/drivers/firmware/qcom_scm.c +++ b/drivers/firmware/qcom_scm.c @@ -30,6 +30,8 @@ module_param(download_mode, bool, 0); #define SCM_HAS_IFACE_CLK BIT(1) #define SCM_HAS_BUS_CLK BIT(2) +#define QCOM_DOWNLOAD_MODE_MASK 0x30 + struct qcom_scm { struct device *dev; struct clk *core_clk; @@ -448,7 +450,8 @@ 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, + ret = qcom_scm_io_update_field(__scm->dload_mode_addr, + QCOM_DOWNLOAD_MODE_MASK, enable ? QCOM_SCM_BOOT_SET_DLOAD_MODE : 0); } else { dev_err(__scm->dev, From patchwork Fri Mar 17 16:28:01 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mukesh Ojha X-Patchwork-Id: 71356 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp436661wrt; Fri, 17 Mar 2023 09:30:12 -0700 (PDT) X-Google-Smtp-Source: AK7set+AzcsBcEgZSMZWuWYDloZjS7xXRcYQju0P5PW3REtDcq5e6Kr/V2HoWosNSHeZhwaFHmR9 X-Received: by 2002:a17:902:9a92:b0:1a0:4405:5787 with SMTP id w18-20020a1709029a9200b001a044055787mr7897656plp.0.1679070612334; Fri, 17 Mar 2023 09:30:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679070612; cv=none; d=google.com; s=arc-20160816; b=MqUcfuds2iB3sFf0ycglxSx4ts680Skw1EGFASdV97bD5Sf5WCn+JgB7/wH3bwX+Q0 LNuTPRSwi6BgHqcFglKOUpWN6IV1MRM8GJ46CfiHC9BXQtF6zvAGxYUGejCSjJnyn/bX 3IniVNUeT1G88Upn0xTDR/ecSsYXT0SceU3w0+VE2rsrGbro+5RRM/CJQA88OkBT34b/ k9xO3LW2CocqDME2nhUDAmq+ziim/EEFe3F4Q7am7/NHEK5MItyN5avzPfNT1UdYaQAb 9J8kgTDb4+vl0ku9F0vADbqdmE3vskor55W9ldPsQgt4qhztL1z8YfDiQ9mdLuaXfzZ7 fsAQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=aerBElR0OWPtvzZ+1tMvlDh88Zwd/vflrfx/dyJBImM=; b=Q1nwAfj55nChmThNKJHCvBXrLUk/i4+Kx5eJzAz9DqGhy4DhzBed6R3KG9Eg/2B65Z +p0dO0W2kPpYYvedMSBuNdVJGJPGA4Idlka3RvZ2KSnT4PtEBMu7v33kll7GWdRsarLU oD6orZPyfTiLiNaNdnQNPbiC5jW8RD3ILluAidF/bjITkXCqrPKa6yiYihDHdj7hih83 J0e0iKiGMNEs6JeUjD4B3Wor/RCCPl0pl3/tp3TcFJcuUcBqDrDGGM/pzgiSFXhq+77d 4WQ5Kw/49H1r3ZkL/8xOnq+rOG9+BxWHOhQczEj73ijfj4/CX8FJhpP+YgVJypEudFB4 JDGA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=ADz4mRGx; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id kw13-20020a170902f90d00b0019a7375dfcasi2742277plb.247.2023.03.17.09.29.57; Fri, 17 Mar 2023 09:30:12 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=ADz4mRGx; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230096AbjCQQ3F (ORCPT + 99 others); Fri, 17 Mar 2023 12:29:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42478 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229950AbjCQQ2s (ORCPT ); Fri, 17 Mar 2023 12:28:48 -0400 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8DEE7DCF76; Fri, 17 Mar 2023 09:28:42 -0700 (PDT) Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 32HAfq7p030994; Fri, 17 Mar 2023 16:28:38 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=aerBElR0OWPtvzZ+1tMvlDh88Zwd/vflrfx/dyJBImM=; b=ADz4mRGxO5r5s8W/WRRYdlE6JMh8Oyo/ubDtrEOJa10OzYM018yL/RgLSePFuM+2ZnK2 FzLlqogI7nS8DtN1txOKPI9oK6uUv9cckxz4ePbQ6FAMTy1+5ULSys4UYK2+TERIlaRz SLSDf6e9yuiKPD/5z8oqHM+ONgHDS5rKE30N5aaaPW17XmnyNhtD1zFNHZFULONVH2+J SDKpxanRjsdpv3PEDG2TA7Mg67zoQdT3e8dpjQRIX3OwRF/atqb2D+reWNDBHHKtflFI ZN/xeGLBOOE95iW2s66wYMnn7LiorPlfktSRSyyBXxAWvtewwDnn1eREdxORe4TxCPP8 AQ== Received: from nasanppmta02.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3pc4vvc5pv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 17 Mar 2023 16:28:38 +0000 Received: from nasanex01c.na.qualcomm.com (nasanex01c.na.qualcomm.com [10.45.79.139]) by NASANPPMTA02.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 32HGSb9p031454 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 17 Mar 2023 16:28:37 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.986.41; Fri, 17 Mar 2023 09:28:34 -0700 From: Mukesh Ojha To: , , , CC: , , , Mukesh Ojha Subject: [PATCH v3 4/5] firmware: qcom_scm: Refactor code to support multiple download mode Date: Fri, 17 Mar 2023 21:58:01 +0530 Message-ID: <1679070482-8391-5-git-send-email-quic_mojha@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1679070482-8391-1-git-send-email-quic_mojha@quicinc.com> References: <1679070482-8391-1-git-send-email-quic_mojha@quicinc.com> MIME-Version: 1.0 X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) 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: TgN3fZrI7ffSd-HiPQZs5ofVJRhxtOEX X-Proofpoint-GUID: TgN3fZrI7ffSd-HiPQZs5ofVJRhxtOEX X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-03-17_10,2023-03-16_02,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 phishscore=0 mlxlogscore=999 mlxscore=0 spamscore=0 clxscore=1015 impostorscore=0 bulkscore=0 malwarescore=0 suspectscore=0 priorityscore=1501 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2303150002 definitions=main-2303170110 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760633146223559496?= X-GMAIL-MSGID: =?utf-8?q?1760633146223559496?= Currently on Qualcomm SoC, download_mode is enabled if CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT is selected. Refactor the code such that it supports multiple download modes and drop CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT config instead, give interface to set the download mode from module parameter. Signed-off-by: Mukesh Ojha --- drivers/firmware/Kconfig | 11 --------- drivers/firmware/qcom_scm.c | 57 +++++++++++++++++++++++++++++++++++++++------ 2 files changed, 50 insertions(+), 18 deletions(-) diff --git a/drivers/firmware/Kconfig b/drivers/firmware/Kconfig index b59e304..ff7e9f3 100644 --- a/drivers/firmware/Kconfig +++ b/drivers/firmware/Kconfig @@ -215,17 +215,6 @@ config MTK_ADSP_IPC config QCOM_SCM tristate -config QCOM_SCM_DOWNLOAD_MODE_DEFAULT - bool "Qualcomm download mode enabled by default" - depends on QCOM_SCM - help - A device with "download mode" enabled will upon an unexpected - warm-restart enter a special debug mode that allows the user to - "download" memory content over USB for offline postmortem analysis. - The feature can be enabled/disabled on the kernel command line. - - Say Y here to enable "download mode" by default. - config SYSFB bool select BOOT_VESA_SUPPORT diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c index eb491da..69f864d 100644 --- a/drivers/firmware/qcom_scm.c +++ b/drivers/firmware/qcom_scm.c @@ -20,17 +20,19 @@ #include #include #include +#include #include "qcom_scm.h" -static bool download_mode = IS_ENABLED(CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT); -module_param(download_mode, bool, 0); +static u32 download_mode; #define SCM_HAS_CORE_CLK BIT(0) #define SCM_HAS_IFACE_CLK BIT(1) #define SCM_HAS_BUS_CLK BIT(2) #define QCOM_DOWNLOAD_MODE_MASK 0x30 +#define QCOM_DOWNLOAD_FULLDUMP 0x10 +#define QCOM_DOWNLOAD_NODUMP 0x0 struct qcom_scm { struct device *dev; @@ -439,8 +441,9 @@ static int __qcom_scm_set_dload_mode(struct device *dev, bool enable) return qcom_scm_call_atomic(__scm->dev, &desc, NULL); } -static void qcom_scm_set_download_mode(bool enable) +static void qcom_scm_set_download_mode(u32 download_mode) { + bool enable = !!download_mode; bool avail; int ret = 0; @@ -452,7 +455,7 @@ static void qcom_scm_set_download_mode(bool enable) } else if (__scm->dload_mode_addr) { ret = qcom_scm_io_update_field(__scm->dload_mode_addr, QCOM_DOWNLOAD_MODE_MASK, - enable ? QCOM_SCM_BOOT_SET_DLOAD_MODE : 0); + enable ? download_mode : 0); } else { dev_err(__scm->dev, "No available mechanism for setting download mode\n"); @@ -1418,6 +1421,46 @@ static irqreturn_t qcom_scm_irq_handler(int irq, void *data) return IRQ_HANDLED; } + +static int get_download_mode(char *buffer, const struct kernel_param *kp) +{ + int len; + + if (download_mode == QCOM_DOWNLOAD_FULLDUMP) + len = sysfs_emit(buffer, "full\n"); + else if (download_mode == QCOM_DOWNLOAD_NODUMP) + len = sysfs_emit(buffer, "off\n"); + + return len; +} + +static int set_download_mode(const char *val, const struct kernel_param *kp) +{ + if (!strncmp(val, "full", strlen("full"))) { + download_mode = QCOM_DOWNLOAD_FULLDUMP; + } else if (!strncmp(val, "off", strlen("off"))) { + download_mode = QCOM_DOWNLOAD_NODUMP; + } else if (kstrtouint(val, 0, &download_mode) || + !(download_mode == 0 || download_mode == 1)) { + pr_err("unknown download mode\n"); + return -EINVAL; + } + + if (__scm) + qcom_scm_set_download_mode(download_mode); + + return 0; +} + +static const struct kernel_param_ops download_mode_param_ops = { + .get = get_download_mode, + .set = set_download_mode, +}; + +module_param_cb(download_mode, &download_mode_param_ops, NULL, 0644); +MODULE_PARM_DESC(download_mode, + "Download mode: off/full or 0/1 for existing users"); + static int qcom_scm_probe(struct platform_device *pdev) { struct qcom_scm *scm; @@ -1511,12 +1554,12 @@ static int qcom_scm_probe(struct platform_device *pdev) __get_convention(); /* - * If requested enable "download mode", from this point on warmboot + * If "download mode" is requested, from this point on warmboot * will cause the boot stages to enter download mode, unless * disabled below by a clean shutdown/reboot. */ if (download_mode) - qcom_scm_set_download_mode(true); + qcom_scm_set_download_mode(download_mode); return 0; } @@ -1524,7 +1567,7 @@ static int qcom_scm_probe(struct platform_device *pdev) static void qcom_scm_shutdown(struct platform_device *pdev) { /* Clean shutdown, disable download mode to allow normal restart */ - qcom_scm_set_download_mode(false); + qcom_scm_set_download_mode(QCOM_DOWNLOAD_NODUMP); } static const struct of_device_id qcom_scm_dt_match[] = { From patchwork Fri Mar 17 16:28:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mukesh Ojha X-Patchwork-Id: 71357 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp437296wrt; Fri, 17 Mar 2023 09:31:16 -0700 (PDT) X-Google-Smtp-Source: AK7set+R9v5gB7uoHDTrppLLj8YUZN9b6I4Q+cQ6CXU9iFxZdhqxPSYK5u8V8O4tL5OiOsp37Zyg X-Received: by 2002:a05:6a20:7f8c:b0:c7:af88:3dd8 with SMTP id d12-20020a056a207f8c00b000c7af883dd8mr10228141pzj.6.1679070675836; Fri, 17 Mar 2023 09:31:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679070675; cv=none; d=google.com; s=arc-20160816; b=Ko4Ksvs1MHZr1dV6XScfD8SMmxpGJFaJYVAvfzSqcKU3OP8uGU9WSwaMGrS8OqlTKg hY7Dgv6E1t4x9RtkPCDgubLJsVq9WbFY2QU/VgaIsiEO0E6T25Myn3N8efmcCum75BI0 WiHpgZjcj/YHQk5o4S4ZH8UIWRSQcT3yu4mcDyjV4R8QKRH2HTOsz87K8/fvTiKy2OsK stHfpGEExgjlAqdAeIB51MKwYCvhzYQ9ZejR8OUOtD+6dvtgHV4fubE0WieFiiL0bkkZ 0gccxMVMUX2W+NAHyMWvCaNGLgp621vhkUxgEjCJK2+MTDpqs4TQJaLmb4AzAshHvaFw MPEQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=t+Z+MrnYr72Co07tsgrY5M8Wiff1XxqQ/2tXmPmW51A=; b=lqQNzu+Dz9LQRxVU1LPBpXEMj4LKuoxlLKKOUTQDMx1LJj+H5MXvPzxt2AYH3VVv62 7YtuZ/c1A/68g2wzEHObFL/NogPXjBOoK77DXV0qn4yKFRcBPqXzUnaM42888UO4nNIn dWx4Sdw6ohnTtb4MqXMp0PR+7GmNCjiVFV5hvYfymNNGTSKImzihcyPkLVPlicAovGpi MZ79CmSKM1KscOyvcMLqgC5xjzx4gDAxUREevYV5b3zZpSb1fLbNJomfHNaKOlusIR7q scCZnSZOCVH3T70EMnWkBfpBc+kcZJWcknGVNEYx7xnc+ds1tWn7p9eQeXXEl9lCfLBS XoBg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=fNwKQQZL; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id u11-20020a63454b000000b004fc264c3a43si2701805pgk.397.2023.03.17.09.31.02; Fri, 17 Mar 2023 09:31:15 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=fNwKQQZL; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230102AbjCQQ3J (ORCPT + 99 others); Fri, 17 Mar 2023 12:29:09 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42482 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229780AbjCQQ2t (ORCPT ); Fri, 17 Mar 2023 12:28:49 -0400 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C42E723312; Fri, 17 Mar 2023 09:28:43 -0700 (PDT) Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 32H7WuYs006738; Fri, 17 Mar 2023 16:28:41 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=t+Z+MrnYr72Co07tsgrY5M8Wiff1XxqQ/2tXmPmW51A=; b=fNwKQQZLF5OVD/QuImaXtR9kN1OL+K2VyAQUuHTfQTlJlYTniMV8hTViAc8YXdj5ik2w 1KLLx/pdb5E65AJh1XFVghtwfFdYNHMybS+ufBZChNwxNtM9jqVz9aXPCHmox2zWMTXi SRp8exNDy4vQTStK6/WjgBInMXP6XAiyy18tRILxvLVxMLQ34iQXlZQ4CipzWaoTv3dF rnIzAq/rpGpyxNUoQCINaQ0UcxRDciH3sDt2T3C+vUGGhtKDSZU3CiQ9sm0ZUTrW23lW XnAPSsm3sIqI1FsMxya44r5pdkuaOa+vVHrgwCGe1LHwokn+p1P6oLwUICXNDIPu1MYW jw== Received: from nasanppmta04.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3pcayeb5f1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 17 Mar 2023 16:28:41 +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 32HGSeIR012912 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 17 Mar 2023 16:28:40 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.986.41; Fri, 17 Mar 2023 09:28:37 -0700 From: Mukesh Ojha To: , , , CC: , , , Mukesh Ojha Subject: [PATCH v3 5/5] firmware: qcom_scm: Add multiple download mode support Date: Fri, 17 Mar 2023 21:58:02 +0530 Message-ID: <1679070482-8391-6-git-send-email-quic_mojha@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1679070482-8391-1-git-send-email-quic_mojha@quicinc.com> References: <1679070482-8391-1-git-send-email-quic_mojha@quicinc.com> MIME-Version: 1.0 X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) 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: MOLy7SARonMfhfwe0sU_6ImegC-IEAGE X-Proofpoint-GUID: MOLy7SARonMfhfwe0sU_6ImegC-IEAGE X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-03-17_10,2023-03-16_02,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 lowpriorityscore=0 phishscore=0 clxscore=1015 bulkscore=0 mlxlogscore=999 mlxscore=0 spamscore=0 adultscore=0 malwarescore=0 priorityscore=1501 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2303150002 definitions=main-2303170110 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1760633212899431908?= X-GMAIL-MSGID: =?utf-8?q?1760633212899431908?= Currently, scm driver only supports full dump when download mode is selected. Add support to enable minidump as well both dump(full dump + minidump). Signed-off-by: Mukesh Ojha --- drivers/firmware/qcom_scm.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c index 69f864d..ba3eefc 100644 --- a/drivers/firmware/qcom_scm.c +++ b/drivers/firmware/qcom_scm.c @@ -32,6 +32,9 @@ static u32 download_mode; #define QCOM_DOWNLOAD_MODE_MASK 0x30 #define QCOM_DOWNLOAD_FULLDUMP 0x10 +#define QCOM_DOWNLOAD_MINIDUMP 0x20 +#define QCOM_DOWNLOAD_BOTHDUMP (QCOM_DOWNLOAD_FULLDUMP | QCOM_DOWNLOAD_MINIDUMP) + #define QCOM_DOWNLOAD_NODUMP 0x0 struct qcom_scm { @@ -1421,15 +1424,19 @@ static irqreturn_t qcom_scm_irq_handler(int irq, void *data) return IRQ_HANDLED; } - static int get_download_mode(char *buffer, const struct kernel_param *kp) { - int len; + int len = 0; - if (download_mode == QCOM_DOWNLOAD_FULLDUMP) + if (download_mode == QCOM_DOWNLOAD_FULLDUMP) { len = sysfs_emit(buffer, "full\n"); - else if (download_mode == QCOM_DOWNLOAD_NODUMP) + } else if (download_mode == QCOM_DOWNLOAD_MINIDUMP) { + len = sysfs_emit(buffer, "mini\n"); + } else if (download_mode == QCOM_DOWNLOAD_BOTHDUMP) { + len = sysfs_emit(buffer, "both\n"); + } else if (download_mode == QCOM_DOWNLOAD_NODUMP) { len = sysfs_emit(buffer, "off\n"); + } return len; } @@ -1438,6 +1445,10 @@ static int set_download_mode(const char *val, const struct kernel_param *kp) { if (!strncmp(val, "full", strlen("full"))) { download_mode = QCOM_DOWNLOAD_FULLDUMP; + } else if (!strncmp(val, "mini", strlen("mini"))) { + download_mode = QCOM_DOWNLOAD_MINIDUMP; + } else if (!strncmp(val, "both", strlen("both"))) { + download_mode = QCOM_DOWNLOAD_BOTHDUMP; } else if (!strncmp(val, "off", strlen("off"))) { download_mode = QCOM_DOWNLOAD_NODUMP; } else if (kstrtouint(val, 0, &download_mode) || @@ -1459,7 +1470,7 @@ static const struct kernel_param_ops download_mode_param_ops = { module_param_cb(download_mode, &download_mode_param_ops, NULL, 0644); MODULE_PARM_DESC(download_mode, - "Download mode: off/full or 0/1 for existing users"); + "download mode: off/full/mini/both(full+mini) or 0/1 for existing users"); static int qcom_scm_probe(struct platform_device *pdev) {