From nobody Wed Jul 1 21:51:43 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 83D7BC4332F for ; Wed, 15 Dec 2021 16:34:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244903AbhLOQeJ (ORCPT ); Wed, 15 Dec 2021 11:34:09 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51862 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244875AbhLOQeF (ORCPT ); Wed, 15 Dec 2021 11:34:05 -0500 Received: from mail-qt1-x82e.google.com (mail-qt1-x82e.google.com [IPv6:2607:f8b0:4864:20::82e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 98CDEC061747 for ; Wed, 15 Dec 2021 08:34:04 -0800 (PST) Received: by mail-qt1-x82e.google.com with SMTP id o17so22393228qtk.1 for ; Wed, 15 Dec 2021 08:34:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=F5dEv0XsUK/LL/vq8qVvTJtdjJBhL87KpYRMX7FjIi8=; b=xb1QzrqDInG7zJo6aTCTMBg4hrEF3y2HMXCaIoJSaeHnAgya6V4TRPENc+jqFultGZ sDRhR0OjbJlGm7G215+LxyMkINy61AsUQZEn0Ao1aNaV4sPJ8+Zpa0Ma7nKzg49ZKKoe enuP9YOUBvxG8qphe7Udvbvr/MFQygYa3pNUYMSzFbm3lbYM2uU1P0Mt+J0nhX+kEepU XpW0p7YUh6lNqNkiG5bVfEf+ygNNAFQBZnTPFYiYQt8S4gJ+l4RfJIyRsla5nQ54z0aS Y6LWkGcpT4B09b/HdChh5uPkoigOQ6YB9naSHHVKiFA5ZOLIlbVK62BNpTAVoQYWzKVp rqrw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=F5dEv0XsUK/LL/vq8qVvTJtdjJBhL87KpYRMX7FjIi8=; b=7l9pQkaINv2N8A283ng88t5/QYPvR7nx+69uPq0bWCW/2jK/X1ZH4h2x2FFwCP39f7 d0odwc/vYUc6UJG92nadnLFRvbCh5Axab/P0pdVq1uRY8ubU8LTw1h/7EdNu9tP7ART2 CCPmerQ2+Qc0uiM2hLWX6K1WAUCRZpYmCljFOou2spz6qq2c8CpD7w13qdQw6z8IGvJc UT5bHtVDZ7AI6qGA5Z8AX96j7P/tTYP+smZKMfbkR59aIxvrBCpsA7KE1jFEixweoI6q e5TbcAYwrBNYgXb3FckUL/IDGDDMsKAMwmdeiU2pmL1rhgf2FA6aN9L3bzTgnfU/mn8f UvSQ== X-Gm-Message-State: AOAM533C8BjJZT2xpUPen/5uLY0jT+b/TY8L9DnZlKDIuUSnkNd4xpON jrqDyBfyuVrCOAZ68iqPk4HSSw== X-Google-Smtp-Source: ABdhPJzrT7H1kacCFJnt7pbm8rbdzKiRrak7rk2e1XT6elT+OOPo0lhOhbGy9bqx0wMXlDsVAIYTaA== X-Received: by 2002:ac8:5bcc:: with SMTP id b12mr12984500qtb.249.1639586043584; Wed, 15 Dec 2021 08:34:03 -0800 (PST) Received: from pop-os.fios-router.home (pool-71-163-245-5.washdc.fios.verizon.net. [71.163.245.5]) by smtp.googlemail.com with ESMTPSA id w10sm1824832qtj.37.2021.12.15.08.34.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Dec 2021 08:34:03 -0800 (PST) From: Thara Gopinath To: agross@kernel.org, bjorn.andersson@linaro.org, daniel.lezcano@linaro.org, rafael@kernel.org, rui.zhang@intel.com, robh+dt@kernel.org Cc: linux-arm-msm@vger.kernel.org, linux-pm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [Patch v2 1/3] thermal: qcom: lmh: Add support for sm8150 Date: Wed, 15 Dec 2021 11:33:58 -0500 Message-Id: <20211215163400.33349-2-thara.gopinath@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211215163400.33349-1-thara.gopinath@linaro.org> References: <20211215163400.33349-1-thara.gopinath@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Add compatible to support LMh for sm8150 SoC. sm8150 does not require explicit enabling for various LMh subsystems. Add a variable indicating the same as match data which is set for sdm845. Execute the piece of code enabling various LMh subsystems only if enable algorithm match data is present. Signed-off-by: Thara Gopinath --- v1->v2: - Added LMH_ENABLE_ALGOS of_device_id match data to indicate whether LMh subsytems need explicit enabling or not. drivers/thermal/qcom/lmh.c | 62 +++++++++++++++++++++----------------- 1 file changed, 35 insertions(+), 27 deletions(-) diff --git a/drivers/thermal/qcom/lmh.c b/drivers/thermal/qcom/lmh.c index eafa7526eb8b..80d26d043498 100644 --- a/drivers/thermal/qcom/lmh.c +++ b/drivers/thermal/qcom/lmh.c @@ -28,6 +28,8 @@ =20 #define LMH_REG_DCVS_INTR_CLR 0x8 =20 +#define LMH_ENABLE_ALGOS ((void *)1) + struct lmh_hw_data { void __iomem *base; struct irq_domain *domain; @@ -87,6 +89,7 @@ static int lmh_probe(struct platform_device *pdev) { struct device *dev =3D &pdev->dev; struct device_node *np =3D dev->of_node; + const struct of_device_id *of_id; struct device_node *cpu_node; struct lmh_hw_data *lmh_data; int temp_low, temp_high, temp_arm, cpu_id, ret; @@ -141,32 +144,36 @@ static int lmh_probe(struct platform_device *pdev) if (!qcom_scm_lmh_dcvsh_available()) return -EINVAL; =20 - ret =3D qcom_scm_lmh_dcvsh(LMH_SUB_FN_CRNT, LMH_ALGO_MODE_ENABLE, 1, - LMH_NODE_DCVS, node_id, 0); - if (ret) - dev_err(dev, "Error %d enabling current subfunction\n", ret); - - ret =3D qcom_scm_lmh_dcvsh(LMH_SUB_FN_REL, LMH_ALGO_MODE_ENABLE, 1, - LMH_NODE_DCVS, node_id, 0); - if (ret) - dev_err(dev, "Error %d enabling reliability subfunction\n", ret); - - ret =3D qcom_scm_lmh_dcvsh(LMH_SUB_FN_BCL, LMH_ALGO_MODE_ENABLE, 1, - LMH_NODE_DCVS, node_id, 0); - if (ret) - dev_err(dev, "Error %d enabling BCL subfunction\n", ret); - - ret =3D qcom_scm_lmh_dcvsh(LMH_SUB_FN_THERMAL, LMH_ALGO_MODE_ENABLE, 1, - LMH_NODE_DCVS, node_id, 0); - if (ret) { - dev_err(dev, "Error %d enabling thermal subfunction\n", ret); - return ret; - } - - ret =3D qcom_scm_lmh_profile_change(0x1); - if (ret) { - dev_err(dev, "Error %d changing profile\n", ret); - return ret; + of_id =3D of_match_device(dev->driver->of_match_table, dev); + + if (of_id && of_id->data =3D=3D LMH_ENABLE_ALGOS) { + ret =3D qcom_scm_lmh_dcvsh(LMH_SUB_FN_CRNT, LMH_ALGO_MODE_ENABLE, 1, + LMH_NODE_DCVS, node_id, 0); + if (ret) + dev_err(dev, "Error %d enabling current subfunction\n", ret); + + ret =3D qcom_scm_lmh_dcvsh(LMH_SUB_FN_REL, LMH_ALGO_MODE_ENABLE, 1, + LMH_NODE_DCVS, node_id, 0); + if (ret) + dev_err(dev, "Error %d enabling reliability subfunction\n", ret); + + ret =3D qcom_scm_lmh_dcvsh(LMH_SUB_FN_BCL, LMH_ALGO_MODE_ENABLE, 1, + LMH_NODE_DCVS, node_id, 0); + if (ret) + dev_err(dev, "Error %d enabling BCL subfunction\n", ret); + + ret =3D qcom_scm_lmh_dcvsh(LMH_SUB_FN_THERMAL, LMH_ALGO_MODE_ENABLE, 1, + LMH_NODE_DCVS, node_id, 0); + if (ret) { + dev_err(dev, "Error %d enabling thermal subfunction\n", ret); + return ret; + } + + ret =3D qcom_scm_lmh_profile_change(0x1); + if (ret) { + dev_err(dev, "Error %d changing profile\n", ret); + return ret; + } } =20 /* Set default thermal trips */ @@ -213,7 +220,8 @@ static int lmh_probe(struct platform_device *pdev) } =20 static const struct of_device_id lmh_table[] =3D { - { .compatible =3D "qcom,sdm845-lmh", }, + { .compatible =3D "qcom,sdm845-lmh", .data =3D LMH_ENABLE_ALGOS}, + { .compatible =3D "qcom,sm8150-lmh", }, {} }; MODULE_DEVICE_TABLE(of, lmh_table); --=20 2.25.1 From nobody Wed Jul 1 21:51:43 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 98A03C433EF for ; Wed, 15 Dec 2021 16:34:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244929AbhLOQeT (ORCPT ); Wed, 15 Dec 2021 11:34:19 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51868 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244881AbhLOQeF (ORCPT ); Wed, 15 Dec 2021 11:34:05 -0500 Received: from mail-qt1-x82a.google.com (mail-qt1-x82a.google.com [IPv6:2607:f8b0:4864:20::82a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ABD98C06173E for ; Wed, 15 Dec 2021 08:34:05 -0800 (PST) Received: by mail-qt1-x82a.google.com with SMTP id z9so22343413qtj.9 for ; Wed, 15 Dec 2021 08:34:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=0diK6zWMgOO/TArP/zyW7Q3OH2Ix/QmAaJD5h2ncz4A=; b=mc82jMSfzgK5zWR/xwVHCjSs6aqfCjK17wcc+NRsgWAPP/MLBuk7J312TQpVPXAAeX Kxp8w8JC1So1hoOvvJjK95W1BLOwlMWtSqUSWewA0Y6h73CwTgZc9chAi/0qWCFvmIhf VGow/I0BfZ9ac/zP11FSHtcxXJ209z6lfOnvg+nON6sNvahQj6MTB2QdfXy2licQiOLn iBZ7TFGYF2gBkqoQ0xJjm0g4alScvhCelHrjmZTQwT4KTfVdvfFkR+ZJIRF98vI/GqNI wZIM2TQl4jz4wTJV2YyTzf3oMIET3/rUL7sxMRM4ueQ1l4Nh/ZzZuK38/m1AtUnoSXiL 9fkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=0diK6zWMgOO/TArP/zyW7Q3OH2Ix/QmAaJD5h2ncz4A=; b=nsO4DqLMKpt/WzOzNW9GGYynGd7XXIljXtSj1ktaiu2L1x72RfYG+MhtFPNH8H2CMo tConPk1ahF7mP2UXcbkob4BwbiRg2iruK/IJLpt9vRcrg8C/p/pOktyae6BM+PqND935 h/zA+ojUHRoghXHAcWwxtS8+1YK5HNwWcJBgmsh/r74gHelpfUE2HlpNkZGZxEoak7QV pKtE4yvie2n01Qnw8iSzFpVeINZ4UcqfzO+WUrmKlyDSdFSl9ocfvjhM197Vfanl5mLL Q+yTG4JYXcRwAVCz3p71IpxYzQUzshxcS9Al6b25ZJNN+bXDcWyIZe8+1iDzphouJD7Y h5XA== X-Gm-Message-State: AOAM53107tucgBib6iFN5oGqRc6f3rKEvr6WElReI4s7OpGAkY5rS/mW nexc8OlnxomVqa2uVLlKOSTyOA== X-Google-Smtp-Source: ABdhPJy350X5/5YWY27/YU/Cu5RtpyHJHn5jrsr6vBk8zWDP6mT8H5IiPECoRPx6TCZLAmQj2qUx7w== X-Received: by 2002:a05:622a:1196:: with SMTP id m22mr13049290qtk.290.1639586044780; Wed, 15 Dec 2021 08:34:04 -0800 (PST) Received: from pop-os.fios-router.home (pool-71-163-245-5.washdc.fios.verizon.net. [71.163.245.5]) by smtp.googlemail.com with ESMTPSA id w10sm1824832qtj.37.2021.12.15.08.34.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Dec 2021 08:34:04 -0800 (PST) From: Thara Gopinath To: agross@kernel.org, bjorn.andersson@linaro.org, daniel.lezcano@linaro.org, rafael@kernel.org, rui.zhang@intel.com, robh+dt@kernel.org Cc: linux-arm-msm@vger.kernel.org, linux-pm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [Patch v2 2/3] arm64: dts: qcom: sm8150: Add support for LMh node Date: Wed, 15 Dec 2021 11:33:59 -0500 Message-Id: <20211215163400.33349-3-thara.gopinath@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211215163400.33349-1-thara.gopinath@linaro.org> References: <20211215163400.33349-1-thara.gopinath@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Add LMh nodes for cpu cluster0 and cpu cluster1 for sm8150 SoC. Signed-off-by: Thara Gopinath --- arch/arm64/boot/dts/qcom/sm8150.dtsi | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/sm8150.dtsi b/arch/arm64/boot/dts/qco= m/sm8150.dtsi index 81b4ff2cc4cd..e755d7ab78dd 100644 --- a/arch/arm64/boot/dts/qcom/sm8150.dtsi +++ b/arch/arm64/boot/dts/qcom/sm8150.dtsi @@ -3650,6 +3650,30 @@ cpufreq_hw: cpufreq@18323000 { #freq-domain-cells =3D <1>; }; =20 + lmh_cluster1: lmh@18350800 { + compatible =3D "qcom,sm8150-lmh"; + reg =3D <0 0x18350800 0 0x400>; + interrupts =3D ; + cpus =3D <&CPU4>; + qcom,lmh-temp-arm-millicelsius =3D <60000>; + qcom,lmh-temp-low-millicelsius =3D <84500>; + qcom,lmh-temp-high-millicelsius =3D <85000>; + interrupt-controller; + #interrupt-cells =3D <1>; + }; + + lmh_cluster0: lmh@18358800 { + compatible =3D "qcom,sm8150-lmh"; + reg =3D <0 0x18358800 0 0x400>; + interrupts =3D ; + cpus =3D <&CPU0>; + qcom,lmh-temp-arm-millicelsius =3D <60000>; + qcom,lmh-temp-low-millicelsius =3D <84500>; + qcom,lmh-temp-high-millicelsius =3D <85000>; + interrupt-controller; + #interrupt-cells =3D <1>; + }; + wifi: wifi@18800000 { compatible =3D "qcom,wcn3990-wifi"; reg =3D <0 0x18800000 0 0x800000>; --=20 2.25.1 From nobody Wed Jul 1 21:51:43 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A6CCFC433EF for ; Wed, 15 Dec 2021 16:34:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244927AbhLOQeO (ORCPT ); Wed, 15 Dec 2021 11:34:14 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51888 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244890AbhLOQeH (ORCPT ); Wed, 15 Dec 2021 11:34:07 -0500 Received: from mail-qv1-xf2c.google.com (mail-qv1-xf2c.google.com [IPv6:2607:f8b0:4864:20::f2c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A1C8EC061747 for ; Wed, 15 Dec 2021 08:34:06 -0800 (PST) Received: by mail-qv1-xf2c.google.com with SMTP id jo22so20737033qvb.13 for ; Wed, 15 Dec 2021 08:34:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=GgGIgMajEhcXcb+pSiiU8hULLmnW3Ix8+OrCDOiX3Lw=; b=tvxDsHukx98Bl1dr8J4BCivPCewSe+XXEALjhJFUjvhImq9MArSB0jWh/L+CH9L57Z Jg5Rhcyd0FN1spcGFuPAyw8b8BiYIqeVdYRUIUyEqv7+9ua1ek1TQ3A+8kysdEk7pnl9 gZvr+lDkr5AVF+9NEgDx5MkV9CF69D/NsJA4fGXekSE4ubXzbFaVwvcFitlIEfdz1nxa VpwJJ9sPGpddnWvasyqQSNXYvbmkW1rWIZdHNai7xrICgirKZ1R23+wub+wkjnSu060L w0a2rMmn2VbKcA22omKAUbxV2SB/9/MNycDATt1GnwR6zhSwqrXp4s/MPU/lADZg0IKF QjeQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=GgGIgMajEhcXcb+pSiiU8hULLmnW3Ix8+OrCDOiX3Lw=; b=A+Khb05GY2Y6MpYf8Q5/X6JoAKSroWe3+Mhdq5l7fZJjl6UFooNVHqKtjYEf02tuRh PlehQBL8SceGcv+17jvGTaU91CmKcnzEnLXL+pgRjbAxNVrJlPK+2WGmRg9/L0xCWrRE jqkjy7YqztteZDDo2jteU5OPWyCC1n1dpQLmzU7OJ3rt8gOGNlmO4d64Miu7/Y5ecZiI Xu+0OFfGG9PEojJlmrXqMMrWC+H5ccEYznQptvgZMZO7or6mhtnS5e8PwtoYb8rzkMLp rEYfpofwtVoptP6R137QYSGfnGCGKWAPY8Kzo1hvoEeSYUtCnWX6PNnq3t+PMCESmZkh O1Qw== X-Gm-Message-State: AOAM533+XXRxVd/m8KusOEsbt9s4rvhy8+fwf+0qBLwwZ6rgLhpqFY7M QAhOIIaAcrL5+6yMRqCKVUzGaQ== X-Google-Smtp-Source: ABdhPJwhXqy8GxjvDlO1udF6JRXEeZtq/mjtgfQ89irHU6rbPueO1Ii1sLU2RrONdSXciSrUhx140A== X-Received: by 2002:a05:6214:cc7:: with SMTP id 7mr11525178qvx.55.1639586045725; Wed, 15 Dec 2021 08:34:05 -0800 (PST) Received: from pop-os.fios-router.home (pool-71-163-245-5.washdc.fios.verizon.net. [71.163.245.5]) by smtp.googlemail.com with ESMTPSA id w10sm1824832qtj.37.2021.12.15.08.34.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Dec 2021 08:34:05 -0800 (PST) From: Thara Gopinath To: agross@kernel.org, bjorn.andersson@linaro.org, daniel.lezcano@linaro.org, rafael@kernel.org, rui.zhang@intel.com, robh+dt@kernel.org Cc: linux-arm-msm@vger.kernel.org, linux-pm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [Patch v2 3/3] dt-bindings: thermal: Add sm8150 compatible string for LMh Date: Wed, 15 Dec 2021 11:34:00 -0500 Message-Id: <20211215163400.33349-4-thara.gopinath@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211215163400.33349-1-thara.gopinath@linaro.org> References: <20211215163400.33349-1-thara.gopinath@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Extend the LMh dt binding document to include compatible string supporting sm8150 SoC. Signed-off-by: Thara Gopinath Acked-by: Rob Herring --- Documentation/devicetree/bindings/thermal/qcom-lmh.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/thermal/qcom-lmh.yaml b/Docu= mentation/devicetree/bindings/thermal/qcom-lmh.yaml index 289e9a845600..a9b7388ca9ac 100644 --- a/Documentation/devicetree/bindings/thermal/qcom-lmh.yaml +++ b/Documentation/devicetree/bindings/thermal/qcom-lmh.yaml @@ -19,6 +19,7 @@ properties: compatible: enum: - qcom,sdm845-lmh + - qcom,sm8150-lmh =20 reg: items: --=20 2.25.1