[{"id":3674221,"web_url":"http://patchwork.ozlabs.org/comment/3674221/","msgid":"<adUVoiVaOkVq1C4w@ashevche-desk.local>","list_archive_url":null,"date":"2026-04-07T14:33:06","subject":"Re: [PATCH v4 2/2] gpio: swnode: defer probe on references to\n unregistered software nodes","submitter":{"id":8583,"url":"http://patchwork.ozlabs.org/api/people/8583/","name":"Andy Shevchenko","email":"andriy.shevchenko@linux.intel.com"},"content":"On Tue, Apr 07, 2026 at 03:27:58PM +0200, Bartosz Golaszewski wrote:\n> fwnode_property_get_reference_args() now returns -ENOTCONN when called\n> on a software node referencing another software node which has not yet\n> been registered as a firmware node. It makes sense to defer probe in this\n> situation as the node will most likely be registered later on and we'll\n> be able to resolve the reference eventually. Change the behavior of\n> swnode_find_gpio() to return -EPROBE_DEFER if the software node reference\n> resolution returns -ENOTCONN.\n\nReviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>\n\n...\n\n>  \t\tret = swnode_gpio_get_reference(fwnode, propname, idx, &args);\n\n>  \t\tif (ret == 0)\n>  \t\t\tbreak;\n\nMaybe check for an error first? Dunno. Up to you.\n\n\t\tif (ret == -ENOTCONN)\n\t\t\t...\n\t\tif (ret)\n\t\t\tcontinue;\n\n\t\t/* The reference is found, bail out */\n\t\tbreak;\n\n(Also may be done in a separate change no need to mix these things\n in the proposed change.)\n\n> +\t\tif (ret == -ENOTCONN)\n> +\t\t\t/*\n> +\t\t\t * -ENOTCONN for a software node reference lookup means\n> +\t\t\t *  that a remote struct software_node exists but has\n> +\t\t\t *  not yet been registered as a firmware node. Defer\n> +\t\t\t *  until this happens.\n> +\t\t\t */\n> +\t\t\treturn ERR_PTR(-EPROBE_DEFER);","headers":{"Return-Path":"\n <linux-gpio+bounces-34818-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-gpio@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=intel.com header.i=@intel.com header.a=rsa-sha256\n header.s=Intel header.b=aUR/aohk;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-gpio+bounces-34818-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com\n header.b=\"aUR/aohk\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=192.198.163.11","smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=linux.intel.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=linux.intel.com"],"Received":["from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fqpny1JHrz1xtJ\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 08 Apr 2026 00:42:46 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 25954302F3AD\n\tfor <incoming@patchwork.ozlabs.org>; Tue,  7 Apr 2026 14:33:48 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id A60CD2C08C4;\n\tTue,  7 Apr 2026 14:33:15 +0000 (UTC)","from mgamail.intel.com (mgamail.intel.com [192.198.163.11])\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 A151928C037;\n\tTue,  7 Apr 2026 14:33:13 +0000 (UTC)","from fmviesa009.fm.intel.com ([10.60.135.149])\n  by fmvoesa105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 07 Apr 2026 07:33:13 -0700","from pgcooper-mobl3.ger.corp.intel.com (HELO localhost)\n ([10.245.244.182])\n  by fmviesa009-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 07 Apr 2026 07:33:08 -0700"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1775572395; cv=none;\n b=ZhVjyct5cQjhf2aXvoy5BBoqcO7MJyeaEY4yVHfhkfFt+nDYnov51hPL181QEjjsVpznx9qDmhlmzVW/DWNzKl9Fr+EQ4JAr97/JvfyCPiE/tTbqPWYYhBlUnSDqVO4jcAAxNMhyz8hBWtwDpJFyqxQu8VF8ssjw9r/S4HPjiTk=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1775572395; c=relaxed/simple;\n\tbh=RTf7fSdKbOlG+Uqgt+xipV/ZZjbunaObxcyZXfjW2Kg=;\n\th=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:\n\t Content-Type:Content-Disposition:In-Reply-To;\n b=fnAi40wbm29ugX7rGjpEVjoL+S4Cn+vF8T84RNWGoLAh4/PeHunEKPqeE7YTk/uRqW/mfhkeLsPqEUD6DnhfLLDV+mUWyzYOUGL7Z8m3aeVxsJ0n0zqlvdw7/Hr+rNdyhCJ90tvX/edxDNHd4mF3KUQy1+Y50B5zatiDkfbCv6A=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=linux.intel.com;\n spf=pass smtp.mailfrom=linux.intel.com;\n dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com\n header.b=aUR/aohk; arc=none smtp.client-ip=192.198.163.11","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple;\n  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n  t=1775572394; x=1807108394;\n  h=date:from:to:cc:subject:message-id:references:\n   mime-version:in-reply-to;\n  bh=RTf7fSdKbOlG+Uqgt+xipV/ZZjbunaObxcyZXfjW2Kg=;\n  b=aUR/aohk6NZQcF7bZ0/6pFRIPm7vo2whlftkFLVybwznj3bQqUMB0LJr\n   hyt8beAtEZYRhHSamubLM6tcJoneepfLHxVl6N09aR7HhzlVLn6D9hsfV\n   xalaQQwwxjhV5YfNG9yliyVryObOtJCpz6/h7Z7rCjgyY2nzlPOogw5Kf\n   QvzpVB6pgvvsXoxJ2n53CCcpqfWl68IgHYrjCTSYkma0Dws8nsAneDGFd\n   Og4LChrIrE093L2mZu/nksx4zo03cyW1+xy34njkNf0iRbiDBv2c25v8b\n   jImzWR5qV9ADuYLUdSzONDJHjTo4uns77YdlCVwzQP9UTT8fko5f45Cid\n   A==;","X-CSE-ConnectionGUID":["amwbAnGVTNKwrTADkn2X9g==","zqijq4DTTA64NzhYME3UXQ=="],"X-CSE-MsgGUID":["movWTWikTWyxTslMtU5CqQ==","3r0YnN6ORSObwk2CRP3d5w=="],"X-IronPort-AV":["E=McAfee;i=\"6800,10657,11752\"; a=\"87163644\"","E=Sophos;i=\"6.23,165,1770624000\";\n   d=\"scan'208\";a=\"87163644\"","E=Sophos;i=\"6.23,165,1770624000\";\n   d=\"scan'208\";a=\"221609845\""],"X-ExtLoop1":"1","Date":"Tue, 7 Apr 2026 17:33:06 +0300","From":"Andy Shevchenko <andriy.shevchenko@linux.intel.com>","To":"Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>","Cc":"Daniel Scally <djrscally@gmail.com>,\n Heikki Krogerus <heikki.krogerus@linux.intel.com>,\n Sakari Ailus <sakari.ailus@linux.intel.com>,\n Greg Kroah-Hartman <gregkh@linuxfoundation.org>,\n \"Rafael J. Wysocki\" <rafael@kernel.org>, Danilo Krummrich <dakr@kernel.org>,\n Mika Westerberg <mika.westerberg@linux.intel.com>,\n Andy Shevchenko <andy@kernel.org>, Linus Walleij <linusw@kernel.org>,\n Hans de Goede <hansg@kernel.org>,\n Ilpo =?iso-8859-1?q?J=E4rvinen?= <ilpo.jarvinen@linux.intel.com>,\n Dmitry Torokhov <dmitry.torokhov@gmail.com>, Len Brown <lenb@kernel.org>,\n linux-acpi@vger.kernel.org, driver-core@lists.linux.dev,\n linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org,\n platform-driver-x86@vger.kernel.org, brgl@kernel.org","Subject":"Re: [PATCH v4 2/2] gpio: swnode: defer probe on references to\n unregistered software nodes","Message-ID":"<adUVoiVaOkVq1C4w@ashevche-desk.local>","References":"<20260407-swnode-unreg-retcode-v4-0-1b2f0725eb9c@oss.qualcomm.com>\n <20260407-swnode-unreg-retcode-v4-2-1b2f0725eb9c@oss.qualcomm.com>","Precedence":"bulk","X-Mailing-List":"linux-gpio@vger.kernel.org","List-Id":"<linux-gpio.vger.kernel.org>","List-Subscribe":"<mailto:linux-gpio+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-gpio+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"\n <20260407-swnode-unreg-retcode-v4-2-1b2f0725eb9c@oss.qualcomm.com>","Organization":"Intel Finland Oy - BIC 0357606-4 - c/o Alberga Business Park, 6\n krs, Bertel Jungin Aukio 5, 02600 Espoo"}},{"id":3674223,"web_url":"http://patchwork.ozlabs.org/comment/3674223/","msgid":"<CAMRc=MfN_zGJR4GV4PmGqzuUcuAuwer9+a7DG7RQYfjRZsiLtA@mail.gmail.com>","list_archive_url":null,"date":"2026-04-07T14:39:02","subject":"Re: [PATCH v4 2/2] gpio: swnode: defer probe on references to\n unregistered software nodes","submitter":{"id":92191,"url":"http://patchwork.ozlabs.org/api/people/92191/","name":"Bartosz Golaszewski","email":"brgl@kernel.org"},"content":"On Tue, Apr 7, 2026 at 4:33 PM Andy Shevchenko\n<andriy.shevchenko@linux.intel.com> wrote:\n>\n> On Tue, Apr 07, 2026 at 03:27:58PM +0200, Bartosz Golaszewski wrote:\n> > fwnode_property_get_reference_args() now returns -ENOTCONN when called\n> > on a software node referencing another software node which has not yet\n> > been registered as a firmware node. It makes sense to defer probe in this\n> > situation as the node will most likely be registered later on and we'll\n> > be able to resolve the reference eventually. Change the behavior of\n> > swnode_find_gpio() to return -EPROBE_DEFER if the software node reference\n> > resolution returns -ENOTCONN.\n>\n> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>\n>\n> ...\n>\n> >               ret = swnode_gpio_get_reference(fwnode, propname, idx, &args);\n>\n> >               if (ret == 0)\n> >                       break;\n>\n> Maybe check for an error first? Dunno. Up to you.\n>\n>                 if (ret == -ENOTCONN)\n>                         ...\n>                 if (ret)\n>                         continue;\n>\n>                 /* The reference is found, bail out */\n>                 break;\n>\n> (Also may be done in a separate change no need to mix these things\n>  in the proposed change.)\n>\n> > +             if (ret == -ENOTCONN)\n> > +                     /*\n> > +                      * -ENOTCONN for a software node reference lookup means\n> > +                      *  that a remote struct software_node exists but has\n> > +                      *  not yet been registered as a firmware node. Defer\n> > +                      *  until this happens.\n> > +                      */\n> > +                     return ERR_PTR(-EPROBE_DEFER);\n>\n> --\n> With Best Regards,\n> Andy Shevchenko\n>\n>\n\nYes, I mentioned it in one of the earlier revisions. I'll do it\nseparately and only continue the loop on -ENOENT.\n\nBart","headers":{"Return-Path":"\n <linux-gpio+bounces-34819-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-gpio@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=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=RSgIASSX;\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-gpio+bounces-34819-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=\"RSgIASSX\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201"],"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 4fqpr71TB6z1xtJ\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 08 Apr 2026 00:44:39 +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 AF00030372D5\n\tfor <incoming@patchwork.ozlabs.org>; Tue,  7 Apr 2026 14:39:18 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 7388D258EF9;\n\tTue,  7 Apr 2026 14:39:16 +0000 (UTC)","from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org\n [10.30.226.201])\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 3667A23EA83\n\tfor <linux-gpio@vger.kernel.org>; Tue,  7 Apr 2026 14:39:16 +0000 (UTC)","by smtp.kernel.org (Postfix) with ESMTPSA id 19752C2BCC6\n\tfor <linux-gpio@vger.kernel.org>; Tue,  7 Apr 2026 14:39:16 +0000 (UTC)","by mail-lf1-f42.google.com with SMTP id\n 2adb3069b0e04-5a2c77c62d7so4397745e87.0\n        for <linux-gpio@vger.kernel.org>;\n Tue, 07 Apr 2026 07:39:15 -0700 (PDT)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1775572756; cv=none;\n b=YL09r5eKAbZCsNlyVXrTLI8iFnF4ZzrkNgNdRAdb4OLXD+sFB5frnCLxPrrXagDt3Gb66tV0Sz4NEm+DClzPYuJYMq4WLch3WqSSGsQ2y8jNjU1KJntijiwPj+IEGiI5s1wNgtTQ99fvGxgCyrc3hT+lYANtWjGI3CgUwwqejaU=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1775572756; c=relaxed/simple;\n\tbh=kZTBU/MN8qb0KFdasZ8l2Oiew+XgjVd6ru1SKKqnHXI=;\n\th=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject:\n\t To:Cc:Content-Type;\n b=GJPXm9ED+jIQSdQ+/l76CE1Mxlr+JW9XuunDdmDGSKqBBy5D/Hpc7fhH63W3LDLN8CXWRNUI3wVfYqndwRwJmL36+IT1Fwc4Hc5gGE/B8oP64sbUCiuWccZpxktjLa8SaWTqR4r9MN2ZQWmh/GPbzvpCz4nS0arvzk6DnULAX3k=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=RSgIASSX; arc=none smtp.client-ip=10.30.226.201","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;\n\ts=k20201202; t=1775572756;\n\tbh=kZTBU/MN8qb0KFdasZ8l2Oiew+XgjVd6ru1SKKqnHXI=;\n\th=References:In-Reply-To:From:Date:Subject:To:Cc:From;\n\tb=RSgIASSXXLs9JQRGDJpuAA0zEqXWtVbXxd+5GfRlYZUXtuANc3qiY0JVrLrfxpQFi\n\t 9LCFES4DAkHgOXLDUXO2+/tX7iss5yPu95YweVYjjSm1RQ3LnV2G2ioULYu7Hzp0zp\n\t rCHcsJtYkZVORArVpiotk8spwWmKIIE9V04ExRTmz5TJq6MEZcgrARWnccssPYAys/\n\t cLksjDvgE/tw02TQgAFY0YsXnRh24WswJbUBoytpwxjfQ5+lxgRqYeCxPcH3BhnO6R\n\t iHpj8zPLIkxtrxSBiJGUAaU/M7jnuambwp+7FBD/PWy03cykePVrOKjVI3zGUTNMwa\n\t yt9fOkhhWmFGA==","X-Forwarded-Encrypted":"i=1;\n AJvYcCW2o1pT5cL9xMNNNJedRVo02VSZoadORopeITstkBWdoIW2c3cOrwJkUH8muDnRiBlPof2MaprRrqeS@vger.kernel.org","X-Gm-Message-State":"AOJu0YwIBI7BA5i8DhYBnM7j9xyWFF4pDD3Lwg2NW1DJuNNjqbZP3o32\n\tnSyJpnFr0VK/J4VQQcY+JMJjdQsdrnlSGt4080UHq71rNkp6ITAxLjioeYXmJNfDIhGnBMxhBfZ\n\tclvNieY5v0YfoOM9StNuDL02ObrQGhYD/ivYohUg1+Q==","X-Received":"by 2002:ac2:4c32:0:b0:5a3:7528:5d3 with SMTP id\n 2adb3069b0e04-5a375280727mr3461360e87.43.1775572754730; Tue, 07 Apr 2026\n 07:39:14 -0700 (PDT)","Precedence":"bulk","X-Mailing-List":"linux-gpio@vger.kernel.org","List-Id":"<linux-gpio.vger.kernel.org>","List-Subscribe":"<mailto:linux-gpio+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-gpio+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","References":"<20260407-swnode-unreg-retcode-v4-0-1b2f0725eb9c@oss.qualcomm.com>\n <20260407-swnode-unreg-retcode-v4-2-1b2f0725eb9c@oss.qualcomm.com>\n <adUVoiVaOkVq1C4w@ashevche-desk.local>","In-Reply-To":"<adUVoiVaOkVq1C4w@ashevche-desk.local>","From":"Bartosz Golaszewski <brgl@kernel.org>","Date":"Tue, 7 Apr 2026 16:39:02 +0200","X-Gmail-Original-Message-ID":"\n <CAMRc=MfN_zGJR4GV4PmGqzuUcuAuwer9+a7DG7RQYfjRZsiLtA@mail.gmail.com>","X-Gm-Features":"AQROBzC6qoweNY6-nKE7ztgtcZvdgeV0XH2hyQI7m1-emdKmiVNMfmAeZBuPWMo","Message-ID":"\n <CAMRc=MfN_zGJR4GV4PmGqzuUcuAuwer9+a7DG7RQYfjRZsiLtA@mail.gmail.com>","Subject":"Re: [PATCH v4 2/2] gpio: swnode: defer probe on references to\n unregistered software nodes","To":"Andy Shevchenko <andriy.shevchenko@linux.intel.com>","Cc":"Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>,\n  Daniel Scally <djrscally@gmail.com>,\n Heikki Krogerus <heikki.krogerus@linux.intel.com>,\n  Sakari Ailus <sakari.ailus@linux.intel.com>,\n  Greg Kroah-Hartman <gregkh@linuxfoundation.org>,\n \"Rafael J. Wysocki\" <rafael@kernel.org>,  Danilo Krummrich <dakr@kernel.org>,\n Mika Westerberg <mika.westerberg@linux.intel.com>,\n  Andy Shevchenko <andy@kernel.org>, Linus Walleij <linusw@kernel.org>,\n Hans de Goede <hansg@kernel.org>,\n =?utf-8?q?Ilpo_J=C3=A4rvinen?= <ilpo.jarvinen@linux.intel.com>,\n  Dmitry Torokhov <dmitry.torokhov@gmail.com>, Len Brown <lenb@kernel.org>,\n linux-acpi@vger.kernel.org,  driver-core@lists.linux.dev,\n linux-kernel@vger.kernel.org,  linux-gpio@vger.kernel.org,\n platform-driver-x86@vger.kernel.org","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable"}}]