From patchwork Wed Mar 1 09:55:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mukesh Ojha X-Patchwork-Id: 62843 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp3554493wrd; Wed, 1 Mar 2023 02:34:54 -0800 (PST) X-Google-Smtp-Source: AK7set9G3S7tVzUnTBx5lbmaPajpk5hKljDJZQ2B2W0J845Qg7qbln6A0HfbunuCFeuPbgWWd1RR X-Received: by 2002:a17:906:468d:b0:8b1:1f2d:ecf1 with SMTP id a13-20020a170906468d00b008b11f2decf1mr7041608ejr.67.1677666893813; Wed, 01 Mar 2023 02:34:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1677666893; cv=none; d=google.com; s=arc-20160816; b=Qph0zD+ccxzFTSoXCh27ln4zfxpygblqrDR8tPN5WUObnluWCORTOjDTmW/i/kDoaj wJPUPOQ1/WvhcBGz3oYb3GlVFYDz0574mfyoRdcGLEsVGMNrbAj/bJm2csV5aHWx6D1K 1yEZvxkum7Xe2nJOUW1iv2OVYQ6f3YvcxL4KqxjD1Xu7dlFBEELBokPeOgO7bRRG3uCc kx4QtvHUGbomxBIXF6NQAaUg7zU1NiIiEB+nD1xEFilOMAV5H/u+7MJIXXbLFVhWV7p/ eKdtJqATG67SyBrun0L3+zjJ3L9yKIQODP4ewNenx0HakHHBazhqO6bk4FsILSdUJtDI GG5A== 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=NB0Aduk84/3OmNQrNgR+C215mUZdU6JD2zPgP4V56jM=; b=YD10j1x3R5khCS2BqFF56fnE3+M8B+3NwgGtWpdRWTQ7i1CuOQtST2G0T+O/Ej+eMa 2S/96nVS3vVhW/lt2kyVffhm6Ww/FIkFlhfR5aiRhGWB0mVHttBTSLucz0gzhyughGXd XbsKeKh+t1wQl3SBW09gcUqoq+sgBASHp0xMzXUQ0xQzv+uPs0/nSgYl9plMMgjj8+le FND0rtyTCn/xO6A/1VZsjNa1HvEIIHvFb3EqR5dx9hj5SCO9k2aJ9WSxAIxpXhIDIgGJ S3TdA9gdClWnQFPEfgQ+4AcQ9oGdA5r/0qFB499N8aA+/SWVBquoxocEVKQYhAR4fryJ nq5Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=fYJzNcou; 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 a9-20020a17090680c900b008d6b51de6bdsi13701210ejx.616.2023.03.01.02.34.31; Wed, 01 Mar 2023 02:34:53 -0800 (PST) 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=fYJzNcou; 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 S229510AbjCAKbq (ORCPT + 99 others); Wed, 1 Mar 2023 05:31:46 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49490 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229793AbjCAKbk (ORCPT ); Wed, 1 Mar 2023 05:31:40 -0500 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3ABAA3BD84; Wed, 1 Mar 2023 02:31:33 -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 3212nIJV023915; Wed, 1 Mar 2023 09:57:00 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=NB0Aduk84/3OmNQrNgR+C215mUZdU6JD2zPgP4V56jM=; b=fYJzNcou9ZKtwIMSyuSM2FEVyawmwz4rXPoj3zfIPi31h+/NK1qDfGCjhcQJ/umSRige 7b+0kdPHBHVXxmGf/mrK8SyJ7e1vDKZXm4sg88F+AP1U6ihKCD//zoHYHI2Yhezj41wH FR8cIxmD0q6h2ORfpjR5lZQC3aRMfKQEswdmvz7hwjcef8C5tOYo0442QIkckzyPfyvp 8ufz++J5jmSfg9G6AYUipSUcYPqqgfJYoAjmJOgxxBqVIX4WkifxMAlkA/7f3UDkLwAW CwnrH8BfZWQQTFMkLxDAzm+54gmcf0r4qnnA1qX0zcSP0T1ggyv6D0fQAu0eebJ5pZUb bg== Received: from nasanppmta01.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3p1n0tjjxd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 01 Mar 2023 09:57:00 +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 3219uxBV007188 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 1 Mar 2023 09:56:59 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; Wed, 1 Mar 2023 01:56:56 -0800 From: Mukesh Ojha To: , , CC: , , "Mukesh Ojha" Subject: [PATCH v2 1/4] firmware: qcom_scm: Clear download bit during reboot Date: Wed, 1 Mar 2023 15:25:52 +0530 Message-ID: <1677664555-30191-2-git-send-email-quic_mojha@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1677664555-30191-1-git-send-email-quic_mojha@quicinc.com> References: <1677664555-30191-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: IZs5N6I4OA1XxAP578gFv9GRGzT02Cs3 X-Proofpoint-GUID: IZs5N6I4OA1XxAP578gFv9GRGzT02Cs3 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-03-01_04,2023-02-28_03,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 phishscore=0 malwarescore=0 adultscore=0 priorityscore=1501 bulkscore=0 suspectscore=0 spamscore=0 lowpriorityscore=0 impostorscore=0 mlxscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2303010082 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 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?1759161240465335802?= X-GMAIL-MSGID: =?utf-8?q?1759161240465335802?= During normal restart of a system download bit should be cleared irrespective of whether download mode is set or not. Signed-off-by: Mukesh Ojha --- Changes in v2: - No change drivers/firmware/qcom_scm.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c index cdbfe54..51eb853 100644 --- a/drivers/firmware/qcom_scm.c +++ b/drivers/firmware/qcom_scm.c @@ -1418,8 +1418,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 */ - if (download_mode) - qcom_scm_set_download_mode(false); + qcom_scm_set_download_mode(false); } static const struct of_device_id qcom_scm_dt_match[] = { From patchwork Wed Mar 1 09:55:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mukesh Ojha X-Patchwork-Id: 62845 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp3556169wrd; Wed, 1 Mar 2023 02:39:52 -0800 (PST) X-Google-Smtp-Source: AK7set+0mf87f526O8C5iYAFIVegiXCqrTqVgDrmmyKVbxf24/NFDLBwlYM0vYSaGB9lQyXew42T X-Received: by 2002:a17:906:6a2a:b0:8e8:6b69:2093 with SMTP id qw42-20020a1709066a2a00b008e86b692093mr16957869ejc.25.1677667192683; Wed, 01 Mar 2023 02:39:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1677667192; cv=none; d=google.com; s=arc-20160816; b=fp61jdE9GVJ/+7Dv4FMcIewAG+Z8/2heFa3g+WFYWfsDS/+r5L02nIpU230XjQ3Sgg eh7s1ssgRhjmb2B2fd/4ZBUxXhctdlzIVTW4dANi8iLDVdCxjFYT86aOFyFFFbBAIJ3S W4dp0a3DbrB0Hz2tDF//nO6Qif7AGZQDGDI0BVJbN1gEJO2nq0pxDDhao3kuSsYWE7iW mHPPF0ro2Kgi9e2D08IlHf4LjTvSl+jMkaywHdbB3woTPSj0+4JkvDasYDONpJvVLG5E X3rzMfh9tJsD11jsDyUCFoyTkEVGsHsJroKCBIOZdFSGGcuBM8HBsQMaL9tiBbclQpD5 TG9Q== 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=cJOvygwa3MxthitwhxT0SKDN9LAhp1SoHdP0PoFL/28=; b=W1+ogFE2qpmsjwur97UCZacycZG/EYcaqXFEyVWtF/GMeFRkP1JkwROBr7wLboqxxe D63QxLk0tLk7dpXBdTNG4+CIAsYPngyKV3FE2ejSU6IVVPyvcb6GnwPOhDsS0QW6GPQS YdO3FVucMjodi/hS5mP4/DsRjAVCkmP1OUFYE/zR3yU2uejH4S08ngT2JeYzFs257dqR EYtVfnR63+xG7beWzvJ5U9V+MqXxcg+bD9RhbgHuCktMD0U3X4PgK9M5ef/u1wBBwMtw M3cWQbp4v/mXrmLbabbk0emzxqqtY6dzjDqZFamZM9Ei/3SPEJtSkf5CGeX9QGsOkZkw YmPQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=lEFxQ+vp; 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 sd8-20020a170906ce2800b008cdb976d7e2si861162ejb.717.2023.03.01.02.39.30; Wed, 01 Mar 2023 02:39:52 -0800 (PST) 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=lEFxQ+vp; 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 S229751AbjCAKaF (ORCPT + 99 others); Wed, 1 Mar 2023 05:30:05 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47708 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229486AbjCAKaD (ORCPT ); Wed, 1 Mar 2023 05:30:03 -0500 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 46A8B2CC47; Wed, 1 Mar 2023 02:30:00 -0800 (PST) Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 3215PqaM032331; Wed, 1 Mar 2023 09:57:03 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=cJOvygwa3MxthitwhxT0SKDN9LAhp1SoHdP0PoFL/28=; b=lEFxQ+vpnSxlzX9V92IV5Z9Bwemz/pNe2aG0b8RNuBqtJx7XJ7TA/9VCeBzkB1+KCYuu yI8spWnoEiKy2M9LCQqCdXzGq0E934NDT/gRDtpuo/5Nr4xmY80c68z3DLt/yUjtAxdP KOlAN+PPFnxz+sFanaP/ELMEZ/eX7T2jOR2SEWVnpdCGJS5CQysyg9h/Gsz0RMSCtvNt nQcAkYrtpvBFN+SI2/GmZ0y9nW5C3S5Ld+unJA+LBUAg+bnIqIxyLoffKqGDmhHqj+Ed rRf6GLBx5kBP5aBqeglH3SwBrDasROfIk7FHmk6SMEetADutacLbX8Ewwt3QZ+8P4eu9 gg== Received: from nasanppmta05.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3p20j2gw32-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 01 Mar 2023 09:57:02 +0000 Received: from nasanex01c.na.qualcomm.com (nasanex01c.na.qualcomm.com [10.45.79.139]) by NASANPPMTA05.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 3219v1nS002591 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 1 Mar 2023 09:57:01 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; Wed, 1 Mar 2023 01:56:59 -0800 From: Mukesh Ojha To: , , CC: , , "Mukesh Ojha" Subject: [PATCH v2 2/4] firmware: scm: Modify only the DLOAD bit in TCSR register for download mode Date: Wed, 1 Mar 2023 15:25:53 +0530 Message-ID: <1677664555-30191-3-git-send-email-quic_mojha@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1677664555-30191-1-git-send-email-quic_mojha@quicinc.com> References: <1677664555-30191-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: Dj_aXoQqxv6q8YRs2SB2RLK0SUdS_Yah X-Proofpoint-GUID: Dj_aXoQqxv6q8YRs2SB2RLK0SUdS_Yah X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-03-01_04,2023-02-28_03,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 phishscore=0 spamscore=0 mlxlogscore=999 priorityscore=1501 impostorscore=0 mlxscore=0 adultscore=0 bulkscore=0 malwarescore=0 lowpriorityscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2303010082 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 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?1759161553978846549?= X-GMAIL-MSGID: =?utf-8?q?1759161553978846549?= 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. Originally-by: Poovendhan Selvaraj Signed-off-by: Mukesh Ojha --- Changes in v2: - Addressed comment made by Bjorn. - Added download mask from patch 3 to this. drivers/firmware/qcom_scm.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c index 51eb853..c9f1fad 100644 --- a/drivers/firmware/qcom_scm.c +++ b/drivers/firmware/qcom_scm.c @@ -27,6 +27,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; @@ -419,6 +421,7 @@ static void qcom_scm_set_download_mode(bool enable) { bool avail; int ret = 0; + u32 val; avail = __qcom_scm_is_call_available(__scm->dev, QCOM_SCM_SVC_BOOT, @@ -426,8 +429,18 @@ 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_readl(__scm->dload_mode_addr, &val); + if (ret) { + dev_err(__scm->dev, + "failed to read dload mode address value: %d\n", ret); + return; + } + + val &= ~QCOM_DOWNLOAD_MODE_MASK; + if (enable) + val |= QCOM_SCM_BOOT_SET_DLOAD_MODE; + + ret = qcom_scm_io_writel(__scm->dload_mode_addr, val); } else { dev_err(__scm->dev, "No available mechanism for setting download mode\n"); From patchwork Wed Mar 1 09:55:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mukesh Ojha X-Patchwork-Id: 62836 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp3545841wrd; Wed, 1 Mar 2023 02:11:12 -0800 (PST) X-Google-Smtp-Source: AK7set9L8WDl88I5/1FRERCETMvoS3L/mX14ntd6qqlH0xGN+KqhDkow+7qudkw98167nOdA2XgF X-Received: by 2002:a05:6402:481:b0:4ad:7205:8427 with SMTP id k1-20020a056402048100b004ad72058427mr6066382edv.27.1677665472044; Wed, 01 Mar 2023 02:11:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1677665472; cv=none; d=google.com; s=arc-20160816; b=EIAshzAvxHpZNjwtqIsQmiiyZgBzYrU8XRfdcdVf/QfydVUqSKWg7Cz14XrIxBOerG rxFEPWrlZHnJff2997anFftMJn0hKhJfp1KCMol0gcS87ooZvn6ZnauP+bUtCulvXUvN rYTpfpy5RhthaXdnYumibJdGaz2B8CGDbgW4sMEbcLDGFENeWlhjA75vPqEDsIIONqYx TeoBrWhN84YT/uP4e8ASH5T0ELAl1cJN4VYAkluaZ3uDbbRLak3OI47ZhbIxwEtzjvrA SoNzgGaXNozP7B1PWvToz+9eMZ1UsHyTdIMf1XNFkriawa0WaCV/1+S4VSbbK1yX8BSQ udHA== 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=+FZpNfLkdDyqzXjB0eX1M8JOxdfTOmA1cb8JAzLa99k=; b=LsUPUA4EnvH1sCCfwouK4w1xHM+yy/CAhb82oz5toq/ZjBUwmJkgpmGsztMCi9hDB2 HP4cSOvaF01RLxpDAsmWtkRZsQtkWZUGg9zSekBUwMCMGDhj8Y3AU8oorLC2gbEYv8GS uXrG49AqSKa8hQrKRUclWZqDaeMKwg4sENUnUZAtm+JpbeWayNcRbOjwlZicfiqfyiCg e0evT+IXwPN4K6yDUhoF7mdTSzMKinOX7Mv2RFxpLgS7OscB7EJ3G0h3UfVpci6wjarE QYqKqYfGaDGSlmP6Ld+MQmkaITCaB1+E2Og86QufyzYQF0zIdflTzw2lrzJL7hCCxYLR 67qg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=WuIgQgno; 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 w10-20020a50fa8a000000b004ad155fcafbsi5349796edr.607.2023.03.01.02.10.48; Wed, 01 Mar 2023 02:11:12 -0800 (PST) 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=WuIgQgno; 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 S229568AbjCAJ6p (ORCPT + 99 others); Wed, 1 Mar 2023 04:58:45 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41362 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229963AbjCAJ6e (ORCPT ); Wed, 1 Mar 2023 04:58:34 -0500 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6817A24C9D; Wed, 1 Mar 2023 01:58:09 -0800 (PST) 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 3216cMNk023643; Wed, 1 Mar 2023 09:57:05 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=+FZpNfLkdDyqzXjB0eX1M8JOxdfTOmA1cb8JAzLa99k=; b=WuIgQgno2nNL01qXMDjmXqPbspQIqvsBlPe9THAHNlNvvQw2uWmGKFViEBi7nPHXITyM 5NcYfmppbS7vntS8UdFwDyZUdepCwTL2DpNuvjv3UMvg0LOSwx79tA1SNfIh5ZAEw+fZ knCYz5Il10YPWtty90pv4FLUSemA3qTcNglVmmAS3TuZ1VKn+V/U3J60vGmnIPzkAxV2 5rK5vHFNX50pS8OBwstu1UTNdQ4X8n6BPEdVx+YKQbIvuH+l+bkKmZUxmDzDDxHJTg0z xamArhkQOha+ANpTuXBqiSR+2jFfhNACTdqlp0ZLKj+n8TEmGTmEjAbkiciPlYfCeDXv 0Q== Received: from nasanppmta04.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3p1mwxaj2t-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 01 Mar 2023 09:57:05 +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 3219v4oO016400 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 1 Mar 2023 09:57:04 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; Wed, 1 Mar 2023 01:57:02 -0800 From: Mukesh Ojha To: , , CC: , , "Mukesh Ojha" Subject: [PATCH v2 3/4] firmware: qcom_scm: Refactor code to support multiple download mode Date: Wed, 1 Mar 2023 15:25:54 +0530 Message-ID: <1677664555-30191-4-git-send-email-quic_mojha@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1677664555-30191-1-git-send-email-quic_mojha@quicinc.com> References: <1677664555-30191-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: Ny4qEyvpBspzvwLmvwo7XbcKuNe-Ky78 X-Proofpoint-GUID: Ny4qEyvpBspzvwLmvwo7XbcKuNe-Ky78 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-03-01_04,2023-02-28_03,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 adultscore=0 bulkscore=0 impostorscore=0 mlxscore=0 clxscore=1015 lowpriorityscore=0 mlxlogscore=999 malwarescore=0 spamscore=0 priorityscore=1501 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2303010082 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 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?1759159750495290069?= X-GMAIL-MSGID: =?utf-8?q?1759159750495290069?= 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 --- Changes in v2: - Passed download mode as parameter - Accept human accepatable download mode string. - enable = !!dload_mode - Shifted module param callback to somewhere down in the file so that it no longer need to know the prototype of qcom_scm_set_download_mode() - updated commit text. drivers/firmware/Kconfig | 11 -------- drivers/firmware/qcom_scm.c | 65 ++++++++++++++++++++++++++++++++++++++------- 2 files changed, 56 insertions(+), 20 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 c9f1fad..ca07208 100644 --- a/drivers/firmware/qcom_scm.c +++ b/drivers/firmware/qcom_scm.c @@ -17,17 +17,22 @@ #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); - #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 + +#define MAX_DLOAD_LEN 8 + +static char download_mode[] = "off"; +static u32 dload_mode; struct qcom_scm { struct device *dev; @@ -417,8 +422,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 dload_mode) { + bool enable = !!dload_mode; bool avail; int ret = 0; u32 val; @@ -438,7 +444,7 @@ static void qcom_scm_set_download_mode(bool enable) val &= ~QCOM_DOWNLOAD_MODE_MASK; if (enable) - val |= QCOM_SCM_BOOT_SET_DLOAD_MODE; + val |= dload_mode; ret = qcom_scm_io_writel(__scm->dload_mode_addr, val); } else { @@ -1338,6 +1344,47 @@ bool qcom_scm_is_available(void) } EXPORT_SYMBOL(qcom_scm_is_available); +static int set_dload_mode(const char *val, const struct kernel_param *kp) +{ + int ret; + + if (!strncmp(val, "full", strlen("full"))) { + dload_mode = QCOM_DOWNLOAD_FULLDUMP; + } else if (!strncmp(val, "off", strlen("off"))) { + dload_mode = QCOM_DOWNLOAD_NODUMP; + } else { + if (kstrtouint(val, 0, &dload_mode) || + !(dload_mode == 0 || dload_mode == 1)) { + pr_err("unknown download mode\n"); + return -EINVAL; + } + + } + + ret = param_set_copystring(val, kp); + if (ret) + return ret; + + if (__scm) + qcom_scm_set_download_mode(dload_mode); + + return 0; +} + +static const struct kernel_param_ops dload_mode_param_ops = { + .set = set_dload_mode, + .get = param_get_string, +}; + +static struct kparam_string dload_mode_param = { + .string = download_mode, + .maxlen = MAX_DLOAD_LEN, +}; + +module_param_cb(download_mode, &dload_mode_param_ops, &dload_mode_param, 0644); +MODULE_PARM_DESC(download_mode, + "Download mode: off/full or 0/1/off/on for existing users"); + static int qcom_scm_probe(struct platform_device *pdev) { struct qcom_scm *scm; @@ -1418,12 +1465,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); + if (dload_mode) + qcom_scm_set_download_mode(dload_mode); return 0; } @@ -1431,7 +1478,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 Wed Mar 1 09:55:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mukesh Ojha X-Patchwork-Id: 62842 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp3554477wrd; Wed, 1 Mar 2023 02:34:51 -0800 (PST) X-Google-Smtp-Source: AK7set+n2WgvusR95M2Vlt4seB5+x8vNjrA5zarpTxKavcPHgvfio2d+nIk8ttoivbI0E9onXgpE X-Received: by 2002:a17:906:5dad:b0:881:d1ad:1640 with SMTP id n13-20020a1709065dad00b00881d1ad1640mr8633964ejv.57.1677666891735; Wed, 01 Mar 2023 02:34:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1677666891; cv=none; d=google.com; s=arc-20160816; b=JpViaPhjMvt6HCjBvWIm6d1fujzPXWhbxU5FIBMBYYooky/zO7TFNTeS9soER6LtrZ Nbfo6ZalNRX4EslSt9h42JSHE5WTF70fl9ksm4LZpfDWlmA2QFeqj7g/GnK74FQHNV+L dG9/Qmtb7C/5qXmyCjgdgVSXpT2Ru1ufxREZnA1/Cy1kh3qHBwrPv7JCs1y3KZyiXZcV hKkucRaFVztOudunWqR8U0gDdy3lr9sJtwNzz+9aQsS6Aggkr4+ScGAIJqLIq74sgUAv gjqPmXZAqXe99QHwaLdm1++FN7XJeX3dLmPBDMU//QBGgLKVYyDJYvdJHZ3WcGviUA3Z 1KBA== 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=ISrDjq0Ha+uMnwpC23DHqi+F/2UqrQtb9WTbLZDU0/U=; b=Iee29/zM6aKtDrVRfpHC6sv7jMh1I+wNhahZUgdYga7ohr+0ZzMQXRPZYF1DVOd13U B9G8Z8LNNAQevMHLtbLBxdvhQjY9MiNYP9v0O8nklz8SNd9DLHph0KSzojNZeL+tSMbt VG3h4NlC3qTYI1wtWCAlEpWLEdamgiSesHT190uFT/WpwalFHo9tNwzwpzhfsTgj1EA3 GE5dDyvRROeFk6YVFF6vOTKSp5mikiVU6iKyF7FsMbxr5nILxAqMOkeFM+boxu23/9Cr lK2hFARzWU/ZRhhSWRTu66sSbndCYYVZzDdEbcXnRaO/tELeUupAM3UGf7/p+GtWUkgp 5ffA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=eygTnG7E; 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 d27-20020a170906041b00b008c9c39f9d43si3080688eja.481.2023.03.01.02.34.28; Wed, 01 Mar 2023 02:34:51 -0800 (PST) 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=eygTnG7E; 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 S229735AbjCAK3v (ORCPT + 99 others); Wed, 1 Mar 2023 05:29:51 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47364 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229777AbjCAK3t (ORCPT ); Wed, 1 Mar 2023 05:29:49 -0500 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 946E22A6F3; Wed, 1 Mar 2023 02:29:47 -0800 (PST) Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 3212wTt7022351; Wed, 1 Mar 2023 09:57:08 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=ISrDjq0Ha+uMnwpC23DHqi+F/2UqrQtb9WTbLZDU0/U=; b=eygTnG7ELDW+Nze3h2K5GDlvOzaBBR9mr2l8Lo/9Xb1kLVdrdxALUvsKlHNdKcxEbr/5 TQriZ/I3JZX+/a5bIIEe2ZcF+pCykqJhbA851wHdnIIXBLdINtQZwMKXhnMRkJuIR7MM HORnBDmRfOD+Wp3L3i1r4wh27hYZNKb2A1WBtQDGWHUw0IuWDD73B8xVra9UPWSr5G9a 4A5d/PdNJGZ0FNvlYAtAc1NeQZNoGD6450Eyxmgx38IO/A615T4hZU2en1g+mlxKJ42t g37Z9ZL8dBDN1rwFwgN/du3q8BAIC2ubf0PN3valcpVk9N4tp82H6rPqHuKxrx18FGyf ug== Received: from nasanppmta03.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3p1p8h29qr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 01 Mar 2023 09:57:07 +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 3219v6Pp021308 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 1 Mar 2023 09:57: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.986.41; Wed, 1 Mar 2023 01:57:04 -0800 From: Mukesh Ojha To: , , CC: , , "Mukesh Ojha" Subject: [PATCH v2 4/4] firmware: qcom_scm: Add multiple download mode support Date: Wed, 1 Mar 2023 15:25:55 +0530 Message-ID: <1677664555-30191-5-git-send-email-quic_mojha@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1677664555-30191-1-git-send-email-quic_mojha@quicinc.com> References: <1677664555-30191-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: JY9-77q6ci4Ji-_D774m5f-k1B8-gaVk X-Proofpoint-GUID: JY9-77q6ci4Ji-_D774m5f-k1B8-gaVk X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-03-01_04,2023-02-28_03,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 mlxscore=0 bulkscore=0 phishscore=0 lowpriorityscore=0 suspectscore=0 mlxlogscore=999 spamscore=0 clxscore=1015 impostorscore=0 malwarescore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2303010082 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 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?1759161238184790762?= X-GMAIL-MSGID: =?utf-8?q?1759161238184790762?= 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 --- Changes in v2: - Accept mini/both as acceptable output. drivers/firmware/qcom_scm.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c index ca07208..39e071a 100644 --- a/drivers/firmware/qcom_scm.c +++ b/drivers/firmware/qcom_scm.c @@ -27,6 +27,8 @@ #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 #define MAX_DLOAD_LEN 8 @@ -1350,6 +1352,10 @@ static int set_dload_mode(const char *val, const struct kernel_param *kp) if (!strncmp(val, "full", strlen("full"))) { dload_mode = QCOM_DOWNLOAD_FULLDUMP; + } else if (!strncmp(val, "mini", strlen("mini"))) { + dload_mode = QCOM_DOWNLOAD_MINIDUMP; + } else if (!strncmp(val, "both", strlen("both"))) { + dload_mode = QCOM_DOWNLOAD_BOTHDUMP; } else if (!strncmp(val, "off", strlen("off"))) { dload_mode = QCOM_DOWNLOAD_NODUMP; } else { @@ -1383,7 +1389,7 @@ static struct kparam_string dload_mode_param = { module_param_cb(download_mode, &dload_mode_param_ops, &dload_mode_param, 0644); MODULE_PARM_DESC(download_mode, - "Download mode: off/full or 0/1/off/on for existing users"); + "download mode: off/full/mini/both(full+mini) or 0/1/off/on for existing users"); static int qcom_scm_probe(struct platform_device *pdev) {