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 C7770481679 for ; Tue, 25 Aug 2026 13:34:25 +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=1787664867; cv=none; b=n4abtECdtWBnp+DL+a9Pa3mcuC1PtL6BzgnOmAQO1VODtb8jWs9xf9AEW+WmQoiRxy95TRMIAZzhuK1pq4OnVlLn3R7NsMMUFkQeUVz0DdsEptHJFHjAg5ZglxwtnDvMWhF7fQgEGG82Jc/q1tkY/H+EF+aM3gksEoTolGflDac= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787664867; c=relaxed/simple; bh=bLAQYO2fVtjrZJZjogehxs4N3O4/AoaOHSJblctpWIU=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=IfbkkdDsSB2GWm7JCoA8NOo55gqJ0IXIUPGhmmY5wkfbMKy/ijWt8ZZGHWdx1WrOhK5ex0C1NjHvceTg09Zq0xkZw8ojoTX7/6aXKtEBdb4xOYoTW4I4r/4QFpaFuRJgIDD5t5LBAI5lJzLrOC34dCpTZBYIoRaerT/ZS8KFdAA= 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=Fnffekqe; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=fsCtb6M0; 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="Fnffekqe"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="fsCtb6M0" 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 67PD3qcf2027549 for ; Tue, 25 Aug 2026 13:34:25 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= TaVfdGUEZ4eLonecVULryIdNy5Y/IszLAAF0qOUkWYs=; b=FnffekqeV8VFB+Ck 19eFxD/ZL3SeOCpShcRv2c3Ha5sn3Offs2Oow35eByVWEaXH7foOXc9kBf8VrffX EhmcvQ4WsT7din/nntI5p8KYtNKnnxQxsQOQuiHv1MMlbHD6kMsfOBvHjpbAqtyZ ZYuJ99fzWV64B4SG2tZWxFNHn6JJtoN5rFLoX1GjAm5MbqL81OeJ5WU8+2eBLFDE /Yy/VwhB68O8TI9YcA3R8jtrnG8guEr7MyRkap8Wr32Xo8+oQgK5644aD+IMhvDT vvV7iaBydDKFowLV8EYzd/ErMlUsQIz8ZorUIfyzVVW58FowK4KwSLKn1Sh+e80F bNUdYg== Received: from mail-ot1-f72.google.com (mail-ot1-f72.google.com [209.85.210.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g9bku84n8-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 25 Aug 2026 13:34:25 +0000 (GMT) Received: by mail-ot1-f72.google.com with SMTP id 46e09a7af769-7e9ee20bde0so10468473a34.2 for ; Tue, 25 Aug 2026 06:34:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1787664864; x=1788269664; darn=vger.kernel.org; h=content-transfer-encoding:content-type: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 :content-type; bh=TaVfdGUEZ4eLonecVULryIdNy5Y/IszLAAF0qOUkWYs=; b=fsCtb6M0SPeSoWTNKHAJ4U2W2WAzB43ii4Pbi1caVwXav9K5gfVykb9Ctq5ivGoBg+ J/nboOSQegFUTf6zSybpBBeU4N2vJGfp0wm0FvRliVnGVwg0iS9pHhkAU43AG324yYT9 CU2d1gmYBWnhwrLtFepLFV0dn+hDzfvZX6l5zkPzjWMYbOnXZUGRtL46m5NulXKjpvmU 7/y3bbrM54cRImhCPM1NqANsKbc1BefqtnlIkm8sIQNxPB52ggRljxMl1ma5CWAi5A9e 6OXlTR5PONbUHx0MzSLSfiVu75urEK591lfJEa20oSlBusSmzsqhcB7FAPMxAimJNhEv JnmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787664864; x=1788269664; h=content-transfer-encoding:content-type: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:content-type; bh=TaVfdGUEZ4eLonecVULryIdNy5Y/IszLAAF0qOUkWYs=; b=UoGBj+iKVsbLHe4hzjVu4iQlJ2OaGxMHAg9Udi9mxhgVTrps2Ek1gr+wE6bpcBxOvB eCvBePkX9/INWEtUZLX5ZqOdCWhfocxYPhtQV9vmReqsiBz+2CfVyz0soYXpSMrdnwsU o8iu5hW39s2A/tmJC6LRRUA5250042RQifKQPQ1PK3mSbH2BeDsatwt4HaXeUaZu242X Kr/M8fkMsDZ0Ux2tatP0DpB+1nrh/6xzGBBdBMauY5pR1i2djTaKOAY6Nonm+jkb2qPl LEgczdQAv6ZEVM7C7F4mQ+cOdRJ3zZfG1O8f7DdI/e9n3CZbrQCB6Fq8f4bu7Z4Z+PSi ZuvQ== X-Forwarded-Encrypted: i=1; AHgh+Rqbu1a1BgNOled36K3kcTS5yI6QGEoyxW36iopIk2vbKwh+0xpw+vbXiJiqHg8750ztGPps2Tv1Vw==@vger.kernel.org X-Gm-Message-State: AFuF++lRogu+fEXCLLVzOmoSv62UirZR5Z+5qw75Ym8bssvnkNEqvP61 /dn+/MGyQui5gtY1eOcZnfkHDnwueXCHqFYw9+a9ij0bbYV4hBc2yJmgsFN+AHWhz1grAWuLYBH UGf2f5BPHoBonThJYxblAc6HisPZz+9M4oG6SZnMx76K0sYcWPM2yjatGOmfRcw== X-Gm-Gg: AR+sD11a/YOvag9iwE44McJ5Enz72Sl0RV+I8bQzIBT0Qgcr/DGXwA2vs3fRYm1jZRY sjjHxe9CR8zjQQ+36uCHNxSW00Gg9r+S/2Q+J9lr1KPje+2CpUxLImT3DJoKx4twewe2CpEYXos EFyjRyBA0VdLtOncg9r9tCni6SRR9FZoC/WVOD3q0+RaY3NgDEqfIuimUPqBLzB1/c5MasLzbnh 48RGMx4q3KpcBQ1T9uV/zZ+mYO/DHbL0QB7GKzIuPVhmwPpLFWaLJ25z2/as/eZYoo9Ux/L1XHe pJZhqaAgrWGpTD0nU1aTbc7nU0pCXgp/7KjVxvyrdVy6hxkRAgZjvVlHRDa//vDNPM3Crfuxw+W 8Cf4SuZ6+ZTDbJd8rhA5gSVwlZGhdBrhE X-Received: by 2002:a05:6830:4116:b0:7f3:a8ac:45fe with SMTP id 46e09a7af769-7f461510b2fmr33747260a34.11.1787664864237; Tue, 25 Aug 2026 06:34:24 -0700 (PDT) X-Received: by 2002:a05:6830:4116:b0:7f3:a8ac:45fe with SMTP id 46e09a7af769-7f461510b2fmr33747175a34.11.1787664863701; Tue, 25 Aug 2026 06:34:23 -0700 (PDT) Received: from [192.168.0.7] ([49.204.109.155]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7f48fc866b5sm7180397a34.23.2026.08.25.06.34.16 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 25 Aug 2026 06:34:23 -0700 (PDT) Message-ID: <57b9cb3c-6fcc-4f61-b372-97de8058ffac@oss.qualcomm.com> Date: Tue, 25 Aug 2026 19:04:14 +0530 Precedence: bulk X-Mailing-List: linux-pm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 6/7] i2c: qcom-geni: Use common GENI resource initialization helper To: Mukesh Savaliya , konrad.dybcio@oss.qualcomm.com, Sudeep Holla , Cristian Marussi , Ulf Hansson , Bjorn Andersson , Konrad Dybcio , Greg Kroah-Hartman , Jiri Slaby , Mark Brown , Viken Dadhaniya , Andi Shyti Cc: chandana.chiluveru@oss.qualcomm.com, arm-scmi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-serial@vger.kernel.org, linux-spi@vger.kernel.org, linux-i2c@vger.kernel.org References: <20260805-derive_clk_perf_tbl_from_perf_domain_opp_table-v1-0-61171ab1cdce@oss.qualcomm.com> <20260805-derive_clk_perf_tbl_from_perf_domain_opp_table-v1-6-61171ab1cdce@oss.qualcomm.com> <2329d1dc-9907-4338-8bb6-2a32e3e261ee@oss.qualcomm.com> Content-Language: en-US From: Praveen Talari In-Reply-To: <2329d1dc-9907-4338-8bb6-2a32e3e261ee@oss.qualcomm.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Proofpoint-ORIG-GUID: v5kbZHQ7fUt12XkJGHKtGHQkPLT5kZIp X-Proofpoint-Spam-Info: AW1haW4tMjYwODI1MDExNSBTYWx0ZWRfX0551bTNc7jgS fLtZCyQnKqW4v+rkjDEK+4eD3J9fHOmihgOW6U6KcUBD3i9syC0s4R5p20+VMrLmVv7xjl1EMYr /eJsYEoNeHX73jAplZ+w/3kqXeP5dPM= X-Authority-Analysis: v=2.4 cv=TZGmcxQh c=1 sm=1 tr=0 ts=6a8d99e1 cx=c_pps a=+3WqYijBVYhDct2f5Fivkw==:117 a=V2Vt80KW7rYiXl8IeOG9JA==:17 a=IkcTkHD0fZMA:10 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=atO44hwG55kBqV7UmNcA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=eYe2g0i6gJ5uXG_o6N4q:22 X-Proofpoint-GUID: v5kbZHQ7fUt12XkJGHKtGHQkPLT5kZIp X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODI1MDExNSBTYWx0ZWRfX+N3Ftu53KBVr fNoZ8y2GRDzpmuNmcf0v01L9SLm+1IuC/zhwZYrzBfXMTzjdDgsgL0CmX7/grC0Zis1c3WbpBC/ hyW0mzBMnG4cOOZAeGKmPSm8rDqDKMviUhKriIVPZtuaH0gUBfuXarw6DuVZ/6DwHxWhnvTBADU xn+qSQVPfNew7xZXdgNa9BydBqpB6AFXZUVgX74PAKkRHEzXq/1Q+yTXcuoMO5zG6cVkOSmjZLr 6EZNvgX9o/KSltyW7Y0gL2TrOm6Xh8SFFaAvzIC3GchLx0KBYZeBQazsGKxcXXACRxz3Vcmg6vY bMaRELtPlxsjzCodZsartEokaSGtb+xsCweQMqikBFCdBtKH0VNL4H5nSVKrenjnd1ZRz/oPAQp 0LlgCaWegjIH6zQInGoDbCFNbk0LhKUnIa5jjsiRr3Xje2GXuLckLfaWBpZ3LGcOLnDikUT7El7 /aHhCk5821xBXORwfdw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-25_03,2026-08-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 clxscore=1015 spamscore=0 bulkscore=0 adultscore=0 suspectscore=0 lowpriorityscore=0 malwarescore=0 phishscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608250115 Hi Mukesh On 24-08-2026 18:42, Mukesh Savaliya wrote: > > > On 8/5/2026 1:27 AM, Praveen Talari wrote: > > [...] > >> @@ -228,10 +228,13 @@ static int qcom_geni_i2c_conf(struct geni_se >> *se, unsigned long freq) >>       val |= itr->t_low_cnt << LOW_COUNTER_SHFT; >>       val |= itr->t_cycle_cnt; >>       writel_relaxed(val, gi2c->se.base + SE_I2C_SCL_COUNTERS); >> + >>       trace_geni_i2c_bus_setup(gi2c->se.dev, gi2c->clk_freq_out, >>                    itr->clk_div, itr->t_high_cnt, >>                    itr->t_low_cnt, itr->t_cycle_cnt); >> -    return 0; >> + > > This looks wrong to me. > First accessed registers and then we are setting ICC vote ? we should > enable resources first. At this point the hardware resources are already enabled and  the ICC call only updates the interconnect bandwidth vote. Therefore there is no dependency requiring the ICC vote to be issued before these register accesses. > >> +    return geni_icc_set_bw_ab(&gi2c->se, GENI_DEFAULT_BW, >> GENI_DEFAULT_BW, >> +                  Bps_to_icc(gi2c->clk_freq_out)); >>   } >>     static void geni_i2c_err_misc(struct geni_i2c_dev *gi2c) >> @@ -1100,24 +1103,6 @@ static int geni_i2c_init(struct geni_i2c_dev >> *gi2c) >>       return ret; >>   } >>   -static int geni_i2c_resources_init(struct geni_se *se) >> -{ >> -    struct geni_i2c_dev *gi2c = dev_get_drvdata(se->dev); >> -    int ret; >> - >> -    ret = geni_se_resources_init(&gi2c->se); >> -    if (ret) >> -        return ret; >> - >> -    ret = geni_i2c_clk_map_idx(gi2c); >> -    if (ret) >> -        return dev_err_probe(gi2c->se.dev, ret, "Invalid clk >> frequency %d Hz\n", >> -                     gi2c->clk_freq_out); >> - >> -    return geni_icc_set_bw_ab(&gi2c->se, GENI_DEFAULT_BW, >> GENI_DEFAULT_BW, >> -                  Bps_to_icc(gi2c->clk_freq_out)); >> -} >> - >>   static int geni_i2c_probe(struct platform_device *pdev) >>   { >>       struct geni_i2c_dev *gi2c; >> @@ -1188,6 +1173,11 @@ static int geni_i2c_probe(struct >> platform_device *pdev) >>       if (ret < 0) >>           return ret; >>   +    ret = geni_i2c_clk_map_idx(gi2c); >> +    if (ret) >> +        return dev_err_probe(gi2c->se.dev, ret, "Invalid clk >> frequency %d Hz\n", >> +                     gi2c->clk_freq_out); >> + > > why not move to geni_i2c_init() ? > > Check recent patch @ i2c: qcom-geni: add I2C frequency table for 32 > MHz firmware-based SEs. Okay let me review it and update. > > > Let's agree to move there, to avoid issue. > >>       ret = i2c_add_adapter(&gi2c->adap); >>       if (ret) >>           return dev_err_probe(dev, ret, "Error adding i2c adapter\n"); >> @@ -1281,7 +1271,7 @@ static const struct dev_pm_ops geni_i2c_pm_ops = { >>   }; >>     static const struct geni_i2c_desc geni_i2c = { >> -    .resources_init = geni_i2c_resources_init, >> +    .resources_init = geni_se_resources_init, > > why to add common driver function to i2c ? and also spi, uart ? The goal was to provide a common helper that avoids duplicating the same logic across multiple consumer drivers. As a side note, this refactoring was done based on Konrad's earlier suggestion to consolidate the functionality into a generic implementation. > Can we not call that function from within i2c specific hookup function > ? i think design wise should keep i2c as local function. > > Also driver specific anything can be managed in local function. > >>       .set_rate = qcom_geni_i2c_conf, >>       .power_on = geni_se_resources_activate, >>       .power_off = geni_se_resources_deactivate, >> @@ -1290,7 +1280,7 @@ static const struct geni_i2c_desc geni_i2c = { >>   static const struct geni_i2c_desc i2c_master_hub = { >>       .no_dma_support = true, >>       .tx_fifo_depth = 16, >> -    .resources_init = geni_i2c_resources_init, >> +    .resources_init = geni_se_resources_init, >>       .set_rate = qcom_geni_i2c_conf, >>       .power_on = geni_se_resources_activate, >>       .power_off = geni_se_resources_deactivate, >> >