From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (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 4A02832B130 for ; Thu, 30 Jul 2026 08:11:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785399094; cv=none; b=Z+4qhchNzoBcstxtoAFeRhDy772jOHbvzbyFfNhepxXZFuU8NN3ebx4W1fM9lMSsmvgAQd9mHQjgnfCw3q50nkJEALztszjC/jvY12UMR3+ud2QBHuiilebpzhb40D2dDYqRRy5K2VwNGA9BwFvw8a6hHvdeUP18S1aYz2ETYlA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785399094; c=relaxed/simple; bh=8IeVKXjiZlsPMM2Svsmi+bOLvnJJaWMHZN8v0ixGdM0=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=lHo7E899HnBEhCrU8qyY0gYg+ogCQr4Azhb+c+Hl96aJa2YUie5eWE4BS9XhUXFXz0Glt/JpH4rrbRg14Yn8KOZd98oJokb7rid9kWLnDsQlY5WNGI90YGImhssTsw7SepPSF4mRUhBk4QWM6xT2CcgG8OujCnmBDfxjPFjHYVU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BsYVOZ/6; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="BsYVOZ/6" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 31A401F000E9; Thu, 30 Jul 2026 08:11:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1785399092; bh=gN9j8IWdr/SYE/d3Avtp8AdFxeIwpiKz5SDihtLLAM0=; h=Date:Subject:To:Cc:References:From:In-Reply-To; b=BsYVOZ/67qQbI6QKDC+hPmUtZcXQuauzsBmkdDFYlqLb7vCKYOVxrZuTUgLuiabJK PKPTCkfe3h7I2qe40fki/Ag2Wwh8RBx5pq+WNJ8QhHkkJ4CNQCSaM3jg/Mx7EzSIcX pFCSzhVlZQPyFO/Mg+GacXkKyIiwCROinNKtS841uqoCiNCl36hPKrXse65hy6oicj p+fqu/8cBSjdyUWnohOLamtEJu4WOdh4Dg3/4ueWoU/Jo/yQFpiEBdU9olgtSshego 5DtPfRC9F3i2qKOhJrv3U8BLZSNYzqV3jUu108ODWchElZa+bM6ret8EiTOeh3eZLO 4MPiN/rgHHmyA== Message-ID: <0e5628ae-886a-4a8e-8a35-6402737ad65a@kernel.org> Date: Thu, 30 Jul 2026 10:11:29 +0200 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] soc: fsl: qe: properly scan GPIO nodes at startup To: Herve Codina Cc: linuxppc-dev@lists.ozlabs.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Bartosz Golaszewski , Paul Louvel References: <04dc047f8958a78a920f0a88ca3bd8bf70c56187.1785333986.git.chleroy@kernel.org> <20260729172156.4371a8bc@bootlin.com> Content-Language: fr-FR From: "Christophe Leroy (CS GROUP)" In-Reply-To: <20260729172156.4371a8bc@bootlin.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi Hervé, Le 29/07/2026 à 17:21, Herve Codina a écrit : > Hi Christophe, > > On Wed, 29 Jul 2026 16:10:36 +0200 > "Christophe Leroy (CS GROUP)" wrote: > >> Before commit 156460811def ("soc: fsl: qe: Change GPIO driver to a >> proper platform driver") qe_add_gpiochips() was walking the device >> tree to find all nodes with compatible "fsl,mpc8323-qe-pario-bank". >> >> After that commit the discovery is handled by the platform core, >> therefore it is necessary to call of_platform_default_populate() on >> the par_io node. >> >> Fixes: 156460811def ("soc: fsl: qe: Change GPIO driver to a proper platform driver") >> Signed-off-by: Christophe Leroy (CS GROUP) >> --- >> drivers/soc/fsl/qe/qe_io.c | 15 +++++++++++++++ >> 1 file changed, 15 insertions(+) >> >> diff --git a/drivers/soc/fsl/qe/qe_io.c b/drivers/soc/fsl/qe/qe_io.c >> index a5e2d0e5ab51..02ca556c8db0 100644 >> --- a/drivers/soc/fsl/qe/qe_io.c >> +++ b/drivers/soc/fsl/qe/qe_io.c >> @@ -15,6 +15,7 @@ >> #include >> #include >> #include >> +#include >> >> #include >> #include >> @@ -184,3 +185,17 @@ int par_io_of_config(struct device_node *np) >> return 0; >> } >> EXPORT_SYMBOL(par_io_of_config); >> + >> +static int __init par_io_populate(void) >> +{ >> + struct device_node *np = of_find_node_by_name(NULL, "par_io"); >> + >> + if (!np) >> + return 0; >> + >> + of_platform_default_populate(np, NULL, NULL); >> + of_node_put(np); >> + >> + return 0; >> +} >> +arch_initcall(par_io_populate); > > > The par_io node is a sub-node of the soc@xxx node. > The soc@xxx node is simple-bus compatible. This child node should be > populated. > > Why do we need this additional of_platform_default_populate? > > Also par_io node has a compatible. Maybe the related driver should call > of_platform_populate() to populate children of par_io if needed. If this > driver is missing, maybe it should be created. > > Do I miss something? As discussed together off-line, at the time being the par_io driver is not a platform driver. par_io_init() is called from setup_arch() by some board setups. In order to fix the regression, I keep it minimal with an arch_initcall() function which is equivalent to what we had before changing this driver to a platform driver. It will also ease applying the fix to stable without too much churn. It will still be possible to rework par_io driver in a follow-up patch and change it to a propoer platform driver. Christophe