{"id":2227385,"url":"http://patchwork.ozlabs.org/api/1.1/patches/2227385/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-i2c/patch/20260423145705.545552-4-mukesh.savaliya@oss.qualcomm.com/","project":{"id":35,"url":"http://patchwork.ozlabs.org/api/1.1/projects/35/?format=json","name":"Linux I2C development","link_name":"linux-i2c","list_id":"linux-i2c.vger.kernel.org","list_email":"linux-i2c@vger.kernel.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20260423145705.545552-4-mukesh.savaliya@oss.qualcomm.com>","date":"2026-04-23T14:55:50","name":"[v7,3/4] soc: qcom: geni-se: Keep pinctrl active for multi-owner controllers","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"b309177479fc7ad375bbdad82440dc63046999fd","submitter":{"id":91179,"url":"http://patchwork.ozlabs.org/api/1.1/people/91179/?format=json","name":"Mukesh Kumar Savaliya","email":"mukesh.savaliya@oss.qualcomm.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-i2c/patch/20260423145705.545552-4-mukesh.savaliya@oss.qualcomm.com/mbox/","series":[{"id":501206,"url":"http://patchwork.ozlabs.org/api/1.1/series/501206/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-i2c/list/?series=501206","date":"2026-04-23T14:55:48","name":"Enable multi-owner I2C support for QCOM GENI controllers","version":7,"mbox":"http://patchwork.ozlabs.org/series/501206/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2227385/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2227385/checks/","tags":{},"headers":{"Return-Path":"\n <linux-i2c+bounces-17150-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-i2c@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256\n header.s=qcppdkim1 header.b=kY/JaW/8;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c04:e001:36c::12fc:5321; helo=tor.lore.kernel.org;\n envelope-from=linux-i2c+bounces-17150-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com\n header.b=\"kY/JaW/8\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=205.220.180.131","smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=qualcomm.com"],"Received":["from tor.lore.kernel.org (tor.lore.kernel.org\n [IPv6:2600:3c04:e001:36c::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g1fRG6qtRz1yCv\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 01:00:42 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id D0AE530B7645\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 23 Apr 2026 14:57:48 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 0E4F735AC3D;\n\tThu, 23 Apr 2026 14:57:36 +0000 (UTC)","from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com\n [205.220.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 1B4CF359A62;\n\tThu, 23 Apr 2026 14:57:33 +0000 (UTC)","from pps.filterd (m0279873.ppops.net [127.0.0.1])\n\tby mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 63N8uEtN3044055;\n\tThu, 23 Apr 2026 14:57:30 GMT","from apblrppmta02.qualcomm.com\n (blr-bdr-fw-01_GlobalNAT_AllZones-Outside.qualcomm.com [103.229.18.19])\n\tby mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dq1jh4eqj-1\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);\n\tThu, 23 Apr 2026 14:57:29 +0000 (GMT)","from pps.filterd (APBLRPPMTA02.qualcomm.com [127.0.0.1])\n\tby APBLRPPMTA02.qualcomm.com (8.18.1.7/8.18.1.7) with ESMTP id\n 63NEvQO5011425;\n\tThu, 23 Apr 2026 14:57:26 GMT","from pps.reinject (localhost [127.0.0.1])\n\tby APBLRPPMTA02.qualcomm.com (PPS) with ESMTPS id 4dm31k24b4-1\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);\n\tThu, 23 Apr 2026 14:57:26 +0000 (GMT)","from APBLRPPMTA02.qualcomm.com (APBLRPPMTA02.qualcomm.com\n [127.0.0.1])\n\tby pps.reinject (8.18.1.12/8.18.1.12) with ESMTP id 63NEvQnW011419;\n\tThu, 23 Apr 2026 14:57:26 GMT","from hu-devc-hyd-u24-a.qualcomm.com (hu-msavaliy-hyd.qualcomm.com\n [10.147.246.140])\n\tby APBLRPPMTA02.qualcomm.com (PPS) with ESMTPS id 63NEvPrS011417\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);\n\tThu, 23 Apr 2026 14:57:26 +0000 (GMT)","by hu-devc-hyd-u24-a.qualcomm.com (Postfix, from userid 429934)\n\tid E3BF521C47; Thu, 23 Apr 2026 20:27:24 +0530 (+0530)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776956255; cv=none;\n b=fVtmyY8kZlPSZkeCOg818SA7xu+mrTxBMxyQUkfPEEwHzeQBaYluNEeYTe8wh6Le/gCEm1vYGYEDUYdDTnj7m/QvuAOUQWpgOx1Rm0etdjX5RxcFAThoOLsf7FJpiRqU2yWzVb97ua5Erc6vMvjjfQM8vnOrJNeZnkMIdeOiJI0=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776956255; c=relaxed/simple;\n\tbh=e7t6ShQ2cI3Mz6AmaHsbAxeWQh28RjNT6mgVG3MLxxw=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version;\n b=hWzXB+Cz9ZKUgVlbltrEqJIZsUK/i5SkPEc0uHu7qEqL8Wg1ayWLKjxLG8THqrlx0nh6MLjMdnvlvs2PowYaoExcc4g6fwgp+mxLmo3+hWJtxN7TuYqpqPB85KLa8AsXmaf77l8G0nmChF22y8zM1WVdW8sziyzG0WNBPtMafgw=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com;\n spf=pass smtp.mailfrom=qualcomm.com;\n dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com\n header.b=kY/JaW/8; arc=none smtp.client-ip=205.220.180.131","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=\n\tcc:content-transfer-encoding:date:from:in-reply-to:message-id\n\t:mime-version:references:subject:to; s=qcppdkim1; bh=MVr+iQ0IOVH\n\toD8QLuy6TdPdop5YCIZQZqq7rbtOLfq4=; b=kY/JaW/81tBDC3bTJ+dVIQt0hSs\n\t1h3N0RZEV68z56FENw+xhRDypU6TI2fCcY0IJlcQ1XSi5i2mkIgmdRQzhoYqUBAz\n\twEF/v6ZUDN+MI1+Dy4DU4tvqX4WccIwe6lcN49Yk5Vme3N+BuLvQI4HEoRnBnBzE\n\t0MMI5vNKMIu4odslVmtFK7yh4ZNqm2nBNOpj94XO4FQZ9boPa7LN5C5TuqnL3XOq\n\t7lwCHx6ltYompWl3AD9bMvU5TH1HyCaEos1xk6I0kKQgP4d4ehQKZh+Pt7E3DCas\n\tfo40XpEPAYZU5MitramtUfru3Omi/WGRK6aaViyQlLYOxRgM1uRY/8Qlb5w==","From":"Mukesh Kumar Savaliya <mukesh.savaliya@oss.qualcomm.com>","To":"viken.dadhaniya@oss.qualcomm.com, andi.shyti@kernel.org, robh@kernel.org,\n        krzk+dt@kernel.org, conor+dt@kernel.org, vkoul@kernel.org,\n        Frank.Li@kernel.org, andersson@kernel.org, konradybcio@kernel.org,\n        dmitry.baryshkov@oss.qualcomm.com, linmq006@gmail.com,\n        quic_jseerapu@quicinc.com, agross@kernel.org,\n        linux-arm-msm@vger.kernel.org, linux-i2c@vger.kernel.org,\n        devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,\n        dmaengine@vger.kernel.org","Cc":"krzysztof.kozlowski@oss.qualcomm.com,\n bartosz.golaszewski@oss.qualcomm.com,\n        bjorn.andersson@oss.qualcomm.com, konrad.dybcio@oss.qualcomm.com,\n        Mukesh Kumar Savaliya <mukesh.savaliya@oss.qualcomm.com>","Subject":"[PATCH v7 3/4] soc: qcom: geni-se: Keep pinctrl active for\n multi-owner controllers","Date":"Thu, 23 Apr 2026 20:25:50 +0530","Message-ID":"<20260423145705.545552-4-mukesh.savaliya@oss.qualcomm.com>","X-Mailer":"git-send-email 2.43.0","In-Reply-To":"<20260423145705.545552-1-mukesh.savaliya@oss.qualcomm.com>","References":"<20260423145705.545552-1-mukesh.savaliya@oss.qualcomm.com>","Precedence":"bulk","X-Mailing-List":"linux-i2c@vger.kernel.org","List-Id":"<linux-i2c.vger.kernel.org>","List-Subscribe":"<mailto:linux-i2c+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-i2c+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","X-QCInternal":["smtphost","smtphost"],"X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjYwNDIzMDE0OSBTYWx0ZWRfX3wQntq8X80DI\n jdfK1b/mplihxHrqiHMq6M66n4l5ku3HLfiKXQCaiWNqCFmUKtkNuKR6oLOkZf7qUsNiBptMIrp\n UCxeDBsCZyab63xMxAlWJgzPU/EcwHtNUHdrCWyXIbQ6sdWuFfraAK/4aHwuPT2vLEskizDZEnq\n MprEdmwWjRW85/KT86bEyH7N9MI4Pb4f6AjDf0CXTtZw1c1xmU3XldMOs7ltQ8iXXvGBbkq7uHf\n GAY6oPRAt5Ztq4hJOVDyD+CMVAyh6422fIMI4fjoRofKJnlxTcu0WemV0RS0bPCQIK/DWw2UtUZ\n Vd6H64PHc8rxd027gknKFxbDRPXl/TD11M/hyOQqlTUKv5NEOqe2b5pmeyYNvC+QGav8dpF1QyG\n Ys98PQUgJYswh3wjCPoM8PHHrWiL27/Ls8k+1Oxf3abVaChe4aSelZSWPioZMOHUiEq1wV9yAtp\n ABLjXQ+MWblGP3YUmPQ==","X-Authority-Analysis":"v=2.4 cv=OeyoyBTY c=1 sm=1 tr=0 ts=69ea335a cx=c_pps\n a=Ou0eQOY4+eZoSc0qltEV5Q==:117 a=Ou0eQOY4+eZoSc0qltEV5Q==:17\n a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22\n a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=AU6ItHRBSQEJJjuWNb0A:9","X-Proofpoint-GUID":"yn-QgtGEoKNj2wWp8mn69598A6mtBZow","X-Proofpoint-ORIG-GUID":"yn-QgtGEoKNj2wWp8mn69598A6mtBZow","X-Proofpoint-Virus-Version":"vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-04-23_03,2026-04-21_02,2025-10-01_01","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n impostorscore=0 bulkscore=0 adultscore=0 suspectscore=0 phishscore=0\n clxscore=1015 spamscore=0 lowpriorityscore=0 malwarescore=0\n priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc=\n route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000\n definitions=main-2604230149"},"content":"On platforms where a GENI Serial Engine is shared with another system\nprocessor, selecting the \"sleep\" pinctrl state can disrupt ongoing\ntransfers initiated by the other processor.\n\nTeach geni_se_resources_off() to skip selecting the pinctrl sleep state\nwhen the Serial Engine is marked as shared, while still allowing the\nrest of the resource shutdown sequence to proceed.\n\nThis is required for multi-owner configurations (described via DeviceTree\nwith qcom,qup-multi-owner on the protocol controller node).\n\nReviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>\nSigned-off-by: Mukesh Kumar Savaliya <mukesh.savaliya@oss.qualcomm.com>\n---\n drivers/soc/qcom/qcom-geni-se.c  | 15 +++++++++++----\n include/linux/soc/qcom/geni-se.h |  2 ++\n 2 files changed, 13 insertions(+), 4 deletions(-)","diff":"diff --git a/drivers/soc/qcom/qcom-geni-se.c b/drivers/soc/qcom/qcom-geni-se.c\nindex cd1779b6a91a..1a60832ace16 100644\n--- a/drivers/soc/qcom/qcom-geni-se.c\n+++ b/drivers/soc/qcom/qcom-geni-se.c\n@@ -597,10 +597,17 @@ int geni_se_resources_off(struct geni_se *se)\n \n \tif (has_acpi_companion(se->dev))\n \t\treturn 0;\n-\n-\tret = pinctrl_pm_select_sleep_state(se->dev);\n-\tif (ret)\n-\t\treturn ret;\n+\t/*\n+\t * Select the \"sleep\" pinctrl state only when the serial engine is\n+\t * exclusively owned by this system processor. For shared controller\n+\t * configurations, another system processor may still be using the pins,\n+\t * and switching them to \"sleep\" can disrupt ongoing transfers.\n+\t */\n+\tif (!se->multi_owner) {\n+\t\tret = pinctrl_pm_select_sleep_state(se->dev);\n+\t\tif (ret)\n+\t\t\treturn ret;\n+\t}\n \n \tgeni_se_clks_off(se);\n \treturn 0;\ndiff --git a/include/linux/soc/qcom/geni-se.h b/include/linux/soc/qcom/geni-se.h\nindex 0a984e2579fe..46217cac73c3 100644\n--- a/include/linux/soc/qcom/geni-se.h\n+++ b/include/linux/soc/qcom/geni-se.h\n@@ -63,6 +63,7 @@ struct geni_icc_path {\n  * @num_clk_levels:\tNumber of valid clock levels in clk_perf_tbl\n  * @clk_perf_tbl:\tTable of clock frequency input to serial engine clock\n  * @icc_paths:\t\tArray of ICC paths for SE\n+ * @multi_owner:\tTrue if SE is shared between multiple owners.\n  */\n struct geni_se {\n \tvoid __iomem *base;\n@@ -72,6 +73,7 @@ struct geni_se {\n \tunsigned int num_clk_levels;\n \tunsigned long *clk_perf_tbl;\n \tstruct geni_icc_path icc_paths[3];\n+\tbool multi_owner;\n };\n \n /* Common SE registers */\n","prefixes":["v7","3/4"]}