From nobody Thu Apr 2 04:19:37 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.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 970793CF680 for ; Mon, 30 Mar 2026 12:41:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774874464; cv=none; b=KvMm61zAlMlU+Dy/3FS6IviDa57/6+UZpzR5kahDm7X2mPYDmfpsyX4YWRTtq1k0CVxajP/6qxB0tFFEN9l7om7iDtg+IccrkAb4RJ7ATMkF6pSB+H8j/Ei1kp5pgwN687xYA3a7IVBvsF9r76GFhnJS1ZgtCghs8HEDF3hl9Lw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774874464; c=relaxed/simple; bh=P5PymIvljl6p0WRzyDTMcM9zlkuK6HlOeCPW5+0Lkaw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=FSA5Dmr+j3uupuSqtyK9XK0XIAp+t/dyrjeNGCUZ/Jxc7aNowHaTe8QMy7NjSpF0hwG8lSzeuS0dPjdZ3S0o88Tfua4dSUNlH8FWqjahkwt+1zg9w059HJ1UBD2gDeKx9o+WB4E3+3moOcHF26Y8KJOWEmJAHNpF5BSIie4igCA= 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=J3xyZIR7; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=FStVzr3D; arc=none smtp.client-ip=205.220.180.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="J3xyZIR7"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="FStVzr3D" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62UBEGTS1402787 for ; Mon, 30 Mar 2026 12:41:02 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= e448+MMxh+/7H+vtw0PBLnj/+MwlVFLeTPvEog6+haY=; b=J3xyZIR7IZGl1n2j KOon/2PvGrQXPrvW0hr7FhOl4Pk6qmFlI7jHpbLVmZccARTygxT9T/9pwOF09tjt kWQ2SHkqSbaSzhpMI/UylI8Er2gmRjuPYScIfqWx7wtg7HldWZOwP7IP9esC5n6v CNSQXzLKqK57ymwWjTMKH467dBmq1ARTLWRI8Lub0tXj3PRL/opFRWjW0TvFeERV Jf7KbpSN50eVNqGRRovSTru+ItpJA64ZsexmxpmAw4bOTSxoBMm9ihPdXTT3rekn 60Om1QqTMOXp6xRPIptJFSQNaBhbNjAPtfNUveg7uBen9f3zYbrERQLGER4ZXP+9 YRfhRA== Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d7r4h8ejw-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 30 Mar 2026 12:41:02 +0000 (GMT) Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-8cfbbf78ca8so1061584585a.0 for ; Mon, 30 Mar 2026 05:41:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774874462; x=1775479262; 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=e448+MMxh+/7H+vtw0PBLnj/+MwlVFLeTPvEog6+haY=; b=FStVzr3Dp5azZmKbDNe25uz0njKMgN4uoIPk6T+mrD6lxiuFUrsVERvup2yjFS+yZL CCpOXuYy2QhLc2bYVJbVOFTGSqHHQX325klLs5rNTv6vAjka6/goYw7dtwoppURmGxUy W7chFlG+bvgsMu+hjtY97OzET/WFZzQibGpCqY1UcDCz/52KpDD0P848LEJHjngfmsiK QmZ6w3sHeCFZEb94zFEyy36r3+TtmHynn6CimoRRifEYT4yh05JbHUIkxc0c9us6dvWE I3Eercdizy2jtYPPRTaEXkcBQlRdg7YZUoh71jG33Pn4rwVb0zwoWv0OToP0g0JDNqMU tO3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774874462; x=1775479262; 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=e448+MMxh+/7H+vtw0PBLnj/+MwlVFLeTPvEog6+haY=; b=GWRpPbuAl+a6Aog0ifSgjkQ+PNcU0cw/MuB+hPaZiz5dzEMTyiheq1P5khgj0UaLP4 Trar/msPILP1kzAn9DdpQF89UQpNS0zlBN68mFlOxG3pkuGId0T32pkfVIQ2D+MrGtP6 19tMf6mCSsXYHCLWpMF6/us5zgLHR+dKDR6BsqRydayyuNI66DJ9qki7tRa0tYGGgym3 5s8o9GyVaGgJrydt9jV2Ls9gboaJRIiHY+sGpY0379gwBadcNGpLIu75fX8OflprxDHQ UN4vm7DN44u2C3y3ZrA04EoTmYoVkptl49n6YRbTNEXAzg9TDm1lDr8qIL2eR4+cxlPG agnA== X-Forwarded-Encrypted: i=1; AJvYcCXM8xA6agRUHPBTv17WDn6hpS0Vvfi5ThsTpEpYs3vL0G4+fpEm/FwFyTVqTmKAsEbnZrl0ZVrSWIMCvik=@vger.kernel.org X-Gm-Message-State: AOJu0YxpifMvz2/PLIPukK2gb/wDP9re+GKfp2+yql7RR3PSW5iVa7bI dRZTmV59q6KfTj6hYPaCbPymhES88omoqg0jaMa5k+y80cq4iDK1LRYQMrH0UCLQ4XpDmjoJGrM j6rkYy64fyZ00AnAF7zbjeqYJ3sjldBAoCh0eRtVZDJirE4bky2lqSH7MeuxIhQge+LU= X-Gm-Gg: ATEYQzwgeKVaNv58RU9EjFnHLcMPhm50M6eG7MxBYemQfwPvX/pSZ3pqVRmoULH85LB Ifmopx1ByoYs+fPeEjLDquO7VHsXpD/fRHa0ngVrnuX7zMibzcL1IdxfZEG1iOVXgiSDJ0ccDrs HkjEM/QGIODMB0jmquQV/hYxL4afpMWzDYntkkacVVO3F9Ppko7S7Pi6R2aRZWlT/iHTllUmfh6 YGtIF/Qxw0sdSX87XQmEOAvEd3zVR2/0KEpUU7GlYjIAdZ8geU658fBuD9mzPEM1WFGRrH3i18R T5pc7tGEQCHsI0g4qKU5z8PVQCGK5Cxdktdtl1l4tL+Kx6/HNif2CG7moik2Q7/oLK5s+Ho+Wxy B1HRZynY8SOrBjtO+UvNCvRR9lK7S7SsKIha9qd5ny19x00O6aAdF X-Received: by 2002:a05:620a:4cd:b0:8d0:3c58:c7c5 with SMTP id af79cd13be357-8d03c58cb7cmr224183685a.58.1774874461819; Mon, 30 Mar 2026 05:41:01 -0700 (PDT) X-Received: by 2002:a05:620a:4cd:b0:8d0:3c58:c7c5 with SMTP id af79cd13be357-8d03c58cb7cmr224178385a.58.1774874461364; Mon, 30 Mar 2026 05:41:01 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:e931:8d81:9955:76ef]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43cf24739easm19576153f8f.30.2026.03.30.05.40.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Mar 2026 05:41:00 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 30 Mar 2026 14:40:46 +0200 Subject: [PATCH v4 1/3] kernel: ksysfs: initialize kernel_kobj earlier 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: <20260330-nokia770-gpio-swnodes-v4-1-b68592e977d0@oss.qualcomm.com> References: <20260330-nokia770-gpio-swnodes-v4-0-b68592e977d0@oss.qualcomm.com> In-Reply-To: <20260330-nokia770-gpio-swnodes-v4-0-b68592e977d0@oss.qualcomm.com> To: Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Aaro Koskinen , Janusz Krzysztofik , Tony Lindgren , Russell King , Dmitry Torokhov , Kevin Hilman , Arnd Bergmann Cc: brgl@kernel.org, driver-core@lists.linux.dev, linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-omap@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2209; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=P5PymIvljl6p0WRzyDTMcM9zlkuK6HlOeCPW5+0Lkaw=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBpym9VDPYcvUDtQcRRyLXiSGwTCL5TtoBoMitI9 5KEwtMyxMWJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCacpvVQAKCRAFnS7L/zaE w12lEACc3qlLfd7n/bdgg8wuL8w0hRu8DG0YSa1pHDI7Gz/2qDM8CkzS7RgvlWa2k9XnRqaQpvb qYlWakeZWTehD7eXQEl+Bm6pA/ZLje+dyUXLIEbTbQMiGmcJUb4X4rABtrFmCu9hx982XFNiojI WjdfnBWqz1ESmg7UbHCJrQqTgNEsUFD3Nr65/Fmx+RxuOCJUn/vf3fyo30+G1Sw2NX5bnXnceZR Zm4+KUApxI0R10dWCzZ1fEmzrGi0Et1gE3FDqN3ahC1BJ5PP4GPQqCaCRTQ1uj1Te0ApXEmK39J AW6qSVVVOXY+6Nj1ISo6gqwoDTgT6AsATzX6WskIW0Oqh5g/U/vX90qEyvAYOjPTy1vl77R6bXD 6utqFHsR1vZKI7e1UEfRORFVSijqHaWoTM1DJpqtUOAhrJbrHRODBNPbarb5XIPH9oQHzS6Iwae i2ral9+gCb+6p2fCD2UTRMADtSpIiUx8V4dyFUVCsfAklTBjxMpgA4k98LE37uXj8ntc0WoMadP Bcbbp4Z8FP99OrFMBssRy10jzs8sptHkzebdUIynsjjAa5dyjq1ofMN/Sqb2947QSPJ5nyt9oZX pAHLUktXKQ4yg+wkDsLCKFJAUV0SZVPh0hc0tcttlTqMW8GkyC9bmRr1oF2WS8G4VH08z5VmBjC gMl+KvVfyvagquQ== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzMwMDA5OSBTYWx0ZWRfX1gWk0bclzL/Y MVsZpT4f6uafic5UkBrxi8fCHNALmZo+wcaMuRkmYLHSTRJvbJHHS8fFJlFFtC5Yc/69wo/bnRg hMVwd2TrSjNt7o/4lp6IcWgTvDLPv8AAW+DXr2BJBCDEuR8uJsUHtOA6P2QS8BpjpBi4i8WogXe bZi1u6qzLAWArmMgYObMigGZBShxwX4+Bv7mhJOqFa0jEy2PEHu/+9wcXrL5ck0RqdnP8MsYhym hWsEZT/ECoA0C2Um7RoY/1TADiwknOkwDDwxQOYfdNhzYiwjKrWD4+5v4wtnN5FycZ8GXLNbiBP nJzQtjWRWQ0rDw9pD57DKpZIqtbWj2XjTj8sNtfNt++zeysGmY5Dj6UXY3E4WWlAEnmQnMCwr6p NysXAy6K1Dfdur9u6AFILlTDWaCdAyeWKNpYai3j9E/uepcHgdsXohJvS0K/wVOs53NMlkGLlUf YSN0w/LrhoU16mH7slg== X-Proofpoint-ORIG-GUID: REVlTYy40K-jXfUX7pvO6jXLIpgiw5Pr X-Authority-Analysis: v=2.4 cv=PI0COPqC c=1 sm=1 tr=0 ts=69ca6f5e cx=c_pps a=50t2pK5VMbmlHzFWWp8p/g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=cUGsBi5UaGteNmT5bNcA:9 a=0bXxn9q0MV6snEgNplNhOjQmxlI=:19 a=QEXdDO2ut3YA:10 a=IoWCM6iH3mJn3m4BftBB:22 X-Proofpoint-GUID: REVlTYy40K-jXfUX7pvO6jXLIpgiw5Pr X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-29_05,2026-03-28_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 phishscore=0 adultscore=0 impostorscore=0 malwarescore=0 lowpriorityscore=0 spamscore=0 suspectscore=0 clxscore=1015 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603300099 Software nodes depend on kernel_kobj which is initialized pretty late into the boot process - as a core_initcall(). Ahead of moving the software node initialization to driver_init() we must first make kernel_kobj available before it. Make ksysfs_init() visible in the kobject.h header and call it in do_basic_setup() right before driver_init(). Signed-off-by: Bartosz Golaszewski --- include/linux/kobject.h | 2 ++ init/main.c | 1 + kernel/ksysfs.c | 8 +++----- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/include/linux/kobject.h b/include/linux/kobject.h index c8219505a79f98bc370e52997efc8af51833cfda..71b9086621c35b7e4ef99b9d3b6= 707db23faf58c 100644 --- a/include/linux/kobject.h +++ b/include/linux/kobject.h @@ -219,4 +219,6 @@ int kobject_synth_uevent(struct kobject *kobj, const ch= ar *buf, size_t count); __printf(2, 3) int add_uevent_var(struct kobj_uevent_env *env, const char *format, ...); =20 +void ksysfs_init(void); + #endif /* _KOBJECT_H_ */ diff --git a/init/main.c b/init/main.c index 8b7633b7ab720b9c13a231d64291d35d3852602c..1a9046b563e469057cca72ce39a= 0701c9c4d49e1 100644 --- a/init/main.c +++ b/init/main.c @@ -1482,6 +1482,7 @@ static void __init do_initcalls(void) static void __init do_basic_setup(void) { cpuset_init_smp(); + ksysfs_init(); driver_init(); init_irq_proc(); do_ctors(); diff --git a/kernel/ksysfs.c b/kernel/ksysfs.c index a9e6354d9e2579317d3b1bcb54223432d3ce0950..ac546562a6a1202a752de2d3671= 9c6a193520a79 100644 --- a/kernel/ksysfs.c +++ b/kernel/ksysfs.c @@ -213,7 +213,7 @@ static const struct attribute_group kernel_attr_group = =3D { .attrs =3D kernel_attrs, }; =20 -static int __init ksysfs_init(void) +void __init ksysfs_init(void) { int error; =20 @@ -234,14 +234,12 @@ static int __init ksysfs_init(void) goto group_exit; } =20 - return 0; + return; =20 group_exit: sysfs_remove_group(kernel_kobj, &kernel_attr_group); kset_exit: kobject_put(kernel_kobj); exit: - return error; + pr_err("failed to initialize the kernel kobject: %d\n", error); } - -core_initcall(ksysfs_init); --=20 2.47.3 From nobody Thu Apr 2 04:19:37 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 3AFCE3D1712 for ; Mon, 30 Mar 2026 12:41:06 +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=1774874468; cv=none; b=fG7wwK0WuPtXX2m+BPLJ4EkeaqrUQyVA1sjrMhMmClTdy7BSLyLXZ162+EwTBEuaUqjuOcDX0EwaHJmviYsCGCGROfrod84f74BEGhRvZDlhEgVE2GOhsPFFvBxqyoMDipaIR4hVsBxbwyjt6zawBLELsFtyYJ02DfrGJvK6wQg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774874468; c=relaxed/simple; bh=gJwyjiXRCnugGv/qc4veSv3kjlfeyPx7bWEjN+IOvTI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=FmdazxxPp+lFBN8HlIqWToRARDaw15ZEPEUE+xC9Pzrs1h7P0Zm53ZPlwOxGwVNJjTr0Ko+/QkvdDz7TrysDR9ZbNWNlulUN4acbLnqOTwplF9i5CX3JWbJUM0DaMWe8FXHVwrVyMRGPzmgPWfNfoIjT5H2AiXjSgIKyMnDO630= 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=TaGPeOVr; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=G739hVYn; 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="TaGPeOVr"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="G739hVYn" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62U9ELj01753671 for ; Mon, 30 Mar 2026 12:41:06 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= opfaxOPhT6iAK402N9SQHjFMmnwGP8bV8DD5Qr7SvFM=; b=TaGPeOVrGR9zBgAD nstkMpeQuy/3ZwmqZiD2EHTWs+/Ub6gGDHdwcs+Lz4sEaMZhbabQ3yBVe106p2zy vZ//VJlc9jU/nwKsZIOWeRLatPCZTBj5j7N20ICgVYFS8OYDiG4113C86OUMKWwJ ufogVcYrLECvo/CzTye+eemjNJTGXvkMmijtHarHcCWzP6yfPCzv/ofCa+U+o79i v/oFgEojvMnckzxT9PEMEJd6ScET9hS42yVJeH/rirA+8BFu1PEqhXDvVhkzqJE6 vWFYyUnvuLm5Z54L24XDEYdHqE0hA1o/BQNShWUB2C2+vB2CnzioKpxhxI5zG2ax pbyLOg== Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d6ufmmaw9-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 30 Mar 2026 12:41:06 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-50b4b81c632so144740741cf.1 for ; Mon, 30 Mar 2026 05:41:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774874465; x=1775479265; 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=opfaxOPhT6iAK402N9SQHjFMmnwGP8bV8DD5Qr7SvFM=; b=G739hVYnZab8yFz20FbHGd5lOXIaEjtu7sevmR9Fx5doMdnW6Kg0T77oWNABL37X0H 0xXOX+R7iyvTk5oyKPYN0pig+Z6ffaCaVwF1CjRGVNckQKTJ/zDxs6kbPvRmFzFwlYL5 KgC7rgpaK6l1WHgsiwwzfTcyU2NEvaXGtq/MibtjmMh3RQzkliaYV93CpX/g1KLSmRLu 7BStW1TwHMWgphkvlFuwUwaOWTKXj4xGOQC7I2gOqJYMcEwYfO6viKhNp7oda8761YNd 69XvVCN1esD86YGGv2qaOQwnA2IyTyrpHhuivcW+0/2TeZRzSKnaST9jgGuwnmFr5yWc 9oWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774874465; x=1775479265; 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=opfaxOPhT6iAK402N9SQHjFMmnwGP8bV8DD5Qr7SvFM=; b=TGA4i+S1asFvOB7POz7dirgTMT1bH7WgKdiWXvHi4JWf6Hdowr0M+fZKtGlggNP080 92TZWEJsfpWtfB6JgEiCqtT4RKgKZYjpBrDilCgFpbKBGJ1NWt0oJcIwlc3M5IhNgFgH DeyMAyJ5/DTpCxYAZ72LuwaAJ/ASJxM2Yl/KbZHcEJ/loR9//3CiuxK661kPgaMmMX3q Y6QvooTji+qP33+S7IrN2m8zL9ZMYG5Oye1mEZR/kkK2BBOeG/riN+/MPDsxYHtMUYHh 2JZrHKAR17DB6FNYq7aPt5IcG6Et481MynZqZ091j5DZ2qhXFZBLW1LcCRN7I4vbIpJC rsjA== X-Forwarded-Encrypted: i=1; AJvYcCWShIHU0jV84EzOrm9Pq1FsLS6lp7eXMn9Yldsz/xDQES9o5oY/iTGRvsB6tO3jXb9tcb42Vz7XXrmIfKs=@vger.kernel.org X-Gm-Message-State: AOJu0Ywk+Td8/Z/TLA4uTc27MiGd7JXnzZtppeDuxvfKqJ5uBzbl4XVV vReDIe/Hn2ccdWzY83QGh5NNVlp0rt7J3Bo8pEl+K7387SuXaLfvU+M/CrQXZaxu/HDnanSrhyr gZNdXc3UNBz8OZUduIKsslfTJOFYoXWZaT7FEUn1cKWoxu3PWwwywWDpY46UQBHZPEaE= X-Gm-Gg: ATEYQzzoXt//Ze9w0fdPpnwWUV5lL9+LEpxEK2IkyASttA8TS+RvYzaxDC0Bvpa3UnJ R5UR/EiZbeTB0Ujkm4GeZz+giwP3xpwO8PEjaan8jJfoS7SmFshu6QSnv5AmOT7pZhZzrb9AgXU 8npar5SZheX5DP3VPv5PAwaUxsYZpoyYW6s2dwsgoCG1rV0dlD/A7MbPGxZJtHZFOuhFQKKER2t C2OYPGWDpgvTMzhMxY70UyJSwYPxAdHhKlWOvrbYkk2l8d3if9c1v8zsZKfa9hE6Fj8OapiuZLy qFy5pOopFR4W5Haaq3qTy7Y8f2h/h9qUWboYSGNjbbScWreAmaxUYi7BlC2/v68OZcq4M5ZFxN6 jIl0vwGsglYSveKiwin71ja3brld2YrjEGUl1zuRF+LuUu1XsgM6D X-Received: by 2002:a05:622a:4807:b0:50b:3a6d:db5f with SMTP id d75a77b69052e-50ba39bae92mr157209501cf.64.1774874465223; Mon, 30 Mar 2026 05:41:05 -0700 (PDT) X-Received: by 2002:a05:622a:4807:b0:50b:3a6d:db5f with SMTP id d75a77b69052e-50ba39bae92mr157208621cf.64.1774874464360; Mon, 30 Mar 2026 05:41:04 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:e931:8d81:9955:76ef]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43cf24739easm19576153f8f.30.2026.03.30.05.41.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Mar 2026 05:41:03 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 30 Mar 2026 14:40:47 +0200 Subject: [PATCH v4 2/3] driver core: make software nodes available earlier 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: <20260330-nokia770-gpio-swnodes-v4-2-b68592e977d0@oss.qualcomm.com> References: <20260330-nokia770-gpio-swnodes-v4-0-b68592e977d0@oss.qualcomm.com> In-Reply-To: <20260330-nokia770-gpio-swnodes-v4-0-b68592e977d0@oss.qualcomm.com> To: Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Aaro Koskinen , Janusz Krzysztofik , Tony Lindgren , Russell King , Dmitry Torokhov , Kevin Hilman , Arnd Bergmann Cc: brgl@kernel.org, driver-core@lists.linux.dev, linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-omap@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2409; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=gJwyjiXRCnugGv/qc4veSv3kjlfeyPx7bWEjN+IOvTI=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBpym9XXiSQyC7OynNfgLxf03QB4HoghAslTf5Kn jeVOS7U8YOJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCacpvVwAKCRAFnS7L/zaE w6QpD/9XIROG3IAgmmHH1FUKBarIpLInEIqyvgVn4+D5u9EYIZqOmm8qK28LuCy2r+XGYofsJmr HBMDO98ZjZHo8YCEoD61fK+414ewpgTeAIn8pEsxv/zTAHrbFRiAuizAdCtTDBUnDpRXZGtHdYi N354SgY3nGnp1nVldydHpYHbsoGi8gDzOhedaKxKM+S0sYpGaTFaEQdpFlkRIKgRY+vShICU/gz ANsxjc85EB5iYpuQail204re8lL67/AmfUOOwVxyeZeTuMXqY+w8qcfjj9IT7FFDSogeeqnKdR3 dX8WHQDSAOZPFgoUFVVndqOy251BMcBHpMdGlszmE/2IM+dBo/5cPm2OdQYvuVeGVKdJYFzlo6O +AFEYhpFuIPn5UIDvoaHr2dXxVgx3WQHRo/LXScWe7n9qokYokPHxWJ+bVp358tqhekgpeRJVIo qsg6D7m9aDt9PmPsYy5vuAdaa4NKH8oJimvi68NcJCg3P7xvk5alF94cWBc9rGNyv6CxXLVo3zW duLeuK2AZgBWp3CUpkNKBcr90rswv70jRDFpI9kcQweSe/wLdlwXCkrosciwDkGLAbeufagU6q+ h7G57YM53sWxGuXvtwSkiobFnUQAnLyvQMowiIKJg8PSWgbqZ5CBebTrT+zwfiy0dpsU7p8chvf L/eWTFVN7jTl1WQ== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzMwMDA5OSBTYWx0ZWRfXyTj9+aSl9UXN e4+O3gfc+A73TqWHNRSNrTgYTBBzIiDmBXvOhiUKv80U8l9nEU5f9bpmJZP8GwubyETDfnA+rjk icmtHRIwrb78o6HvFmwSpJubco3GHaqDQkkSi/eLlkpuE5sIuRzS8CESrEgOSlujggfXjvR5vH7 rook1a0Y7Ppz9HROZttwI56m2xMS1UvPb105ApHVbvhy98Qo0bJNcLIDNZc8lADBERqaZDwS5jT RpnOGRd4Yauq8rDsDinn82h7RVsTXM+ewxxXxz3YNTluntGf1dBRUPX1QtF00hchb+DCAIqjwQD xHc0RLek6z4LrbVHq/WJMCvsohj5DXw1KKgsxsOKDq6fAT54Bu6+wg9msmEsK3oQ/I9EBDH1Vry c9vihA2PuFOkqprdqrIiO0m9oUb5+v4U2PKfYewMViIc3kvR+VZ5X69kmInnkUShyglHdp5Q339 MFsU12mwtMCFEfEyZTA== X-Authority-Analysis: v=2.4 cv=aOT9aL9m c=1 sm=1 tr=0 ts=69ca6f62 cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=XRX4SzNu4mOsujJFFI4A:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-ORIG-GUID: tfn-iE3V_G4dg7Y2P2vbfXt6J_9IwjU7 X-Proofpoint-GUID: tfn-iE3V_G4dg7Y2P2vbfXt6J_9IwjU7 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-29_05,2026-03-28_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 phishscore=0 bulkscore=0 spamscore=0 lowpriorityscore=0 clxscore=1015 suspectscore=0 adultscore=0 malwarescore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603300099 Software nodes are currently initialized in a function registered as a postcore_initcall(). However, some devices may want to register software nodes earlier than that (or also in a postcore_initcall() where they're at the merci of the link order). Move the initialization to driver_init() making swnode available much earlier as well as making their initialization time deterministic. Suggested-by: Dmitry Torokhov Signed-off-by: Bartosz Golaszewski --- drivers/base/base.h | 1 + drivers/base/init.c | 1 + drivers/base/swnode.c | 13 ++----------- 3 files changed, 4 insertions(+), 11 deletions(-) diff --git a/drivers/base/base.h b/drivers/base/base.h index afeda89fd4710c4c5492b5f19134e2aa8e1e581e..30b416588617bbc3fb433654c99= 9c9b533d73752 100644 --- a/drivers/base/base.h +++ b/drivers/base/base.h @@ -312,6 +312,7 @@ static inline int devtmpfs_create_node(struct device *d= ev) { return 0; } static inline int devtmpfs_delete_node(struct device *dev) { return 0; } #endif =20 +void software_node_init(void); void software_node_notify(struct device *dev); void software_node_notify_remove(struct device *dev); =20 diff --git a/drivers/base/init.c b/drivers/base/init.c index 9d2b06d65dfc6bf8759f6c232e2d3f753da139ac..af8014416c2460fac91b08ce919= c082bf961fcce 100644 --- a/drivers/base/init.c +++ b/drivers/base/init.c @@ -34,6 +34,7 @@ void __init driver_init(void) */ faux_bus_init(); of_core_init(); + software_node_init(); platform_bus_init(); auxiliary_bus_init(); memory_dev_init(); diff --git a/drivers/base/swnode.c b/drivers/base/swnode.c index 51320837f3a9f1bf4f65aa161d9b941affc74936..a80575bf598b509eb1469cae8a0= 9c601726ce0c8 100644 --- a/drivers/base/swnode.c +++ b/drivers/base/swnode.c @@ -1127,18 +1127,9 @@ void software_node_notify_remove(struct device *dev) } } =20 -static int __init software_node_init(void) +void __init software_node_init(void) { swnode_kset =3D kset_create_and_add("software_nodes", NULL, kernel_kobj); if (!swnode_kset) - return -ENOMEM; - return 0; -} -postcore_initcall(software_node_init); - -static void __exit software_node_exit(void) -{ - ida_destroy(&swnode_root_ids); - kset_unregister(swnode_kset); + pr_err("failed to register software nodes\n"); } -__exitcall(software_node_exit); --=20 2.47.3 From nobody Thu Apr 2 04:19:37 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 365203D332E for ; Mon, 30 Mar 2026 12:41:09 +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=1774874470; cv=none; b=VkH5dpcZDopZJ13wu8IcZ27EwUeksLGHwg4EyZqjYyvw9mEx53JcO/nxpx3xr99DKP7HVGQ7nA8Ut0tLNnAG5GrSF9dPsHFYRJiq4+Z6BANugen2fqGbE0OlLhzz28e/Fqe+KpMf4mgoeslXZT1CVOTMeJTiBi+hIf74LAOY7ug= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774874470; c=relaxed/simple; bh=84lA+sQad0KFCHbORyyoFKtDWqR/112mWPWVfk7uVlo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=M6DKEvpG+tJTOy/iXPey14Sd2KCTdwGi+/C8EDGI73gN9WwjbwwDxYNdJ1q3cXtIPXhpKwZruFOuoEeWaP4NRh6F2Nh+arZ9ahM8C2l71Bbkv4FFtoa+LdfbiLzRJY1Fo4n9zQ3M+ZH3Vgp/rdINbf+15gcYGNmPQOJ76y3XMik= 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=jmrmusQO; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=G3Nej+HZ; 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="jmrmusQO"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="G3Nej+HZ" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62UA7lLj3539773 for ; Mon, 30 Mar 2026 12:41:08 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= ko1IaIbS30UK07529xORwTESC79YHbPzcSNYySWBN3s=; b=jmrmusQOEXUlkMAU RFn5qgz0heXaQtsy/G/nHKb6zRqKcKUC3ZQSJxeoDhcDzPKpywJcINRj4EVbc+JO JdQMjPmLG0qakAUl2oIC/+QzUuocxqOryXMUucfUlF+zgQcyOcqAq9PoQ6cXydR6 1hsce97+sPOMfBC0eeLr1pBnZJ9BxqZ/7ZcPSITCi0uLNMT6hbIxw4LGshTSnVBc hKVfpf/GoHFt4ssLIIT4D9JGinD+9VnjBiEsmbuFkruWuNU1hCegiwx6v+Kxw98R O/lVdHquwLk5dyl7xungLevWAn2MCVmE/obm7qywmyKdw0JWZqCJ6s/dWzBQl5e7 6qQYzA== 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 4d7q59rkfg-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 30 Mar 2026 12:41:08 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-509070bda13so138705161cf.1 for ; Mon, 30 Mar 2026 05:41:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774874467; x=1775479267; 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=ko1IaIbS30UK07529xORwTESC79YHbPzcSNYySWBN3s=; b=G3Nej+HZCAMNjxCiBXUk1kvxfDohzcbC1ZW1AlSlhNp+IL6ZfOImZixc7IPyyOZf5z tkA2uLWH3L0MFbNS1Hgn6NmnIhb0+Ox5jZl9jWBOLOYsUSy+16DRi9iKbZJr2kQ5LiMt iJfWU3dNKerIdp4HCYINb2Ry90UnhaX7VOLiGAhV82Am/71Q4Kd7dJHLF/H0sglabTaH Vl9+kuBl3ON+ndwgAih17IqImZ4qnmnVLUuQ3xHvH5n6L9fCeeJi/EZc4l+1VpZ5sSwN HDEaAAk9xHqedOPwaJJZxSKXCFJIDCSUYMNI38jfDU3JKDm/J+XJUPGstHmxxiOrtPSp lrvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774874467; x=1775479267; 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=ko1IaIbS30UK07529xORwTESC79YHbPzcSNYySWBN3s=; b=PaovPPALNNMxYf8xWfM/04TvT8uRlEZrOW1+u4K7BLYZvOqaAKHBIthciZcbqThefm e4K94Lc0d5cRzl3AD0CwxqXMS1xTozsK8bjDVYp26DmTYeUpQxwRy4eFkDGA4T/8Tubz OwFT/JfT/9nB0S7GLK1BEhWug6hvD5DG8pT7Z/Fj31eAqU3d4fzpsmpV06ost4f9ENk8 74+VubErGzrZ1iCn3aDXVBUAUjiJHlPvtR3kSAGR0YkvYUs8WETvbT6JzbiUOmEjusar SS7Zb3aVMa51HEFtsIftNr5AqFwPE9eVFLJZKQCCHGt18IuGQltatsUSuNWQnBoRIftF RSkw== X-Forwarded-Encrypted: i=1; AJvYcCX3b7X4JDpTQjBnoFo78ErzLdPMnFIZVRnXWUOnSC+HN9ZaF1NzPNv9Ag0ctPUtOoXFye+6x68BEw7FnwU=@vger.kernel.org X-Gm-Message-State: AOJu0YytVW3NiYQdBv6QxrlAzOqAfmwDw0gTCLEdV+DFCPC08Pbsp5xw /HOXvLWO22hmaifc5sKw8CcqE0NbdffDF7OwB+TEVQXR//5xk0WCaXzOb4w2BlWY8DMVem+55Fn J8BPJHf6c66qkTGChXgnnxP19ez1zdG4tNleu0EJxWdut2LUsLN+BoxzTihLoKbq3QV0= X-Gm-Gg: ATEYQzyNA0bdoIzkvbBUyY88W9EwLy0U5/Uzl8w8mi4xWJ4ZIQ3k04R4JSXI71POrAY GsSiQ1hL2BiOu+uY0JCWijL35rrM7qrCEVxuKU1dEZ4ts2gBkBF4jXM/IWadS/B/kQI7TcAobII o+TcMKw8/KFkY9EgAUIV6zgHJjHYaVgZhoPuGS5l0F++hmdc1eAMd/OAhWFCQw4IO7lT5V/7KZQ csCp0qeRCKaAzzm7Lv01CD7ZX2TRFwWvjaFykFDJK/3FWf0Zpy2MYDkWeiB70YCSResYKdBxUSm FYi7XHReIGpydxseK+L/N6OnyV2K7OvJCixGgIvj+omZrZIDw2K+091W1lDqYIJR019Eq+swt8k KzH07U2jKT6DAj/XHZVn2BHycGHg0cxg5IUlNcULIql+qYRE4E4jk X-Received: by 2002:ac8:5a89:0:b0:509:1b5c:fe25 with SMTP id d75a77b69052e-50b994a2ef2mr179889391cf.23.1774874467164; Mon, 30 Mar 2026 05:41:07 -0700 (PDT) X-Received: by 2002:ac8:5a89:0:b0:509:1b5c:fe25 with SMTP id d75a77b69052e-50b994a2ef2mr179889051cf.23.1774874466642; Mon, 30 Mar 2026 05:41:06 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:e931:8d81:9955:76ef]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43cf24739easm19576153f8f.30.2026.03.30.05.41.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Mar 2026 05:41:05 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 30 Mar 2026 14:40:48 +0200 Subject: [PATCH v4 3/3] ARM: omap1: enable real software node lookup of GPIOs on Nokia 770 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: <20260330-nokia770-gpio-swnodes-v4-3-b68592e977d0@oss.qualcomm.com> References: <20260330-nokia770-gpio-swnodes-v4-0-b68592e977d0@oss.qualcomm.com> In-Reply-To: <20260330-nokia770-gpio-swnodes-v4-0-b68592e977d0@oss.qualcomm.com> To: Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Andy Shevchenko , Daniel Scally , Heikki Krogerus , Sakari Ailus , Aaro Koskinen , Janusz Krzysztofik , Tony Lindgren , Russell King , Dmitry Torokhov , Kevin Hilman , Arnd Bergmann Cc: brgl@kernel.org, driver-core@lists.linux.dev, linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-omap@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=7115; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=84lA+sQad0KFCHbORyyoFKtDWqR/112mWPWVfk7uVlo=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBpym9YJCTjMaPTcRorvdqssCYI1k2/E5GJ4jytw ZR57hP5o8uJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCacpvWAAKCRAFnS7L/zaE w0NyEACit79oWBubTSXRaaJq6YU0cV2jClRR5Pm/4h8x5xRF2z/gLJIJSF+x1qXg0yuxJKR2haF 3Z0d+rFQ60Gl3L1OtJnvwMgRypx6zY0Q6MG7Mmy9ECWLZ+NXChFBipM4KtpNPz5dF+q+SieEr0w 64TQJX1O33B2L6MHdyDfT+QDp41ssoIhcVGDGAkzPeNIu+smVIm5BDURH5vyp05vGhHG+6VW9nH 8mfUAAwT6x1XYVl4uiRlKA0i4BVia0WY9+Ex+lMkSulG22R9hbs/iGoCKJEh2i9RJ0XR4KPP21A /40PNmYgZaVxkQHNFFaiDAVO+BbqHxxrFR47tqi/P8PvjiB/yvASU7SeF2s/8cjSD6YRmP7MEMO 6uc39r0lndgV5mL/Uvnv8Z7HCpixxbYh08vw1DgAusvSS6omRm6NGjmQyvvB+8OMynTzNC/P5W3 0npezTcalpAcC5Bhzn9gKkAXDB4abPIm/lsjFRTplB92tVP9ZLpukZ0poUDMekuKEPCtKYhECOa W5whKrHSRxv84A2oE07uonp3s08xZTguhMjkk2MSyTBSLLIdLFV8isuwT9xjQR18W2lH6rZwbhI NG4Qay4HfA4cXVkfjnX7pCsZAkexdAjVBYrKJdsHIYASkj89OmNZetU65DXT9JNARw0ZIFKC6LM tWqkSTVLaXfQ/Lw== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-ORIG-GUID: XyZ2X7pVYvwyp6wYKXeJAjRucMYS7aml X-Proofpoint-GUID: XyZ2X7pVYvwyp6wYKXeJAjRucMYS7aml X-Authority-Analysis: v=2.4 cv=EcXFgfmC c=1 sm=1 tr=0 ts=69ca6f64 cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=mL5-Ybe71cLVbzrCEFIA:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzMwMDA5OSBTYWx0ZWRfX27omMfL0SJ9w rRqD94xnPgNLTUR37Ej8zBpNKSxNcXtMgGWLbrF0kTUKQSF91rvEH7t36TON4uftMVMEV7mbN3d 3/G51Yev2ZYjPmG82skkx5nfJ/7ewclN3cJdTfgioaox6Dh3sfweR34t/LCKjsRSAx0H0W5Twuf pr+JAyoMaGfEtwC9h9LKVd7vsxWDvqrx95aC5ThDtDgogyn9lJYQTDnxnI3DCTfTQsJbBIYAAmI H36/CYIrgvY+Mwny5J5q0f9vKCs5/gdiQVJK5FiyT+i/UQvKuf9K6wTEg6CD/HGUAQLrxm5pdYC BloFD0vgW0XqPHOX/Hg7qqXCx9xufKHmlHdxhclJ0FqchEY5jlwAeQslX2nf1A66o1L0hS8rVRp q2T0ip54R7oU8QUSchVl1pGHwQ8hP6fS90pBCSK6hNiaYEKyoR5kVLMvp5W4+XBrGbs1xF+dKLe w020KDL86FWT8xibMZw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-29_05,2026-03-28_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 adultscore=0 priorityscore=1501 clxscore=1015 bulkscore=0 suspectscore=0 lowpriorityscore=0 phishscore=0 impostorscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603300099 Currently the board file for Nokia 770 creates dummy software nodes not attached in any way to the actual GPIO controller devices and uses the fact that GPIOLIB matching swnode's name to the GPIO chip's label during software node lookup. This behavior is wrong and we want to remove it. To that end, we need to first convert all existing users to creating actual fwnode links. Create real software nodes for GPIO controllers on OMAP16xx and reference them from the software nodes in the nokia board file. Acked-by: Arnd Bergmann Acked-by: Janusz Krzysztofik Signed-off-by: Bartosz Golaszewski --- arch/arm/mach-omap1/board-nokia770.c | 30 +++++------------------------- arch/arm/mach-omap1/common.h | 3 +++ arch/arm/mach-omap1/gpio16xx.c | 28 +++++++++++++++++++++++++++- 3 files changed, 35 insertions(+), 26 deletions(-) diff --git a/arch/arm/mach-omap1/board-nokia770.c b/arch/arm/mach-omap1/boa= rd-nokia770.c index a5bf5554800fe17b430e84ae421ffa8da2bb11a0..46f817f6316b70ff37bb9dfde86= c675fd692999b 100644 --- a/arch/arm/mach-omap1/board-nokia770.c +++ b/arch/arm/mach-omap1/board-nokia770.c @@ -36,25 +36,6 @@ #include "clock.h" #include "mmc.h" =20 -static const struct software_node nokia770_mpuio_gpiochip_node =3D { - .name =3D "mpuio", -}; - -static const struct software_node nokia770_gpiochip1_node =3D { - .name =3D "gpio-0-15", -}; - -static const struct software_node nokia770_gpiochip2_node =3D { - .name =3D "gpio-16-31", -}; - -static const struct software_node *nokia770_gpiochip_nodes[] =3D { - &nokia770_mpuio_gpiochip_node, - &nokia770_gpiochip1_node, - &nokia770_gpiochip2_node, - NULL -}; - #define ADS7846_PENDOWN_GPIO 15 =20 static const unsigned int nokia770_keymap[] =3D { @@ -112,7 +93,7 @@ static const struct omap_lcd_config nokia770_lcd_config = __initconst =3D { }; =20 static const struct property_entry nokia770_mipid_props[] =3D { - PROPERTY_ENTRY_GPIO("reset-gpios", &nokia770_gpiochip1_node, + PROPERTY_ENTRY_GPIO("reset-gpios", &omap16xx_gpio1_swnode, 13, GPIO_ACTIVE_LOW), { } }; @@ -138,7 +119,7 @@ static const struct property_entry nokia770_ads7846_pro= ps[] =3D { PROPERTY_ENTRY_U16("ti,x-plate-ohms", 180), PROPERTY_ENTRY_U16("ti,debounce-tol", 3), PROPERTY_ENTRY_U16("ti,debounce-rep", 1), - PROPERTY_ENTRY_GPIO("pendown-gpios", &nokia770_gpiochip1_node, + PROPERTY_ENTRY_GPIO("pendown-gpios", &omap16xx_gpio1_swnode, ADS7846_PENDOWN_GPIO, GPIO_ACTIVE_LOW), { } }; @@ -225,9 +206,9 @@ static inline void nokia770_mmc_init(void) #if IS_ENABLED(CONFIG_I2C_CBUS_GPIO) =20 static const struct software_node_ref_args nokia770_cbus_gpio_refs[] =3D { - SOFTWARE_NODE_REFERENCE(&nokia770_mpuio_gpiochip_node, 9, 0), - SOFTWARE_NODE_REFERENCE(&nokia770_mpuio_gpiochip_node, 10, 0), - SOFTWARE_NODE_REFERENCE(&nokia770_mpuio_gpiochip_node, 11, 0), + SOFTWARE_NODE_REFERENCE(&omap16xx_mpu_gpio_swnode, 9, 0), + SOFTWARE_NODE_REFERENCE(&omap16xx_mpu_gpio_swnode, 10, 0), + SOFTWARE_NODE_REFERENCE(&omap16xx_mpu_gpio_swnode, 11, 0), }; =20 static const struct property_entry nokia770_cbus_props[] =3D { @@ -318,7 +299,6 @@ static void __init omap_nokia770_init(void) /* Unmask SleepX signal */ omap_writew((omap_readw(0xfffb5004) & ~2), 0xfffb5004); =20 - software_node_register_node_group(nokia770_gpiochip_nodes); platform_add_devices(nokia770_devices, ARRAY_SIZE(nokia770_devices)); =20 gpiod_add_lookup_table(&nokia770_irq_gpio_table); diff --git a/arch/arm/mach-omap1/common.h b/arch/arm/mach-omap1/common.h index 7a7c3d9eb84a06c18fbc70e7c94a161b487cd002..c0f6e231fdb4422c5d2c1aa3e33= dd6dd99d2710e 100644 --- a/arch/arm/mach-omap1/common.h +++ b/arch/arm/mach-omap1/common.h @@ -35,6 +35,9 @@ #include "soc.h" #include "i2c.h" =20 +extern const struct software_node omap16xx_mpu_gpio_swnode; +extern const struct software_node omap16xx_gpio1_swnode; + #ifdef CONFIG_OMAP_SERIAL_WAKE int omap_serial_wakeup_init(void); #else diff --git a/arch/arm/mach-omap1/gpio16xx.c b/arch/arm/mach-omap1/gpio16xx.c index 55acec22fef4e73f20935473602ef6cb2f4f379c..e371183e0213912ebfa7edd34ca= 7e7683869ab12 100644 --- a/arch/arm/mach-omap1/gpio16xx.c +++ b/arch/arm/mach-omap1/gpio16xx.c @@ -9,6 +9,7 @@ */ =20 #include +#include #include =20 #include "hardware.h" @@ -55,6 +56,8 @@ static struct omap_gpio_platform_data omap16xx_mpu_gpio_c= onfig =3D { .regs =3D &omap16xx_mpuio_regs, }; =20 +const struct software_node omap16xx_mpu_gpio_swnode =3D { }; + static struct platform_device omap16xx_mpu_gpio =3D { .name =3D "omap_gpio", .id =3D 0, @@ -99,6 +102,8 @@ static struct omap_gpio_platform_data omap16xx_gpio1_con= fig =3D { .regs =3D &omap16xx_gpio_regs, }; =20 +const struct software_node omap16xx_gpio1_swnode =3D { }; + static struct platform_device omap16xx_gpio1 =3D { .name =3D "omap_gpio", .id =3D 1, @@ -122,6 +127,8 @@ static struct resource omap16xx_gpio2_resources[] =3D { }, }; =20 +static const struct software_node omap16xx_gpio2_swnode =3D { }; + static struct omap_gpio_platform_data omap16xx_gpio2_config =3D { .bank_width =3D 16, .regs =3D &omap16xx_gpio_regs, @@ -155,6 +162,8 @@ static struct omap_gpio_platform_data omap16xx_gpio3_co= nfig =3D { .regs =3D &omap16xx_gpio_regs, }; =20 +static const struct software_node omap16xx_gpio3_swnode =3D { }; + static struct platform_device omap16xx_gpio3 =3D { .name =3D "omap_gpio", .id =3D 3, @@ -183,6 +192,8 @@ static struct omap_gpio_platform_data omap16xx_gpio4_co= nfig =3D { .regs =3D &omap16xx_gpio_regs, }; =20 +static const struct software_node omap16xx_gpio4_swnode =3D { }; + static struct platform_device omap16xx_gpio4 =3D { .name =3D "omap_gpio", .id =3D 4, @@ -201,6 +212,14 @@ static struct platform_device *omap16xx_gpio_dev[] __i= nitdata =3D { &omap16xx_gpio4, }; =20 +static const struct software_node *omap16xx_gpio_swnodes[] __initconst =3D= { + &omap16xx_mpu_gpio_swnode, + &omap16xx_gpio1_swnode, + &omap16xx_gpio2_swnode, + &omap16xx_gpio3_swnode, + &omap16xx_gpio4_swnode, +}; + /* * omap16xx_gpio_init needs to be done before * machine_init functions access gpio APIs. @@ -208,7 +227,7 @@ static struct platform_device *omap16xx_gpio_dev[] __in= itdata =3D { */ static int __init omap16xx_gpio_init(void) { - int i; + int i, ret; void __iomem *base; struct resource *res; struct platform_device *pdev; @@ -244,6 +263,13 @@ static int __init omap16xx_gpio_init(void) iounmap(base); =20 platform_device_register(omap16xx_gpio_dev[i]); + + ret =3D device_add_software_node(&omap16xx_gpio_dev[i]->dev, + omap16xx_gpio_swnodes[i]); + if (ret) { + dev_err(&pdev->dev, "Failed to add software node.\n"); + return ret; + } } =20 return 0; --=20 2.47.3