From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3131734D392 for ; Wed, 4 Feb 2026 05:18:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770182337; cv=none; b=IsqZOjPzYiDtyvVzV//idPkL/vJdfjI8fzIjcykkF6UDDnzV4fwPy7tHHjftRzBcHkxXhepY0/n2vJlYsJNslys0QFch1K7LzeGtM7XbxNbJON4kedeQNW+zV3n8NZ5L/8goZ8gzJkVUiL/Z9+BMy05J7RYsozfYYCbgfwJ4Fio= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770182337; c=relaxed/simple; bh=pZbP/KDm3d9zf7rWC1WJ+TPqscXWFX0xVrRW0kGXTZI=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=K4uA9hxvBp9jQeEaivo6abUbvUUpKxP/sqTFmN6pYlJAfHDtaVyuFaglHl/TQ5roF3rfrbG19YQ1NNETyzGAHej/jY3sO6cExAQJN2fEfIbYmfA2CAUTdsSzMqfBVqirMOcxGh8GZXaqgj+ODQRDLusPkMb9qTJcczRHKbHF04s= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=bc5mgXxS; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=fDBU3BQp; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="bc5mgXxS"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="fDBU3BQp" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6144O16m2667143 for ; Wed, 4 Feb 2026 05:18:56 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= QTGIdDXWEeHzCVDoRyE9D4/yRVEIvH7oRcS5mXl5a6Y=; b=bc5mgXxSTRsnqNKB J+GM7FQQl/VbKh0idS9Gy2i//haHzHcbruxMz+cfdYKGyw1RgJA/wtYYJEBNhfgO tGOstA6lYLnku+3w5GhSnpmOyXn/cdjoRGPdloQoBLvGs7BnzxmvQt0z73ItQ9lf tmAGntFasgdTyF/amFjvgyTz3m+T3/qCpgXfpjMmTJ3L53FSSduKwwkSuJdGgd9r hwZy7fgwFDQhbVcLaaaqoejrUE/ywq6mEWBBEE3kWsCFicJpg0xqtttrryAMas+3 emr/cldusnZe6TGSuU4BIYENqqYiLn0xXv4N1w+Cf1UrOTGpdCuB9cekLiK09j2/ ADbCZw== Received: from mail-pg1-f199.google.com (mail-pg1-f199.google.com [209.85.215.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4c3nf61ykd-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 04 Feb 2026 05:18:56 +0000 (GMT) Received: by mail-pg1-f199.google.com with SMTP id 41be03b00d2f7-c6136af8e06so4012095a12.1 for ; Tue, 03 Feb 2026 21:18:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1770182335; x=1770787135; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=QTGIdDXWEeHzCVDoRyE9D4/yRVEIvH7oRcS5mXl5a6Y=; b=fDBU3BQpfjCu6eW0Z+4HRumg1mU6V4p3IIsRuGxzOGLV7oBZp2iqBzXcnmcSEuek6A rFj/K7Ss28KfCO8rlrD6KhDHduMWt2tz/CsLcOjx68i9JccWsYLk/j0RD8Oz4GWaxkRt ebBAxvcL+o3Xo3nBovKy0kXdQXD4TcPRRUBk6TMMOSwiy27DkcdexQi77A/iLJOhI42b /EMNpzsXGY+SJkbLgIg4mMSgKvrLZadf7JAqjsaWZbrhhQxzsM9UV8CsNk0bfKyBNkU+ hbUFfxwxPB3Pm6eQgPtcRAub3/VSWr/uHmYtrRWNiWBY5hZieQYz5RlkDeitKagKAb5E 566A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770182335; x=1770787135; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=QTGIdDXWEeHzCVDoRyE9D4/yRVEIvH7oRcS5mXl5a6Y=; b=jlSOBdh8SJA0bl2zZx5qp3OjtJ2kX2PXnAp81UIgqO4Xg7Ml6A1x8G5hX2x2NwJ1Gz Ihme62o4aTZd5Xnl97veWRhy6vUGMnRZcHBNPwisMWb2bl4FxvptR7+6zZhmi6BDz7g3 /8ysD1uR49dfp7Z504aRCbEsp6weHwLsV4jEyyMGWihGG7BorAXQoSocgVxuA1QzMp+7 NW017OlRQu6xmt7BK8azrQ53/TMNT9zSBVWpwPBQj7Yv+ms42vjQL2RdK2DMNepCiXtn 9lsdYSF/5OuvRW4vOVWPQFCn/DcKMLecdHbnpe7V0H/XY71vMwj92CHA/izPrfpdsjdv L6pQ== X-Forwarded-Encrypted: i=1; AJvYcCV/xKQSBDmERxuOGAaeyoCR6Ag0b6a2xAx2SukmKpPcl6ZhJl9vCsy4MUAaeTLKeXMy6N8O7too3HJQ4rU=@vger.kernel.org X-Gm-Message-State: AOJu0Yw1e8RHYCj+bfJ1DygS6doCJZ/2+9tOFQs4biH60xno1tovdSv/ Zu6kZC4RPeufjB0I3iYva/4uaGHkLXDrExKOXNvgDIex1SL150foGS7JX+tiBNKydGgCxaUgEdT exVRC9HmHzB/AJsl7nYafQrlOZ+KRwVq0ldczLDUUrSr8bsdmiaIRJPZALHd04zy9Whw= X-Gm-Gg: AZuq6aLYgy2LMNl1Lq+WZ8vE9hyN3mAujT1mv7xNmpqiq9nh1TWdKmRedRsxIxuqbKm u5ixwFtc1pIC5GZ9ZvaqScIRSEFIBmfU5AFXu7NTVLAJWHXIOaVo6Xwdx+9UYxTN0P2eQwwlugm CqbKM5xNQZvhRVYi6vjyYfEVeo1s0moImuM2TcGnLEohBDaJekf3Kjop2jfYrr2XVrRAuZKQfMJ iODiGJyRMdlSIu4Wj8j1LclEQCYspzxQkili+r9Sdyt4+SHJhF2G1tdBypMs4LkNYfbF2oTlAsA GXSOn9b+skPc3l1H2E+x9B3VYyRnSUoefdOPiMRfV1+f7CbaMkSaZHY4KuSVJT4DvJvD7I2tOoE EBvI8yR73+xFd5ZBQmkiLcjFOo9TsR4leE2kdAAQaeg== X-Received: by 2002:a05:6a21:4d92:b0:350:7238:7e2e with SMTP id adf61e73a8af0-39372438780mr1706545637.45.1770182335065; Tue, 03 Feb 2026 21:18:55 -0800 (PST) X-Received: by 2002:a05:6a21:4d92:b0:350:7238:7e2e with SMTP id adf61e73a8af0-39372438780mr1706504637.45.1770182334502; Tue, 03 Feb 2026 21:18:54 -0800 (PST) Received: from [10.218.32.171] ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2a933854321sm10224445ad.3.2026.02.03.21.18.48 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 03 Feb 2026 21:18:54 -0800 (PST) Message-ID: <06d16c97-5db0-4c2d-9d30-68fc2ef1c5c0@oss.qualcomm.com> Date: Wed, 4 Feb 2026 10:48:47 +0530 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v4 05/13] soc: qcom: geni-se: Add resources activation/deactivation helpers To: Konrad Dybcio , Andi Shyti , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Mukesh Kumar Savaliya , Viken Dadhaniya , Bjorn Andersson , Konrad Dybcio , linux-arm-msm@vger.kernel.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, bjorn.andersson@oss.qualcomm.com, dmitry.baryshkov@oss.qualcomm.com Cc: prasad.sodagudi@oss.qualcomm.com, quic_vtanuku@quicinc.com, aniket.randive@oss.qualcomm.com, chandana.chiluveru@oss.qualcomm.com, jyothi.seerapu@oss.qualcomm.com References: <20260202180922.1692428-1-praveen.talari@oss.qualcomm.com> <20260202180922.1692428-6-praveen.talari@oss.qualcomm.com> Content-Language: en-US From: Praveen Talari In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Proofpoint-GUID: JeFEN9Gy8U0RW1cXUHtBnUmTVCU_DEEH X-Proofpoint-ORIG-GUID: JeFEN9Gy8U0RW1cXUHtBnUmTVCU_DEEH X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjA0MDAzNiBTYWx0ZWRfXw8BPtRlH17sr wr5Uz4Jxocx1wjSsCUckbjBF2jQWmM/GbgBmoe2tr2VDwR/lxDfyhkHe3m7yNDOGMYG/gPGEGxs R/2q+gw7drq6VXbreylboOS5a8Q2kqrFF2wCQFXfh1hgtqNIzZzA9B7m4Enmp4ZkMGHC6pV3aQa bRF3drY3R0QCvaOJaTdR4s6gkiMh99IKG/8FQLeOMUJ0WZwRj/3Fmb5+5lZib0XDf7RP7nFESU+ IeLEJjfmb/UnZzGtr54fp0CLdJIi0Xz6zRItL/Zimk1T88tTYL64YDlLmhMuEi6+7Qxg5sj7ScF xpk1FaJmB3fqFG5MvZJj6ANHWgnyzLNoQdteOXEw/n+aj05WVg7wwy9u6cq3VJ/CLQZDXngEj94 rWNqX3PWjLK8+ipkZXSQZAcTfL8EEmIQBbEA0GTHXRsdjoZx/VYpHMdP0YD1PWoB3UO6iVbVmjH Ao+Q8qWGWd4Y+cmz7HQ== X-Authority-Analysis: v=2.4 cv=doTWylg4 c=1 sm=1 tr=0 ts=6982d6c0 cx=c_pps a=Oh5Dbbf/trHjhBongsHeRQ==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=_TUg1R5cyTUgEzYIA1EA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=_Vgx9l1VpLgwpw_dHYaR:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-03_07,2026-02-03_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 clxscore=1015 impostorscore=0 suspectscore=0 spamscore=0 priorityscore=1501 bulkscore=0 phishscore=0 lowpriorityscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602040036 Hi Konrad, On 2/3/2026 5:50 PM, Konrad Dybcio wrote: > On 2/2/26 7:09 PM, Praveen Talari wrote: >> The GENI SE protocol drivers (I2C, SPI, UART) implement similar resource >> activation/deactivation sequences independently, leading to code >> duplication. >> >> Introduce geni_se_resources_activate()/geni_se_resources_deactivate() to >> power on/off resources.The activate function enables ICC, clocks, and TLMM >> whereas the deactivate function disables resources in reverse order >> including OPP rate reset, clocks, ICC and TLMM. >> >> Signed-off-by: Praveen Talari >> --- > > [...] > >> +int geni_se_resources_deactivate(struct geni_se *se) >> +{ >> + int ret; >> + >> + if (has_acpi_companion(se->dev)) >> + return 0; >> + >> + if (se->has_opp) >> + dev_pm_opp_set_rate(se->dev, 0); > > This is still unbalanced at this point of abstraction, notably > keeping the RPMh vote at 0 permanently after the first > geni_se_resources_deactivate() since there's no counterpart in > _activate() I don’t think we need a counterpart for this in the activate path, since it is specific to dropping the vote during suspend. The vote will anyway be taken again as part of the transfer after the device resumes. Thanks, Praveen Talari > > That said, the serial and UART drivers do rate calculations internally, > so perhaps trying to be overly smart about it wouldn't be a good thing > either.. Let's add a note in kerneldoc that the activate must be preceded > by a dev_pm_opp_set_xyz() > > [...] > >> +int geni_se_resources_activate(struct geni_se *se) >> +{ >> + int ret; >> + >> + if (has_acpi_companion(se->dev)) >> + return 0; >> + >> + ret = geni_icc_enable(se); >> + if (ret) >> + return ret; >> + >> + ret = geni_se_clks_on(se); >> + if (ret) >> + goto out_icc_disable; >> + >> + ret = pinctrl_pm_select_default_state(se->dev); >> + if (ret) { >> + geni_se_clks_off(se); >> + goto out_icc_disable; >> + } >> + >> + return ret; > > nit: this 'return' always returns 0 > > Konrad > >> + >> +out_icc_disable: >> + geni_icc_disable(se); >> + return ret; >> +} >> +EXPORT_SYMBOL_GPL(geni_se_resources_activate); >> + >> /** >> * geni_se_resources_init() - Initialize resources for a GENI SE device. >> * @se: Pointer to the geni_se structure representing the GENI SE device. >> diff --git a/include/linux/soc/qcom/geni-se.h b/include/linux/soc/qcom/geni-se.h >> index c182dd0f0bde..36a68149345c 100644 >> --- a/include/linux/soc/qcom/geni-se.h >> +++ b/include/linux/soc/qcom/geni-se.h >> @@ -541,6 +541,10 @@ int geni_icc_disable(struct geni_se *se); >> >> int geni_se_resources_init(struct geni_se *se); >> >> +int geni_se_resources_activate(struct geni_se *se); >> + >> +int geni_se_resources_deactivate(struct geni_se *se); >> + >> int geni_load_se_firmware(struct geni_se *se, enum geni_se_protocol_type protocol); >> #endif >> #endif