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 A124C339863 for ; Tue, 3 Feb 2026 12:20:51 +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=1770121253; cv=none; b=S0riUsXss4z4YNwHAiDizT1qm2ZYjqtCU1LJ6A8E8XyfpcUu6jNrBKJLuI0bzhMCBcxvI4XnR8Ww0H3yzJDkpmXuxWbHQUUBy+rWaGFy8oYMKi/V3g8x+wPX9UcpTpN1DiCcyToMBJ3ZpUQgg5eqy78S13DoeZZgL6ycxBAUg84= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770121253; c=relaxed/simple; bh=ZX7iLq2hz/l5mm8pzHPIEzd18ODFdAKZFQ1qn5i4qy4=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=SVLuxLhKfQhr/swaNn+cWHTzbuA0FF966Fbeq6jTTJXkQfhndnpWQbKgIc60CtAVM7AzhzrlElGaBYlVdu9GzHPG7lkxoQADxvqJJlcsEQchm69oDCSn20sOX/CVjEwvUkzPRVHyoOV69FtZugh/i+6C0ldGJpl2y8vFrAXr3Y8= 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=CxO+crhN; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=YKuwYBEM; 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="CxO+crhN"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="YKuwYBEM" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 613CAG5e1192199 for ; Tue, 3 Feb 2026 12:20:50 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= GpI5WvoJlzYOz9UIPVv1v5bpeUv7kubf99JkM4paiRM=; b=CxO+crhNy2o2AJJ8 6d1cqQeRMfVNTGb12pJuO8U83BXbrstevPWjCOGSpkjCLlOQa6YJkmjtkuaKF/Jc rz4VCF2B0YZ4AQ+0H0Voe66Qm2XQPGBxOW1/Sa1zIHfWodzVN9kP3d8LYfFrNm0z FWX0lN6rFwS/AF2er019a2hvjcfr/Fsr9Q3H5vk0k0aS1YO87NWg1U3yfOVbHQgP +c+a4ufDGAJypLRTMtnn8dkQIuL0L+6YB555b+XXtlyPSH4JDWuoZ5TSG1vlh90y 21HspuB9sozhwT6xd4SUt5o3LI2edwuSgLf9X04kTixvSe/IpInjJzvMURntyHvP GMvzLw== Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4c3gsr010k-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 03 Feb 2026 12:20:50 +0000 (GMT) Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-8c710279d57so151301385a.3 for ; Tue, 03 Feb 2026 04:20:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1770121250; x=1770726050; 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=GpI5WvoJlzYOz9UIPVv1v5bpeUv7kubf99JkM4paiRM=; b=YKuwYBEMmdzhiyR5zvglZSDJ7KjAqnX+dVLZJeHQSLUlDtbmytw0SBIWANeT5v39is a/xYRYEd5atuS/8iea0MMmN9S8u3O7T76OGDrsYlNQ9RkC5OywzTaauDa/mMFS6ziOUF MX3DiYtCQZHeSA/IBmC8ezQfJdnKMAohPa16oaozK9nRWLcwVAJffb7QIokNs98fjXmE yR+XQKqRwy+9Y65eXZScoIIrJUh3nC94O4zICpIeLfemXK7NtIAA3zhbD+rtrXsGTJuk /ocYeY4Y0gbGCBrIAcShUu6C9D8JC+Z0P0oLzcfyq5kZsATvTJq+AACHigHJSv7r9PV4 Hbug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770121250; x=1770726050; 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=GpI5WvoJlzYOz9UIPVv1v5bpeUv7kubf99JkM4paiRM=; b=xDJbDuQ8LR90xuS5G3jXYeyujt20ipdrL3lodT8bjTTrhTrIzmBXv/ywVGThLM1ecD 1WwCIYANk3XGZdUgXKWbRNmEVY0hsKuGRvQUQdsWaUJYzP8WVnjKkU5zhF0qFdFpZ7dm 3LMGXZDgMRZo0iS8RWpoLESJB/lSLaffqGxasZJDmJ+IXHOpUY824/3bCRlKBFOn63/e U0a7juF5+7mr731oiPD3BBbTu0hK3jZUwolktNrSrqzodYFE2PwDwVtwZ8bBgEWxA7jy OTCaIXfZkL+1p5Mtis25FrlqpuYbpuUl0BnlcRDAY0QkbqCynntcZbZNfEzoorXwDNbK Lpeg== X-Forwarded-Encrypted: i=1; AJvYcCU13y5PuZh9+0BdkJSAXJfHFuxa8IraevYHHVX+te5tKxks0d4bAP3DUdmxPeKrTcUw26TqnmlnMssn7Hs=@vger.kernel.org X-Gm-Message-State: AOJu0YzCPzAMrSkrGfC/X7MIw6FZdA6PJuQ0L23gDdxOJqroi3RdZzC+ KA2Q8A3HF2RiUNPXuO6S9P6JGPrM9OG/vchxxHHHSYqqUkHbIf7g4I4pngSGBGAVemd6Jc/1P3n CdKpLXiQac3rfrJn+qahnKIT1r9jbGZGulrJLn+zZ7SNs2Fe5SFW0uN0AUO50FKy9Mgo= X-Gm-Gg: AZuq6aLuW0jsrOw19WJYH7M3oOT48SshFeM8CbxI+wJTh03Vr6MZUabLSPqD15PVIeD uIknTJH0B+lH4W9Eky9XDuE9O3PMa3j5JoL3wRnOJFJUS5jRNxRf2dycFBHbvA/b5+kcJfdYCRI wUZdXMv+6nXH0xuogPydFE9Amm3X/P6t9MBE7Vy92lOdDArMZKzQSKCIMd760JQBwEVgysGUPBM hjUp3Z0xHuKVBDoAbVocv/2lxxOqaw9VDjIRQZk/dN6q8c5DPxOge+/4lBUiXVjVkKSILyyzs9v 3hmtoU13qChGgbvtLOEqDkpbBWj4/ceUoY5Ae0wRMrHdzHHGYdlEXd+BjPDVvky0eN4KrdPQN+o FjChlpg1k/uAM+S9gdbs8PudaWHnxoQB2XXslbfvcQ+wZtpSeCyPRuclP2mrklGeKNDI= X-Received: by 2002:a05:620a:bd6:b0:8c0:cec5:148c with SMTP id af79cd13be357-8c9eb34ff20mr1532689185a.11.1770121249559; Tue, 03 Feb 2026 04:20:49 -0800 (PST) X-Received: by 2002:a05:620a:bd6:b0:8c0:cec5:148c with SMTP id af79cd13be357-8c9eb34ff20mr1532684985a.11.1770121249020; Tue, 03 Feb 2026 04:20:49 -0800 (PST) Received: from [192.168.119.254] (078088045245.garwolin.vectranet.pl. [78.88.45.245]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b8dd99188adsm891757466b.50.2026.02.03.04.20.46 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 03 Feb 2026 04:20:48 -0800 (PST) Message-ID: Date: Tue, 3 Feb 2026 13:20:45 +0100 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: Praveen Talari , 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: Konrad Dybcio In-Reply-To: <20260202180922.1692428-6-praveen.talari@oss.qualcomm.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Authority-Analysis: v=2.4 cv=A+9h/qWG c=1 sm=1 tr=0 ts=6981e822 cx=c_pps a=50t2pK5VMbmlHzFWWp8p/g==:117 a=FpWmc02/iXfjRdCD7H54yg==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=v6fWVTfWKNrbvxdKqGkA:9 a=QEXdDO2ut3YA:10 a=IoWCM6iH3mJn3m4BftBB:22 X-Proofpoint-ORIG-GUID: eFaQWpbcARZz371Tt7WoI7hlva2Pkn9S X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjAzMDA5NiBTYWx0ZWRfX8LO1J/AYVYIn ZVRfxZ8P4O8K67ANiYZ0gKVBZDVAgwLK3UUcVJBaSJ1SG+Lq4LB5fcgIDqJrBytOAqBXm51Fu0m kEivGJJCVP7yq+0BI6D/Aumk82ZlZFHppLRu4ZrKSt6yMCgxeosYI7oQZhoFrXZxHVI3EXqqljK lZ/eQ+SQSxJ5CC69BgS27e0H2TKH9/Dg3lGMwA4Qzchwsm0DVMJNBv9BZI214d1qkLmwNhf5hxN 1GlGt/DA+Sm4JcUXLykH2weHU4+olTM0kZvZZjF13hGWnMceIvhdU4IRMxHBstp7/3PC/QuglPX KlRHjEGzwQaPqk9UsA7J615xXyMC40EnAd4U99nnN/i91axQo+wvQZfirk708Ab1scnHj6J/1wY LYwjaq7gpWv7IQTJjZWsbofEtcjIw71r4v4Co0h0r4FC2fMcl0UV/Eck7eeD1iMKvfuUPFF7gjq 5O6PV8ikpZRuzMYU0wA== X-Proofpoint-GUID: eFaQWpbcARZz371Tt7WoI7hlva2Pkn9S 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_03,2026-02-02_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 adultscore=0 bulkscore=0 malwarescore=0 priorityscore=1501 clxscore=1015 impostorscore=0 suspectscore=0 lowpriorityscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602030096 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() 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