From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.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 0631921ADCB for ; Mon, 23 Feb 2026 13:40:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771854006; cv=none; b=DKEKv6AQBnlCBn+lZLjar8gR65hC88fOk4kHn9iqKXqdA3JRQ8ZToApv7BpqhDdkYpSaK4JD37VWt6PSyn84kyvw6LPtZuCStZp/NSyhaLC2gnEbdHMKduHhYpiY1B3mNu3k16P3ehAk2l+Er/BYWzYl2OjQRTsc1GSwptG8wMs= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771854006; c=relaxed/simple; bh=XVY/teWmIRKG0bhadE1kKsMkinPkfohwJbkc0JjNgCo=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=hXSYhBs3DRVsMNtfCviU58QeusNmp3zCQnbisqPmECPVF6s1QbmK2TFDgvwyv3ypAymDu0ThzB4FOHeuMFbcy+WsQvgrj1WfCoorh0jtIkSC1g/5IYauCdJAjUjzSMjzHiqfU7oaWnboF8psA0fxnEjRh9TynOdvleB50dQ1xcE= 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=gBdNugef; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=cR4R7AW5; arc=none smtp.client-ip=205.220.168.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="gBdNugef"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="cR4R7AW5" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 61N9oqVB1882198 for ; Mon, 23 Feb 2026 13:40:03 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= G4/QIr5UHiT1flGxYWTgnSP6v9y0V/IaNeyzeH6czwU=; b=gBdNugef63A+9kLN Oxq9N29XlyfrqdScFUaLWevZ/kSIj6joEHbgXo1oI2+SK+A2NMlU5Jwe5CB5EV2R uvdiWyfGPUB86LZQRznWfibKdjsYNkP5I4NhjTf4ERpNtkVdHdx/+yZRV7E8O0p+ dc7tqILIJRD1PuB23QfamUTpnwgdCyhbK/ChnLw5iTSWPz50rDP/Lv59L3TIb1eD 8zp55gBRD5uYae5t+PmMN1A4AgQgjjjSnhrqRjdyi0QGjIUWmhi1O36ttQF//7+b X/i22IdDzn3HagI71DVVXD/RiTJnS+ZON6biqw7t1XEAHSxqNNPlUsBMPo/U4+Oy fomefg== Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cf5wavwdk-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 23 Feb 2026 13:40:03 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-354c0eb08ceso31245844a91.1 for ; Mon, 23 Feb 2026 05:40:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1771854002; x=1772458802; 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=G4/QIr5UHiT1flGxYWTgnSP6v9y0V/IaNeyzeH6czwU=; b=cR4R7AW56DRUxoctXuz4walS6+e7pgUfVUTuoj/SE1e3iGj5HAqId+c0srwEbyXdm8 oze/aHM3WpTiYPoE8Iz5gVyvk3FbAYj+1IkVB5VL28mD50QkOz4blWXC06Wyln+htHDp Qg/7iHPHxliiy0mqbAP4cFBTXaIeimMWMlRc4crnkqhTrsZw7IclCdDMH4colxNFkSLr lFFx7cn7/h0xZSQAZ3Kbl0a88tTSZ9Ngy6NLP3/muHHHL8pvmLKnfvHOil+/SpSyDn21 zBj5JTKLa0ku2AboTuiKAaj+EVA1zKubpQTRu5eykLG2FpZRGvKGRbX69DZWcyjXwjEi /BcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771854002; x=1772458802; 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=G4/QIr5UHiT1flGxYWTgnSP6v9y0V/IaNeyzeH6czwU=; b=okxg7V+7I8geaSIJRWahaysbEF22gCIWwnjoKUgx+LrIssrJEQ6SqRooKwRZLBnEVg 11ms+h6SN8a7pe2Pt6enO+/ljsYVLbJ3GIdIGJMHZ4MLor0VHXznDlj5snFoxFAYhfuv LTa/Ky6X49Q3aQibw8QG4nU3ArnFmy3gSldLWkUSDYX3re9bvtnVnQYWBFKEKushnQ0C c/nJFCl6Cq8O2YPMu1boX4wawd3TTz7GSrCZc4PvQoyxPKdnimV9PMpXBBztIj6KENkm bO0hV1TtL01lRuE0Cdb5apU8PNUzVvemSKQjfIxzfEgY/DyVR57z26iiyAY9oeBDepWe nyyQ== X-Forwarded-Encrypted: i=1; AJvYcCXAEAEOBETjKaJy5bf0qEywN2XD1Dc+evSHWjs8287JrDI+9p5RCGJlZ3CorzAMX98aQl3+gx9UKi4YqPg=@vger.kernel.org X-Gm-Message-State: AOJu0YweeRqxTUYdcwzbZf/SGcNvwXPZQCfxSy7SX/KUYmIYrRpm9Kua /4hQWVoD7+p0sDu4teh4CNX5jjY6RDHhkuhDovskiQpmfaQVDuODfGKRWy60LTk+Z5iyjg7bdaW gBrgwFKih1Ugrbh4IA9LysXFDwKC9GbfIu24r4JKwnPUWC6kDwRkNual41Exy/6SX/W0= X-Gm-Gg: ATEYQzywhCOpPBOvXb4ojUW6g8WvZW+TNuBaFi1B/UsQ0IoT20+i/HqYgBkhYu1OqSo 0gp5/djAAXN08g9fAe8fN/8FfRSm4uqKjqeyPbILtoGOn9y+aSqr6QoA62dxNgAm666cxZsYeWJ nD1CfeHs/VGnUe3Uox0oWkd3InlkVE13t1atbZ3PunbMOL4NZP1llkbkp+QgRzva3royVgrN++p he6IMSwA4j49NoE1VUCDVF/VI7WaApTyVmwF3JSWmxZOUoaJ70d3zUKVOsypI8sPnAaf3VIudjd c4MqaLTlSyAAvHxNFxE6ayy30k0mmBWXcVOSgBB/Pq+5yquyQufwssH74z8lzK4qkPCtmo5X7Ie ch7zyo3bZfYoDiAjdiISAGfHCDRkNMWTUgniD1pPUPjBLV2DlEVqyFg== X-Received: by 2002:a17:90b:1d82:b0:354:c7f8:6d7b with SMTP id 98e67ed59e1d1-358ae8d0700mr7338157a91.27.1771854002231; Mon, 23 Feb 2026 05:40:02 -0800 (PST) X-Received: by 2002:a17:90b:1d82:b0:354:c7f8:6d7b with SMTP id 98e67ed59e1d1-358ae8d0700mr7338136a91.27.1771854001684; Mon, 23 Feb 2026 05:40:01 -0800 (PST) Received: from [192.168.1.5] ([49.204.105.196]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-358a1b63088sm7338194a91.2.2026.02.23.05.39.55 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 23 Feb 2026 05:40:01 -0800 (PST) Message-ID: <9b49a776-a65b-4210-b335-627a296049a3@oss.qualcomm.com> Date: Mon, 23 Feb 2026 19:09:53 +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 v5 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, chiluka.harish@oss.qualcomm.com References: <20260206174112.4149893-1-praveen.talari@oss.qualcomm.com> <20260206174112.4149893-6-praveen.talari@oss.qualcomm.com> <05340972-2013-45b6-801c-7e52fe48cef0@oss.qualcomm.com> Content-Language: en-US From: Praveen Talari In-Reply-To: <05340972-2013-45b6-801c-7e52fe48cef0@oss.qualcomm.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Authority-Analysis: v=2.4 cv=KJVXzVFo c=1 sm=1 tr=0 ts=699c58b3 cx=c_pps a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=nVOepZjDv8C4mF6t9zHebw==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=VriMNdUBh5tPIKgiUd4A:9 a=QEXdDO2ut3YA:10 a=uKXjsCUrEbL0IQVhDsJ9:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjIzMDExNyBTYWx0ZWRfX1lm8TOXaFM1G aUJQLArgHk3z0ViVvcnE1+/1S+AIYz04hZ57ysZ5uXhtipWc0D3EDu8xTyUi2bTqNx+9BJgNkaC c5xQu3adjSibhSSLcM9oDiW61kO09AYksgPfbEhpWputnTV318AaLDngmdLnbovT34LAQaBh7cf JSOhn+vN47sZSEAwciYh42KKTblvYU4DrGsDf31iB0CBvV+SiKpi13kZyVa6PBgNBw8fjn0fzL1 f1NJs0jI0aGqpTCG67mSU6x/C33QS971PnYXpIPuXvPk8PPka9/Swl0WSdtYfCCNizHPk2MtyB7 kdyUet46BL+Olxne7QcMVBMt0UE0VtWpYCRw/BOLAb3Xy4sLEQlu86bQ/k858dt7pv3TnVDXFEm S8bX65mgu5Jz+iNdhNFUET7f7IotBH7EuD9XJyJwZexCD/8OVf7ssA8sfmM0Pe4SIrOLgjbddha kwKsPnevR6oehnIAjfA== X-Proofpoint-ORIG-GUID: 9YkqtwYsjO9OqZPR07THLb7WJBfwum5p X-Proofpoint-GUID: 9YkqtwYsjO9OqZPR07THLb7WJBfwum5p 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-23_02,2026-02-23_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 phishscore=0 bulkscore=0 lowpriorityscore=0 priorityscore=1501 clxscore=1015 spamscore=0 malwarescore=0 adultscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2602230117 Hi Konrad, On 2/17/2026 5:32 PM, Konrad Dybcio wrote: > On 2/6/26 6:41 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 >> --- >> v4 -> v5 >> Konrad >> - updated return value as 0 for geni_se_resources_activate(). > > I would really like you to include that kerneldoc bit I mentioned it > > https://lore.kernel.org/linux-arm-msm/ff9a2aa3-1b2b-4001-82ce-198c61a4b637@oss.qualcomm.com/ I hope the below works for you. +/** + * geni_se_resources_activate() - Activate GENI SE device resources + * @se: Pointer to the geni_se structure + * + * Activates device resources for operation: enables interconnect, prepares clocks, + * and sets pin control to default state. Includes error cleanup. Skips ACPI devices. + * + * Return: 0 on success, negative error code on failure + */ +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; + } + + if (se->has_opp && se->cur_rate) + ret = dev_pm_opp_set_rate(se->dev, se->cur_rate); + + return ret; + +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..2f7aba4f89b3 100644 --- a/include/linux/soc/qcom/geni-se.h +++ b/include/linux/soc/qcom/geni-se.h @@ -65,6 +65,7 @@ struct geni_icc_path { * @clk_perf_tbl: Table of clock frequency input to serial engine clock * @icc_paths: Array of ICC paths for SE * @has_opp: Indicates if OPP is supported + * @cur_rate: Current clock rate of the serial engine */ struct geni_se { void __iomem *base; @@ -76,6 +77,7 @@ struct geni_se { unsigned long *clk_perf_tbl; struct geni_icc_path icc_paths[3]; bool has_opp; + unsigned long cur_rate; }; Thanks, Praveen Talari > > Konrad