RE: [PATCH v2 2/3] spi: nxp-fspi: propagate default setup failures

Bough Chen <[email protected]> Wed, 29 Jul 2026 08:56:29 +0000
Newsgroups org.kernel.vger.linux-spi,dev.linux.lists.imx,org.kernel.vger.linux-kernel
Message-ID <DU2PR04MB8677F89F80EDBC0704EC0F5190CA2@DU2PR04MB8677.eurprd04.prod.outlook.com>
> -----Original Message-----
> From: Jiawen Liu <[email protected]>
> Sent: 2026年7月28日 16:05
> To: Han Xu <[email protected]>; Bough Chen <[email protected]>; Yogesh
> Gaur <[email protected]>; Mark Brown <[email protected]>
> Cc: [email protected]; [email protected];
> [email protected]; Jiawen Liu <[email protected]>
> Subject: [PATCH v2 2/3] spi: nxp-fspi: propagate default setup failures
> 
> nxp_fspi_default_setup() may fail while setting the controller clock rate or
> while preparing and enabling the clock. The probe and runtime-resume paths
> currently ignore that return value and continue as if the controller was
> usable.
> 
> Return the setup error from probe and runtime resume so the driver does
> not leave the PM core believing the controller is active after setup failed.

Reviewed-by: Haibo Chen <[email protected]>

Regards
Haibo Chen
> 
> Signed-off-by: Jiawen Liu <[email protected]>
> ---
>  drivers/spi/spi-nxp-fspi.c | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/spi/spi-nxp-fspi.c b/drivers/spi/spi-nxp-fspi.c index
> 6be78712b534..3f1c3ed748eb 100644
> --- a/drivers/spi/spi-nxp-fspi.c
> +++ b/drivers/spi/spi-nxp-fspi.c
> @@ -1361,7 +1361,9 @@ static int nxp_fspi_probe(struct platform_device
> *pdev)
>  	if (reg)
>  		fspi_writel(f, reg, f->iobase + FSPI_INTR);
> 
> -	nxp_fspi_default_setup(f);
> +	ret = nxp_fspi_default_setup(f);
> +	if (ret)
> +		return dev_err_probe(dev, ret, "Failed to setup controller");
> 
>  	init_completion(&f->c);
>  	ret = devm_request_irq(dev, irq,
> @@ -1408,7 +1410,10 @@ static int nxp_fspi_runtime_resume(struct device
> *dev)
>  		return ret;
> 
>  	if (f->flags & FSPI_NEED_INIT) {
> -		nxp_fspi_default_setup(f);
> +		ret = nxp_fspi_default_setup(f);
> +		if (ret)
> +			return ret;
> +
>  		ret = pinctrl_pm_select_default_state(dev);
>  		if (ret)
>  			dev_err(dev, "select flexspi default pinctrl failed!\n");
> --
> 2.34.1