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 80BE434DB71 for ; Mon, 23 Feb 2026 09:03:01 +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=1771837382; cv=none; b=N5d7kaJ8Y6BgcbRr+75XajlZfooEx6DLtXrOUacFp43tE4ejDFy6qq6JHwl/lkfrBuIVxJwuWmnVx64paqvc558YPOcJK8YPY+QHEOR9jPxNR0MpnrnzZVRMjn+WJ2hVqOHISCBhvopZuaQk72XvEvFNQby/UxIgYRMUByHf6Nk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771837382; c=relaxed/simple; bh=5BmXq8ls638A4UX48+WiGAJHmMf0MCmHxtmmGfyDjIU=; h=From:Subject:Date:Message-Id:MIME-Version:Content-Type:To:Cc; b=rzlM8LRgWwoM2TAnOBy5onDepNnCdYTf+OopBCc4UYIm7SVUgxDpTkpJyixkxBNh6ARMUgTDzeec/DRffBaJcY95rA4OUoyhf3ZijxwO0T41UQfR5f0y/vAlZxgvIOxw+tq7D5Tmtj3kSp7+Ol6Rhw/3JnW1qB21pp9mifUhPuE= 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=JP1IKOLj; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=O2qOdIcx; 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="JP1IKOLj"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="O2qOdIcx" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 61MIKaeE2762671 for ; Mon, 23 Feb 2026 09:03:01 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to; s=qcppdkim1; bh=8SHYs5LFd7rnDOTm1Jv1ws TvILa3sMGiNbBQAWGePpo=; b=JP1IKOLjF6PeripFaRzBcdwUz902Y81sBQhss2 UU2c8F1/MgCIocGNp1ijLGoJ2OjxlKmnu7v2ixqbouKCez7je8U2+rBuxS885p2/ 2fcEOVzebV/bgn2HGTOEw44cD+RYA+UdVubJTpd/97pxJyjpNBRWBNr3glmBYU3o QgKn6YBGyQrJcndBf0mZ8HYE62xfQZ8/1ILY7hBEb+0WgP8zVPvRIPIMVk52V0pR /Ypog9QOoN2XZ5orfR7km009DZS4R0T2iKB9aVh4NbF49iJ28LyNP33sSIWj59nq +20KdhmaL+ERbeh3MzsLp7nrVj5LR4SmOnGoGdB3P+u8IWFg== Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com [209.85.222.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cf5wk40m7-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 23 Feb 2026 09:03:00 +0000 (GMT) Received: by mail-qk1-f199.google.com with SMTP id af79cd13be357-8cb52a9c0eeso1328327185a.2 for ; Mon, 23 Feb 2026 01:03:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1771837380; x=1772442180; darn=vger.kernel.org; h=cc:to:content-transfer-encoding:mime-version:message-id:date :subject:from:from:to:cc:subject:date:message-id:reply-to; bh=8SHYs5LFd7rnDOTm1Jv1wsTvILa3sMGiNbBQAWGePpo=; b=O2qOdIcx3KVPxLsvwRU7TMO2xZjY4uHAHQ5/okSP9TiVsCMzL66EpQKmWREVf5BdrB PZRLr4P77BOnbLKYIr5uv/bbhEhUfNVR2bdXg68fMGmYCavXPOvVV3hLIfRySLe6rWu2 65en4FnmKZfTuqnuoXQC/g9V3WRvz3Pwwcqm1E9Ve87DhlCTJCOFRGrjfoNmBSpzjke/ QgWqoYH2pxN5DeRuoowhDR+cUFZkwwecr1XjQe/vrIkTBw6iWhr/1mZbsdsiDYNaYnem bk60D2uCAlyl2f5wM7y6jKDTat02TJL8mC7ZB08aI8uPzaN3lYAGZpm7dj1tXkDJY4X4 M1GQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771837380; x=1772442180; h=cc:to:content-transfer-encoding:mime-version:message-id:date :subject:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=8SHYs5LFd7rnDOTm1Jv1wsTvILa3sMGiNbBQAWGePpo=; b=KVZV8xVhCuLtlhHQuBPuOa+oyJKpJksfU40ZCK/xWn1nzYqkJOIUC8nzQ+XOvoHQnJ OE4rpeAOPxgBBspuGqp66qdJME5Cr2BL13Lj/5wsyQCi+32IvIMUCEvUCChyPItoj36n RvAV/78Ckell7qR+I43qqtVfgQsn7++Du4puAWNjbIRpbN7L2G8+i12xbvKJJZRJEv92 FNxAv1ZQAJplTvpKdju3a9sqwaVGB5TK4qCB2CfTucyRt53+hswJ1/Ra/lZ3oXrpCxvI BX/T0HtQXbI39+8mjF5p+LRKRSq8gfwK2Jnyq8VF9QV5DG4WpGtb7Ofg1q+38a4MwLX/ 7HZA== X-Forwarded-Encrypted: i=1; AJvYcCX3CqxLZvqDbTdYeCWsj8p04gWK13B0OSEpnFpMz1NK4UvL21666qriouvivH414SWCav0PXpF67LxAawA=@vger.kernel.org X-Gm-Message-State: AOJu0Yw8KmLJVkx+EzGZqRQkgeJnY/3A2RgwmE9PFBIhOV8xpcQkRxyK WerZVclpC03qL6YFR0qpgx4g3o6rHNhzeGFJU/FeXfulW/oSIx39QsbP5U7XdxIT/oEZaJEPfaG gtBOD2MpLSiwPSJwj7Li4ii+nnKp2DqqEfmUWa3K9aSMa0LiLYloIcTXcodxYZvIoYn0= X-Gm-Gg: AZuq6aI6zaTGKyMFZlXdRS5frZh2GrZ/cORiKWAIAXJUGfUDvpXukQHwo6d2aSKEuXr NyPY7upUWurGlZDQ6EeHhTah5EL+iF4sSyCYr+nOGi36tNZMMWkT2GWqFU6WDZHhYjeWmvCvXVE a0gBO8L4wf+RswsKS86jpGRXqb6eM+ZWQujJe/Go8hc7dJjmw/+znu/Hn8rUPE7z0w3rMKsHeyy 7j0W+KCMMIVM6SnkuzAGIev0NMP5txATKSyTLYzcYWKNJkjEeOuHrgNc3kNVfDtoFXYF8/RXA3u eWXsLZ/xHvQqH0RPM9Vp9aN+o9ISkXy1xVLXnI0wE80aB5RvXVpgs4vIaQpPQzfWxi+GqGFP7IR Mq7zBQYvHqlU1dCZghAJB0zRKq81JqqUZaM15uVCfybn1+T1EPms= X-Received: by 2002:a05:620a:f07:b0:8cb:50d6:18be with SMTP id af79cd13be357-8cb8c9ebbffmr981134985a.18.1771837379748; Mon, 23 Feb 2026 01:02:59 -0800 (PST) X-Received: by 2002:a05:620a:f07:b0:8cb:50d6:18be with SMTP id af79cd13be357-8cb8c9ebbffmr981131185a.18.1771837379238; Mon, 23 Feb 2026 01:02:59 -0800 (PST) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:bd71:422c:5e83:8b37]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43970bf9f6csm19657169f8f.7.2026.02.23.01.02.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Feb 2026 01:02:58 -0800 (PST) From: Bartosz Golaszewski Subject: [PATCH v2 0/4] i2c: provide and use i2c_adapter_dev() Date: Mon, 23 Feb 2026 10:02:48 +0100 Message-Id: <20260223-i2c-adapter-dev-wrapper-v2-0-d02946569773@oss.qualcomm.com> 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: 7bit X-B4-Tracking: v=1; b=H4sIALgXnGkC/3WNQQ6CMBBFr0JmbUk7KgFX3sOwGMsgkwitLVYN4 e5WE5duJv/95L9ZIHIQjnAoFgicJIqbMuCmADvQdGElXWZAjXuDiErQKurIzxxUx0k9Anmfs61 rrCptGk0Iee0D9/L8mk9t5kHi7MLr+yiZT/tzbv86k1FanW3fVJp2dU/N0cVY3u50tW4cy3ygX df1DWHGqKrFAAAA X-Change-ID: 20251222-i2c-adapter-dev-wrapper-c882660190a2 To: Wolfram Sang , Jean Delvare , Andi Shyti , Shyam Sundar S K , Nirujogi Pratap , Bin Du , Mika Westerberg , Andy Shevchenko , Jan Dabros , Gregory CLEMENT , Hans Hu Cc: Bartosz Golaszewski , linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org, Bartosz Golaszewski , Jean Delvare , Shyam Sundar S K X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2367; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=5BmXq8ls638A4UX48+WiGAJHmMf0MCmHxtmmGfyDjIU=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBpnBe75xtiM4tO6fl/+cumfqZU2dafuPou4bc06 2xQzIhNAuOJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaZwXuwAKCRAFnS7L/zaE w+PwD/478ne95/nQh1MYeDPbPE2X3cENP5dJ/BeQ/KNbi03x7fGjaTrMhVxSv6mu2dhedPEWWWM JSDXKXJsawpPMJS36E2XvtthpBLKjnFe/btyslv7n0sGaEH48KI8jnL38ZIprT+8uMX5qG+PVcz f9wK6f2ciMk4f63I6sMWxQuiou9+s/z53CMbIcXcggRoRp19KFV0dDzUIy+edQUyT9tuinAoJc1 /sr3mXj9cDzloDyDcV3Si+1wDhLlxJdkj7JkYnHWSaDbJAoz+F4sXtjj04SPbAtkkd6IgCYWhab I1B0jPzbZKWlf8thduAJtEbmA8PN1d4nAV+7vkd7fLufd15xCWEgMw9ugzcHvB9RbTkhi/odQtk PlYmII4nDUgRHldiS7nxe6vli8UZFggnYIZnCv2Mfz08OoMDqrCfz29ijSCseJlGGm5I3DR19yR 3oCNahYYXMyxPRaC50AEWvl8tU6AU9VXUN8b7+i8M7eqnaBofk02CDQFXfRSPTv+1cFmCngsxkT TMRz3I3srttV/8Rz60MVK2AK/Du/H4OseFC0ex8bFSdtTYHUhlWN7sP+6JiAbtKvmUY+HlS3aEB jZyfY3sRNVXr29sh4gwDKjLO9ZHcznTJOwMet1/ud4evRgwStRP8yDNnSW0n8nMwk97j2qmyjdp uRN7RXkeHd1oe1g== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Authority-Analysis: v=2.4 cv=a6k9NESF c=1 sm=1 tr=0 ts=699c17c4 cx=c_pps a=HLyN3IcIa5EE8TELMZ618Q==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=lUC9hMLxrJuMSK10UuYA:9 a=QEXdDO2ut3YA:10 a=bTQJ7kPSJx9SKPbeHEYW:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjIzMDA4MCBTYWx0ZWRfXwHAqZX45n1n6 D9rg/aXtJJA3iHmeiPDsQoknHFSWT4pgMW9Dd6U4gW8fjMYxb5YspidrElJ659jEPBKE80+mJPQ VXoLMFPQL8F88t72SLR31PHEQIXz5r3ecX21rqtaqbgFBWn12NPrqgbinz9NR9/TX588FfzyCFe y8gNQf8fHu/Hhi+eMMbX3QQRalCmmo7cyAzjtRfzdQboLOOwBxiwiyJefRvieF/wCJeQt74GNDD Z7l5LzCRmND+vVfxO+THakx0m3JT6L8tyLCnfxS7nfQ6GnvClTJam3Zq2hF9f2mkGLAj7OTxh4w JXooEYjF3MnrTmIfFXiujL+FpaRRBAnCKyTb+/JpjzSzz7saXtPJiTnj8ScyzWxhsZbVRxmfXDE INhWc8mqlqsKIjydAqjoR0y03sZSfLVPqYC1vdndvh8xFRyh4IphBrOafMEHJg0bAGByQVYmmkM rL/RCDjrzH2gZOntDJQ== X-Proofpoint-ORIG-GUID: HcTLglzBfdDyz5N7fZBEG1nXBzBsJ-U3 X-Proofpoint-GUID: HcTLglzBfdDyz5N7fZBEG1nXBzBsJ-U3 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_01,2026-02-20_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 phishscore=0 impostorscore=0 priorityscore=1501 bulkscore=0 lowpriorityscore=0 adultscore=0 spamscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2602230080 It's been another year of discussing the object life-time problems at conferences. I2C is one of the offenders and its problems are more complex than those of some other subsystems. It seems the revocable[1] API may make its way into the kernel this year but even with it in place, I2C won't be able to use it as there's currently nothing to *revoke*. The struct device is embedded within the i2c_adapter struct whose lifetime is tied to the provider device being bound to its driver. Fixing this won't be fast and easy but nothing's going to happen if we don't start chipping away at it. The ultimate goal in order to be able to use an SRCU-based solution (revocable or otherwise) is to convert the embedded struct device in struct i2c_adapter into an __rcu pointer that can be *revoked*. To that end we need to hide all dereferences of adap->dev in drivers. Other series address more generic problems - like printk helpers and parent/of_node setting - but there are still some more specific use-cases of drivers dereferencing the internal struct device of i2c_adapters. We need to hide the fact that the device is embedded in i2c_adapter before we can move it out so provide a helper that provides the address of struct device without showing how it's stored and use it in some drivers. Link: [1] https://lore.kernel.org/all/20251106152330.11733-1-tzungbi@kernel.org/ Signed-off-by: Bartosz Golaszewski --- Changes in v2: - drop two patches that can be addressed in a different series - rebase on top of v7.0-rc1 - collect tags - Link to v1: https://lore.kernel.org/r/20251223-i2c-adapter-dev-wrapper-v1-0-bcf960a48fa9@oss.qualcomm.com --- Bartosz Golaszewski (4): i2c: provide i2c_adapter_dev() i2c: piix4: use i2c_adapter_dev() i2c: amd-asf-plat: use i2c_adapter_dev() i2c: mv64xxx: use i2c_adapter_dev() drivers/i2c/busses/i2c-amd-asf-plat.c | 4 ++-- drivers/i2c/busses/i2c-mv64xxx.c | 4 ++-- drivers/i2c/busses/i2c-piix4.c | 6 +++--- include/linux/i2c.h | 5 +++++ 4 files changed, 12 insertions(+), 7 deletions(-) --- base-commit: 6de23f81a5e08be8fbf5e8d7e9febc72a5b5f27f change-id: 20251222-i2c-adapter-dev-wrapper-c882660190a2 Best regards, -- Bartosz Golaszewski