From nobody Sat Apr 4 01:34:32 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 90E9C3E51F4 for ; Thu, 2 Apr 2026 14:16: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=1775139368; cv=none; b=HRzwdLy+XNvH/wPxj01fRVEChRFWErbhPRzbHN9soQBLawndGZQRHSA8FJqfz9Hy8qUWtz3i4vAVFhc/D98to2qRQmccoOLxgbiYpoDMIjKyvDoYZgJXulJRR23qRD1n9wIQ+UzZ+REjebX708OXonM+x38FJlO6XuDhN7/5ZyI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775139368; c=relaxed/simple; bh=LCXTRWIgG/99GVhp8MFYkc06vlJUWv5VfMB08f8sFao=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Hpy1jRDMThguatdyST23hwDyekD+ZV1a5+94NEvNftg38zarjOkAnuvh/qRcWRyIZlslSW5KuZq48dJEekM8yLP7swDCttvabw2PgmxcJ6Hq/5jAl664J1vrt5u4EEiQmTNvQ4R2Ox+nDsUWRTbxZbz8M6PWqQlTUzApxqVbFSE= 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=jv3WMqmF; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=HgswPZAI; 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="jv3WMqmF"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="HgswPZAI" 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 632BW1Gl948926 for ; Thu, 2 Apr 2026 14:16: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= wES8wcKZ1pvEl/GAGqGsZxc6MwZbf2WUlgbApncZLUs=; b=jv3WMqmFBff5n/3D p2Q4nbtgyH7nrv5A28lD+FTh32DfaAjYQfVtWjy/XIWhE3JRLMEnijm/ei4Bj5rh KvckIv1qIpteRNPmKWmeBghWcVyUw/ccZE0OdZ4mhMN3p2hCsfKxJj7GsLAZaa95 Jd0HLcyHDy1CNPKgQzR3YFGq9gFir+g1xxfsGNqrdI+fZINbYfHFqqjulNSPwHfb /LDLzCjZ424Jf1kaxV/+iRqX3M/ZK8mVnoKZEtkE6m9S3LjIq1aNxYN/g4NzOlz+ r5p289hpQSq0k1knzA9gfQj8xYJp7mA+ldH5icZ3f70VOdC8bo0307DZ2Er+DOAk 9prNJQ== 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 4d9qnu0p90-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 02 Apr 2026 14:16:05 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-50937cf66b5so39254461cf.3 for ; Thu, 02 Apr 2026 07:16:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775139364; x=1775744164; 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=wES8wcKZ1pvEl/GAGqGsZxc6MwZbf2WUlgbApncZLUs=; b=HgswPZAIwJSoFVLKbwvvFsyK4Eg5PafoiMEm9UJrz+3xmLF4Bo5dZtvKPUGEpixWYA PpgU3QXg6HZcjJikSZ8QpmAFxw4MGwBOW2Hvn99oD9Sw86Ubzshgulu1HVuTyd+qRDij 8Aa1pxA8OEvI7b2ksPiDvTaqpTJf7VDDy7huH6KOWrcaWpYhW/znfk4ps3HAypS313sg bCg+GkYmJWFiD7FiH72x31XavrnSvfzOcmhIjAPtSpIplDLT3ZpwqT4uu0rbzF964FFZ Z2KDNrEFhSGIYikLj1oYzsE2D1xJ7goUy+bm04oNQZ6sYVCUljxmI4RKwjZOkBvUuXQL 1xwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775139364; x=1775744164; 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=wES8wcKZ1pvEl/GAGqGsZxc6MwZbf2WUlgbApncZLUs=; b=rsTry7NEdNK1Rxs5uYPHyT0trw2ZEJ//C/eebu7lw4rbeNx1K0ac6dCmYXoIaujNOg 7Q+4ZKsAJ5+u+CbixzO+ig7KuTAMvxRxZa6p/Ztj78DImX6Ju/emlEiR+c9UnX1Q1nbq Oy0dHGLqdcwUwxI7yiwDOgesJQb9WMxdIgIBNOPQfJZpaUQG8KUYc5zDLO4ntUQMOTZS eUrvRElX6w0fOPNnaBht2XBWBZUr7PemjIRsUuXB/qWzY6/hrsARnmcuQlnUm79A0iuF 78s7HYP/fHoJdZBzwg6qnpqeVC4aOkSUy8dcji7c75EA63vTZLDuaSXWDlWHBqosI4JD 0pDg== X-Forwarded-Encrypted: i=1; AJvYcCVyoZWROhM0Y6s9ozsnwYEY5zxszlZv0MuPqRQ2gYRvdS+9aFAOSXb6nK1caYoCFHmBU0+WZny0pkReGY4=@vger.kernel.org X-Gm-Message-State: AOJu0YxPiT7TfvsYlRDfUvDcDbyluiUkzoJz1OHALk9gPGbBF8hcnV5C CGa+psMVzuKcuE+7yQCRJPtdqMb0OWMJru9OdzERedD8JDKKWxw2cdlhkGseNuK6uG0FqWp9yCv sY/LXuFs5XgJOYSZCgSfqdTb+61llQIpnQNJ13LoLFY7G9VKWcv3hnNS7cxgJi//hVsM= X-Gm-Gg: ATEYQzyfuZgP1VXc+k9rD3jbbOegoIqCXW9gQaZEa29LgoH+vxdZNeyKzCXvFHRzcjB ze4PiJy68TEpgTq3B4HDnraJfXzn3dcs3T+Zf5jSOKOliszpzY9G4vp6FJj/50pG9JjWYadkXmr OkbbGKbX1Eyad1j0y2pkBz++4ikLi1PO3PQnvqXh8GVH0UPqbV/zLKt4syMzY4TlBG7uajlnIQ3 A7WX5s87mbMa6073Nb+jtQUcRVw/oqz7zc34IutgH1EnziRyqVJmwt3nfGUzICRZ62Ox44/bsN7 4YbjiualqODUnQz7mbIvg+AVuU4Q/9NSzJ96Hf6G84wFeMRuB5Uqd15SRgzCE3E+vjVUESzi4q3 pwhDzk0oxts8+GH7Vv6pEdnsfDAo5kluD3n2SwaCJ+RWPsI+lrmyq X-Received: by 2002:a05:622a:1648:b0:50b:7d38:9453 with SMTP id d75a77b69052e-50d3bc8d065mr106377501cf.39.1775139342691; Thu, 02 Apr 2026 07:15:42 -0700 (PDT) X-Received: by 2002:a05:622a:1648:b0:50b:7d38:9453 with SMTP id d75a77b69052e-50d3bc8d065mr106332871cf.39.1775139322170; Thu, 02 Apr 2026 07:15:22 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:4ff1:3e57:22ec:dadc]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4887e80a5e2sm192824885e9.1.2026.04.02.07.15.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 Apr 2026 07:15:21 -0700 (PDT) From: Bartosz Golaszewski Date: Thu, 02 Apr 2026 16:15:04 +0200 Subject: [PATCH v5 3/4] 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: <20260402-nokia770-gpio-swnodes-v5-3-d730db3dd299@oss.qualcomm.com> References: <20260402-nokia770-gpio-swnodes-v5-0-d730db3dd299@oss.qualcomm.com> In-Reply-To: <20260402-nokia770-gpio-swnodes-v5-0-d730db3dd299@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=2240; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=LCXTRWIgG/99GVhp8MFYkc06vlJUWv5VfMB08f8sFao=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBpznnwjyviMXX92bx3A1RXtxXU4Yu4V8IwHdYnS LameZPSOhGJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCac558AAKCRAFnS7L/zaE w833EACzWlKbqVGcfZAhKjZPDmJLE3XoLYXCIx6/AmX6i/x38OUku4A8Hy5Vu6BnJmTohfTi3l6 ICdFhU7cVmlDO7NZtv4bBQokXVA3qUHb6ucwParLHw4jS6OPQrClb9B/GM91u20GomjJJOeKJtr a6E4/Rd2atvM8Q4nD+Q/V8fg3p1O3AOoJ+OeSZQa5JD4/7GzGHVErq06oN/Lh9g2so7xlUv0Hlk 1mt5+BUNingwKzQ7YP1d04QJLigehOSy+bOpAvPwUsBiAzwRhFB4UJmgxrhXCUekYXxDNQlbj58 wv50XhJTMr1sJpYVLAnJeXIgpuW376dd74Qa+ixJZXo+5ov/0scoZV9lATu7VCGPm7JNJ8J0cOG xN0eUm2khXwnOVfXlM0JYIbDg05TMFeHJzcvlNl4vATbxBudv4YHGgvAkyPeRyhUTcdBoNeTfK5 sopWdebg5X8SzCgGQMTBzhK04LSrxiHZJeucP0zYrwAr7JAy/y2FI9/AfWTnc5RYOartdhkdCLL f2JrVcdSLAaMToMNOHZ4IZZddi4+nQTcg+/9OWnYESTHZ1sIgnTJxDuA2eSeJP6p3syatFohtfm BsLzPKbFSQBNnOw5sF2wGIz4DDXMqcrv1XY86Y1X/LEm7kA0uxNj6scB3+QtLzDjjbqTOe7RBIt LjjR/jmjXCsDhcg== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-ORIG-GUID: z71NZpG75WLZGEqDKcn4S1ZxK5CYljDy X-Proofpoint-GUID: z71NZpG75WLZGEqDKcn4S1ZxK5CYljDy X-Authority-Analysis: v=2.4 cv=RoLI7SmK c=1 sm=1 tr=0 ts=69ce7a25 cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=XRX4SzNu4mOsujJFFI4A:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAyMDEyOSBTYWx0ZWRfXxkdbct+K/Vmw NF/3XtFP5KD1NvVvIN6rd3nJt7DRxQv32D/y5vD2CuxblbThH+2AY+AC0sfD2PMG12p2cIx7Rx0 oOhNIlQMKrSCOC47s10Lr5EpshV3vC6ToUURtRgc60iXjtFSOBxO3ywPQNY55q33qDElwtbjerg +B7JffwukINCKocqUAkf85N3jYz4vF4hxSaRVEi8zQ0JFNPdrFoLAJeg4hgCB1eNaqSDC5mVKLO Izg3AW+e/9S7dRfPGLmq6Ye1gHD2KGHKK0t/UlnmasUHOelkIRjb34YvA3DyMtaAZkK2rwfplcX 35xeqf9OvC0Wj+08nWHRUIXNv0KcC++lQ1cdFl9TM1WujFQAXJg288F4+3UyVrJ0cEE3Rf+51xg ad5Lw8fFtVmLrkEOeyf5LUxCk+wmQm64XFQc/bz3HrOPCf9+n1m/1+iKuxXBLiMeMpwyuAi53wP jGeNqLPwAbDmSJgnC7Q== 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-04-02_02,2026-04-02_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 adultscore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 impostorscore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604020129 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 Acked-by: Andy Shevchenko --- drivers/base/base.h | 1 + drivers/base/init.c | 1 + drivers/base/swnode.c | 6 ++---- 3 files changed, 4 insertions(+), 4 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 26cbe1c2a2e043a2315764085207561069c23ccd..a80575bf598b509eb1469cae8a0= 9c601726ce0c8 100644 --- a/drivers/base/swnode.c +++ b/drivers/base/swnode.c @@ -1127,11 +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; + pr_err("failed to register software nodes\n"); } -postcore_initcall(software_node_init); --=20 2.47.3