From nobody Mon Feb 9 22:59:49 2026 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 540A334B1A5 for ; Tue, 23 Dec 2025 10:05:00 +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=1766484302; cv=none; b=XkaYbsxLQgojxOvglNYSDMxkj5NFGks9UtqbY2ueUDH4kmgRSS3DwUWUEXJf66P5hGC/HUCThdDx71MBGqqz7gUlue2iPeLScNlFxtV2Kj7d9QMWXmrJcN1prb3swhOhtBCMsd4vmoY3IRN/eqNsP4poINh1b4qnSLHgGkPS6Hc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766484302; c=relaxed/simple; bh=9DuIEZPwzTeoXCwAXaQfazb/wfAxmGqBk6OslVsEIUQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=rEsQ7O9rtaNhqJAws0l3VjwUFEcZKIS0781Ecaoi50NMM/jQ1eztVUBqw+rAcxRZKy0lOvSoFtXUzyxi9nHl6VTTeUXdbANbAettSMfUFDoHL2QIUX6kkF5GeL+hbQV48FjU3YmGORLI3jTJZwZr01sIRJQiEB6/womQ/Td/hfs= 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=hDBc7Xm1; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=HJzQizCm; 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="hDBc7Xm1"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="HJzQizCm" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BN6wvjQ1630783 for ; Tue, 23 Dec 2025 10:04:59 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= p1rCvMDpU1D1vLVr0ykDBOBuZXm8pHvfoFh0GPY6oas=; b=hDBc7Xm14WCUwBdX ydAdsZff03TWHngyey1Pu+2X9w8lpJQ8WXoXxsLDV/sWx/rCKolMlsPCE748pewD GkzPErUiE0tmavxvBgqF7VPF2/LxP76Me6aKTsKS7NQPWHCWhORnU+JRy7Z16cKO w4+gMmT/wURxKg4vtfIikrathOtNxtC0yX5z/Evrpl/1YUkPsB5+Ry16O1Cmde42 xc9vzUQH045i377SX8iMrlQsnEtPCjTLqw8v1g6spo85v45kYIrFpnXTnCV5E+qr NqJRSRBtmLN/+FUQvQ8ixLHJpjzJg2TJ4ak2lHGUrdTNzRLZ689J5lMTcjh2vyjg 0QxVDA== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4b7ck8j9x3-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 23 Dec 2025 10:04:59 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-4ee04f4c632so91517771cf.3 for ; Tue, 23 Dec 2025 02:04:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1766484298; x=1767089098; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=p1rCvMDpU1D1vLVr0ykDBOBuZXm8pHvfoFh0GPY6oas=; b=HJzQizCmyiPRwi0ANjEOuiuOGPRDyo2d2/ztZhn6Lzi2vysOwB32N9o67AaORbZm0L RqlqIaPNlcorxbzVOiZGGySqaUoUu+kC6vffbJ7AbZG0NRsOY2mD+bloXmiv5QGytzmT d3aIwUuGMdEtvwO0PaCHMcxC58nH91S/BlEGwV1J/HfAjvkWb1OK8MWx0BXK2SIWCDzC /P40zu7LySueqTjUKi37ppjRU5d/YX3c3EbG1sq7vM+fv7zaFoxGrpZECaO5i050dv5Q NMbFxnfhwwHeY6qRQ1dWJaxk1Cj2jgpPDJHs4dkAR7WlrIf2FLtAHO15bLItPOwkbC2d Z62Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766484298; x=1767089098; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=p1rCvMDpU1D1vLVr0ykDBOBuZXm8pHvfoFh0GPY6oas=; b=vnhbdAxnQadeVK0vFQ3AIV3kmiGLIIGagep6KhgkP/98H0BmMaOfipND7MrSN8G7Fi BB5Pgzs1cdGWc5tXj6Wn/VADx66OQrpya2eDsvhj6Fj8tnXZeaqE9yCXeyxTgixNiM7D zARWWIKXxn14NsLI9EQcjPppKGgzUtRsLhPrP4q9HzsMHYaQ9yJ5cVJDZ4bGNcAa//h1 v/7c3l85T6SovWOqk2ibLY4udh05FLIrLmED8rK9l2KRnxKHY5hyCUmPFtXSRza5KG64 g5gTACoGP8KSKkG8Z+C3RqJFlhEpC/flUczkzYSjNn+Gq+H9rUqCLVTQlcq9MwppI8DD 6WNA== X-Forwarded-Encrypted: i=1; AJvYcCXErONpmoHegp3XqXdYDWF8gCfkaMAo1tum3x3wiOp4zHdxt+SijWmEWoFXtQBosMq6gjkpOkmHt/y0QmI=@vger.kernel.org X-Gm-Message-State: AOJu0Yw2AxTPAcuzcVWupSJ8FVeYmL97dYr1xTH18HuSzvoVorijxlBt hSgdG5WOkox3G5eAJu1EOnw6z6HTIgq6+zaectfcOs40YTpEbw+SDOmoRHiVcQXhNyhQjwtWGl1 1BZGrWMXCv6m3QThMuXypORrE5ckSo/5GpHvHLV2dG5JzyNyR9X4D4Q6gsTeDPS5pdrg= X-Gm-Gg: AY/fxX7JKpFpuYFLPBwz/bi7U68yGp1KOft5sJOO8fwEZaz0KQAopIrwH9/G4AklEbF wrUTKDe5LaPf+zt3gBzecBYgqWS3KU05yhRX1czPZCeRnC5DtXg2GR9SXuGVmHqA87zeGOxRrTk vEpUA4AHs1ElLb5ajkXl7JqU9Snm9t8ekuw9bdwXl3lVgVtVbVfYiLYBB3eDxDBV2/suxGFIi+I LTYt+0F6R/Rqet5vXW8DgjJr7kTnHF4xNXIYMUeR1uu+0KJAVWgFuH1nuZPs6e11TWa7DNXOfx6 O559y3h1hEzC/HGCiy8IrInbyvandxs0dal8g0F34iGxWgVJub4oQCx+URjbZcjCpFkZY7Fwzb0 ocdCnJEOvs9l198heX8pJh/r1qgiSkdzx3YYds9Q= X-Received: by 2002:a05:622a:50d:b0:4f0:2afc:3b80 with SMTP id d75a77b69052e-4f4abd92eaamr181413551cf.56.1766484298448; Tue, 23 Dec 2025 02:04:58 -0800 (PST) X-Google-Smtp-Source: AGHT+IHPyPkCI7wpeIXAWX4oTjp2cS/hulQz/NmX993pTR1thwF0IRRxKOlYnoldEaGrhaMGAtYLKw== X-Received: by 2002:a05:622a:50d:b0:4f0:2afc:3b80 with SMTP id d75a77b69052e-4f4abd92eaamr181413191cf.56.1766484297752; Tue, 23 Dec 2025 02:04:57 -0800 (PST) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:190a:1976:65e2:c61]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d193d4f09sm235035025e9.12.2025.12.23.02.04.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Dec 2025 02:04:57 -0800 (PST) From: Bartosz Golaszewski Date: Tue, 23 Dec 2025 11:04:39 +0100 Subject: [PATCH 01/12] i2c: allow setting the parent device and OF node through the adapter struct Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251223-i2c-adap-dev-config-v1-1-4829b1cf0834@oss.qualcomm.com> References: <20251223-i2c-adap-dev-config-v1-0-4829b1cf0834@oss.qualcomm.com> In-Reply-To: <20251223-i2c-adap-dev-config-v1-0-4829b1cf0834@oss.qualcomm.com> To: Wolfram Sang , Mukesh Kumar Savaliya , Viken Dadhaniya , Andi Shyti , Florian Fainelli , Ray Jui , Scott Branden , Broadcom internal kernel review list , Vignesh R , Aaro Koskinen , Janusz Krzysztofik , Tony Lindgren , Andreas Kemnade , Kevin Hilman , Roger Quadros , Geert Uytterhoeven , Magnus Damm , Patrice Chotard , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Linus Walleij Cc: Bartosz Golaszewski , linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-omap@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, imx@lists.linux.dev, linux-rpi-kernel@lists.infradead.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1578; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=9DuIEZPwzTeoXCwAXaQfazb/wfAxmGqBk6OslVsEIUQ=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBpSmk7zl30HWFdf5toH7ZGKXOD8CIyBlVApBySN IwaXVxofDGJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaUppOwAKCRAFnS7L/zaE w3jMEACQwb8ZgE58DE3uw37UiRZwU/zhEQr9IPt83tPHLkgZTeqGX94iF4zPORHT1Sr6NycarTH GVHxF1XDkA0X6UnMa7Irhh1xeo/qFeqPke157JJl41OxB42h6ZeHStCofCqEkj4AlKSM2kDl/bF G1HXjnJ4IXxgAP3b7RzEiGinSsyZVdyG0CNKHWCbe+hdducCLVXpRx6nBhO5RpZGmlyca/6iBQo 0miDWx0P4uwD90IWT97/l8TGMYnY6DyXRO7v4fRCTDmxeY8+797P6blElSuKf1KXLPLUPmnNoZW GxO+tpHCeutabKOcxnj0pASJ4GKqEHZIl2zFYTglOjkbQe5JsfbZiyOwdMNbBCrDlPU8SgGm/5m jLA03yUabJxHbPOqP84PoAtk7C7aYBw65DpZlloaVlGfKM0B6Shr7Qyyb4TR+Nnmypt9BnTcbLq Yvgb/jJWplS241rXMWFGIEo1P8zeNJGZIXMDaeZTWuDcnFI1gsK9EsXgdrf5EUERg/RLqZwD4ci byAseHFEQwGNSmVOdmnctOJwQLnfwDat/vfonNlqFxcjrSEH0qRpXao6xHBUvveYqJNBTBf4Qvk KHrDjxJXW6mFnMyC9z0wifTeZDxecTGHG5sQHGHGDGzdMQtsrwWyWvftqfdXiwqu/VpMOVwbSLN b+27NTk2zhOsLnw== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-ORIG-GUID: wjOUvXQcc7rh_4dsWcCdQm7KM-aRQioz X-Proofpoint-GUID: wjOUvXQcc7rh_4dsWcCdQm7KM-aRQioz X-Authority-Analysis: v=2.4 cv=asi/yCZV c=1 sm=1 tr=0 ts=694a694b cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=GqsknrqNkdw30Ab-NAsA:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjIzMDA4MCBTYWx0ZWRfX/6T4EugHC1rK grx4ceeIFbjofTys76mM++dl1L25ukXQrn3mOPDWiHzTC7O+sMdhy8tsFHd9epuOoe0+QWpAnLt 3162iAi+tLLC9NGgyq4/oHr/jR6xMNGOAssJwpAqNIX57dJWs4AGCYc/2FZ0kqEOiE2rH0z8mLx Wl9wSjgYDwHqq4pxp41Nn1m9s5JouENxUmkcR8ERQpQU+83BB7jVdhoPSrqvJQtNtiUy+L2qrB2 fP6gmaSvImhRMONd24YPnXrKclM8VylDOEsgUqSBS+W+9BdzMOVswDQt1cC/vxnElnx1LgxWBLo W/WP015ThwEBnJqwnaGULPLIdaPq9986xRDwiIjd7tzrP8MIqrnv/iTIyPSKK1ZG7FHmcOg3Whl o8s6iZCKLm/0FgIhrD6kmV9iL5HkFGk4bLgZD3ae0aeAgrwhItoJlBQ2aFUVra48LfnysPOII4g nXSVzuPLvqk3Px0WKmQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-23_02,2025-12-22_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 priorityscore=1501 malwarescore=0 adultscore=0 spamscore=0 phishscore=0 lowpriorityscore=0 impostorscore=0 bulkscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2512230080 In order to stop i2c bus drivers from dereferencing the struct device embedded in struct i2c_adapter, let's allow configuring the parent device and OF-node of the adapter directly through dedicated fields. Signed-off-by: Bartosz Golaszewski --- drivers/i2c/i2c-core-base.c | 5 +++++ include/linux/i2c.h | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/drivers/i2c/i2c-core-base.c b/drivers/i2c/i2c-core-base.c index ae7e9c8b65a65c415f5a42f0eb0e7a4ff3e86dce..732828e63730bb773b77ab59362= bad8697a1ebde 100644 --- a/drivers/i2c/i2c-core-base.c +++ b/drivers/i2c/i2c-core-base.c @@ -1561,6 +1561,11 @@ static int i2c_register_adapter(struct i2c_adapter *= adap) adap->dev.type =3D &i2c_adapter_type; device_initialize(&adap->dev); =20 + if (!adap->dev.parent) + adap->dev.parent =3D adap->parent; + if (!adap->dev.of_node) + adap->dev.of_node =3D adap->of_node; + /* * This adapter can be used as a parent immediately after device_add(), * setup runtime-pm (especially ignore-children) before hand. diff --git a/include/linux/i2c.h b/include/linux/i2c.h index 20fd41b51d5c85ee1665395c07345faafd8e2fca..72677f29aff161530bc3c497d1e= 07144a44eb9e4 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h @@ -761,6 +761,10 @@ struct i2c_adapter { struct irq_domain *host_notify_domain; struct regulator *bus_regulator; =20 + /* Device configuration. */ + struct device *parent; + struct device_node *of_node; + struct dentry *debugfs; =20 /* 7bit address space */ --=20 2.47.3