From nobody Tue Jun 16 20:34:58 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 473123BE162; Wed, 29 Apr 2026 09:14:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; cv=none; b=DTcwar4fyug43y7M5Kk10Tp7GF+N2Na/+siDz7CinjszCHGeseZS22zDFBR8RZqtjRP92ffegxODSNJ21DjNxmJVEOHGoc89lZ4vciYLmqBN1CRlHNRImSYu6/Vy+Nla8UHuaQEMiF2KDiGmLV9dSxBKmQZtfvQIsppalKjw9do= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; c=relaxed/simple; bh=dgIC/M2uDGgZ6C94zEb11iAxtgokUzUiRJjjHpLAgmQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hrREm0AdHlzDZ0Z6zy7np4qSmz+MRG6HXRbgqFOf+VMiwyfdV7uuMwygw8F0FpNHdcl5976sCdDDr3rkELjBhX/ajmV1XNa1rQMaCxpOpdBln2w/AEr0Lf0Y0Sb40dT+G7kSH1Ba+UqrU5IzRzWC4pjF8ZI/nEBAy7FkGm+Cb9s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=MFwMEYjz; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="MFwMEYjz" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E4DC6C4AF0B; Wed, 29 Apr 2026 09:14:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777454043; bh=dgIC/M2uDGgZ6C94zEb11iAxtgokUzUiRJjjHpLAgmQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MFwMEYjz2N0E8ROL1g3r9XA46gKoNXnb6ak2t2+XDX4YI7WRwY8OhZho6f2H+QMsX ZRNFj/3routSFa8xitANEX347fkRZhTUK9CFl274MX3dimA6e8Bb055S+pwMYEjLGd 3UDr3nWbeYh5Zn7AUHksrvRlzZLnC+Il3BmaJp/KUphBfs1cq71qsXi5MKmYur00Iu 118cTU0g1MoeMYrO1EvEXAyeTkPKDn09GmGGiHaAi/p76d0xtQyaOqVfEzs1NfkomE R8xLUBBmAoPpLpLqDYTXGMR1xuYaLKif47vQ6NbNOKbpbxI6jdOcJb0w8gHDzQAoda TYa5Tl04TGhgQ== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wI0zY-00000000h2J-1vY3; Wed, 29 Apr 2026 11:14:00 +0200 From: Johan Hovold To: Mark Brown Cc: Radu Pirea , Ryan Wanner , William Zhang , Kursad Oney , Jonas Gorski , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 01/19] spi: at91-usart: switch to managed controller allocation Date: Wed, 29 Apr 2026 11:13:15 +0200 Message-ID: <20260429091333.165363-2-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260429091333.165363-1-johan@kernel.org> References: <20260429091333.165363-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Switch to device managed controller allocation to simplify error handling and to avoid having to take another reference during deregistration. Signed-off-by: Johan Hovold --- drivers/spi/spi-at91-usart.c | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/drivers/spi/spi-at91-usart.c b/drivers/spi/spi-at91-usart.c index 79edc1cd13c0..32fee5a7ffdf 100644 --- a/drivers/spi/spi-at91-usart.c +++ b/drivers/spi/spi-at91-usart.c @@ -496,14 +496,13 @@ static int at91_usart_spi_probe(struct platform_devic= e *pdev) if (IS_ERR(clk)) return PTR_ERR(clk); =20 - ret =3D -ENOMEM; - controller =3D spi_alloc_host(&pdev->dev, sizeof(*aus)); + controller =3D devm_spi_alloc_host(&pdev->dev, sizeof(*aus)); if (!controller) - goto at91_usart_spi_probe_fail; + return -ENOMEM; =20 ret =3D at91_usart_gpio_setup(pdev); if (ret) - goto at91_usart_spi_probe_fail; + return ret; =20 controller->mode_bits =3D SPI_CPOL | SPI_CPHA | SPI_LOOP | SPI_CS_HIGH; controller->dev.of_node =3D pdev->dev.parent->of_node; @@ -525,10 +524,8 @@ static int at91_usart_spi_probe(struct platform_device= *pdev) =20 aus->dev =3D &pdev->dev; aus->regs =3D devm_ioremap_resource(&pdev->dev, regs); - if (IS_ERR(aus->regs)) { - ret =3D PTR_ERR(aus->regs); - goto at91_usart_spi_probe_fail; - } + if (IS_ERR(aus->regs)) + return PTR_ERR(aus->regs); =20 aus->irq =3D irq; aus->clk =3D clk; @@ -536,11 +533,11 @@ static int at91_usart_spi_probe(struct platform_devic= e *pdev) ret =3D devm_request_irq(&pdev->dev, irq, at91_usart_spi_interrupt, 0, dev_name(&pdev->dev), controller); if (ret) - goto at91_usart_spi_probe_fail; + return ret; =20 ret =3D clk_prepare_enable(clk); if (ret) - goto at91_usart_spi_probe_fail; + return ret; =20 aus->spi_clk =3D clk_get_rate(clk); at91_usart_spi_init(aus); @@ -571,8 +568,7 @@ static int at91_usart_spi_probe(struct platform_device = *pdev) at91_usart_spi_release_dma(controller); at91_usart_fail_dma: clk_disable_unprepare(clk); -at91_usart_spi_probe_fail: - spi_controller_put(controller); + return ret; } =20 @@ -634,14 +630,10 @@ static void at91_usart_spi_remove(struct platform_dev= ice *pdev) struct spi_controller *ctlr =3D platform_get_drvdata(pdev); struct at91_usart_spi *aus =3D spi_controller_get_devdata(ctlr); =20 - spi_controller_get(ctlr); - spi_unregister_controller(ctlr); =20 at91_usart_spi_release_dma(ctlr); clk_disable_unprepare(aus->clk); - - spi_controller_put(ctlr); } =20 static const struct dev_pm_ops at91_usart_spi_pm_ops =3D { --=20 2.53.0 From nobody Tue Jun 16 20:34:58 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 436043BD63B; Wed, 29 Apr 2026 09:14:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; cv=none; b=VGloZQ7G7tKt53jbzboYHM0Cya0rBcHToqXtLMRHI5TpnRDygK7eEeNhiIm06aduQ+qc0W2MWEdz4EFC041Q93zYgMMdaNPNUkVlD+u7KNwX4q468ACGiNU/8E4zUgUyiTANeFKuzhVfRUpA3Gz1sk0WWQTj6oFoGIL/jfteeW0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; c=relaxed/simple; bh=dkoaKrtU8MEPD/3hoa7/0tQPNgxVvbjWmBlSh3CG308=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WYNr1LggXGdwgIRCnRqag1ZRUJLmi8AlpQ8K/dNegWhrBeMO7W80sxU0q1ghQjTPdUdNQFt95go/plbeQgmCXU+wgY3st60xaT6xDb3s+yMaNaprCoGA1DlmvHaYAluamAb8iHyOaTOCv6StXhmdhj0RkOPm3MxigPYzq7WYafc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rwkDUWES; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="rwkDUWES" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D860BC2BCC4; Wed, 29 Apr 2026 09:14:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777454043; bh=dkoaKrtU8MEPD/3hoa7/0tQPNgxVvbjWmBlSh3CG308=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rwkDUWESVm7pC4VG5qm5ezT+U0yWa1NoOg0BfNRLsqyLTK6EMlNqx0FR97/8Khwsf T1kZkMRP32aT2OGYTnp0UwPliJjNorSJdznyq99IXuNZ20X55D5POFw3fjJeZ9nrcI RbJqd0TiQktdyWEmIYxJHbtUg2ngOAxfVQIz3lKM8AlDzFrb0O05nmjJSHnl+0vt7P Bz7FCr63iOqdyGpC2SwcJoDdyOY2LWer97vW7xvsHw39bfveq6gdD6I2uMmy9QyMft yMXaZ/QKQKsOjEphzdbScNoXby9pqbgRIlFA2mDxAArFjQWVSvzTU4IbkHKroY5gWU agGsc2Upjv+iQ== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wI0zY-00000000h2L-1xzC; Wed, 29 Apr 2026 11:14:00 +0200 From: Johan Hovold To: Mark Brown Cc: Radu Pirea , Ryan Wanner , William Zhang , Kursad Oney , Jonas Gorski , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 02/19] spi: atmel: switch to managed controller allocation Date: Wed, 29 Apr 2026 11:13:16 +0200 Message-ID: <20260429091333.165363-3-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260429091333.165363-1-johan@kernel.org> References: <20260429091333.165363-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Switch to device managed controller allocation to simplify error handling and to avoid having to take another reference during deregistration. Signed-off-by: Johan Hovold --- drivers/spi/spi-atmel.c | 34 ++++++++++++---------------------- 1 file changed, 12 insertions(+), 22 deletions(-) diff --git a/drivers/spi/spi-atmel.c b/drivers/spi/spi-atmel.c index 42db85d7ff8e..25aa294631c8 100644 --- a/drivers/spi/spi-atmel.c +++ b/drivers/spi/spi-atmel.c @@ -1528,7 +1528,7 @@ static int atmel_spi_probe(struct platform_device *pd= ev) return PTR_ERR(clk); =20 /* setup spi core then atmel-specific driver state */ - host =3D spi_alloc_host(&pdev->dev, sizeof(*as)); + host =3D devm_spi_alloc_host(&pdev->dev, sizeof(*as)); if (!host) return -ENOMEM; =20 @@ -1555,18 +1555,15 @@ static int atmel_spi_probe(struct platform_device *= pdev) =20 as->pdev =3D pdev; as->regs =3D devm_platform_get_and_ioremap_resource(pdev, 0, ®s); - if (IS_ERR(as->regs)) { - ret =3D PTR_ERR(as->regs); - goto out_unmap_regs; - } + if (IS_ERR(as->regs)) + return PTR_ERR(as->regs); + as->phybase =3D regs->start; as->irq =3D irq; as->clk =3D clk; as->gclk =3D devm_clk_get_optional(&pdev->dev, "spi_gclk"); - if (IS_ERR(as->gclk)) { - ret =3D PTR_ERR(as->gclk); - goto out_unmap_regs; - } + if (IS_ERR(as->gclk)) + return PTR_ERR(as->gclk); =20 init_completion(&as->xfer_completion); =20 @@ -1576,11 +1573,10 @@ static int atmel_spi_probe(struct platform_device *= pdev) as->use_pdc =3D false; if (as->caps.has_dma_support) { ret =3D atmel_spi_configure_dma(host, as); - if (ret =3D=3D 0) { + if (ret =3D=3D 0) as->use_dma =3D true; - } else if (ret =3D=3D -EPROBE_DEFER) { - goto out_unmap_regs; - } + else if (ret =3D=3D -EPROBE_DEFER) + return ret; } else if (as->caps.has_pdc_support) { as->use_pdc =3D true; } @@ -1620,12 +1616,12 @@ static int atmel_spi_probe(struct platform_device *= pdev) 0, dev_name(&pdev->dev), host); } if (ret) - goto out_unmap_regs; + return ret; =20 /* Initialize the hardware */ ret =3D clk_prepare_enable(clk); if (ret) - goto out_free_irq; + return ret; =20 /* * In cases where the peripheral clock is higher,the FLEX_SPI_CSRx.SCBR @@ -1677,9 +1673,7 @@ static int atmel_spi_probe(struct platform_device *pd= ev) clk_disable_unprepare(as->gclk); out_disable_clk: clk_disable_unprepare(clk); -out_free_irq: -out_unmap_regs: - spi_controller_put(host); + return ret; } =20 @@ -1688,8 +1682,6 @@ static void atmel_spi_remove(struct platform_device *= pdev) struct spi_controller *host =3D platform_get_drvdata(pdev); struct atmel_spi *as =3D spi_controller_get_devdata(host); =20 - spi_controller_get(host); - pm_runtime_get_sync(&pdev->dev); =20 spi_unregister_controller(host); @@ -1720,8 +1712,6 @@ static void atmel_spi_remove(struct platform_device *= pdev) =20 pm_runtime_put_noidle(&pdev->dev); pm_runtime_disable(&pdev->dev); - - spi_controller_put(host); } =20 static int atmel_spi_runtime_suspend(struct device *dev) --=20 2.53.0 From nobody Tue Jun 16 20:34:58 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 70FF93BED19; Wed, 29 Apr 2026 09:14:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; cv=none; b=j4qs7D45O818ZkS2hq/k3Dx2JwZPH45GjXrQ6oaicoZpvL7tMt+pXVcLU2azpUpe/sKpTmVDQz2BtQmW+5rZyFs6ILcfo4tGue49ZNr8fU6dyc0aTnSdX7c7ZSfCxi3PRexRySXJZmpuCtalWglWa6FLqlYS9xiSt2/fyp/O5Vs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; c=relaxed/simple; bh=z3AJQ1t+M6wkvyV2cCLlYXK4JGyFKHkAuQFIZFteRHA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LIDTQzjZz01TyMNzUHdDecrIvXYklb6bE82s3YjeafCg/yKS8Y4f6hljhhXtrYz94LVvnKT/7wv7Amf6z1aYdTNoP8apJb5+ITRrC81SCiNrgwN7RBg/EevojK5o5QdGdS2yED0nvgcqbGWEUPk5e5CXhu5m9V8rwufXhqgHSOA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=r256sxZ5; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="r256sxZ5" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0686CC4AF0C; Wed, 29 Apr 2026 09:14:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777454043; bh=z3AJQ1t+M6wkvyV2cCLlYXK4JGyFKHkAuQFIZFteRHA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=r256sxZ5+v0ncC5NmztwRFQbq2sv7FEIACl/Qxf6SZxJh/ZngWCFRwflnGu2uLLQZ VRRXPjMdpXRujSHwPYV2m/lTugZpQtA0fI8JstQIrls2Mc0np1zG+m3UZV7YeOTc8C VvJcZ7JvRcqL/vk3Bya+ls6Fb1fxsSWzKar4aqwxFSEbeJ1gPNC8B13ViUaD/bmOCK cJAxhoLGcgeEDzph7paMSvwa7o5U4GFUIdhRDV0N+ZZZuDv9Z4QCq8UyWltYYcwKEQ qYBwT+r8pFrkJWhv406jVPl5nHL+sjRY9ByIhfXouu9ki7/iTVdLlMK63eyxP+p/Rc +6P+U4wgQzcGg== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wI0zY-00000000h2N-20tE; Wed, 29 Apr 2026 11:14:00 +0200 From: Johan Hovold To: Mark Brown Cc: Radu Pirea , Ryan Wanner , William Zhang , Kursad Oney , Jonas Gorski , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 03/19] spi: bcm63xx: switch to managed controller allocation Date: Wed, 29 Apr 2026 11:13:17 +0200 Message-ID: <20260429091333.165363-4-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260429091333.165363-1-johan@kernel.org> References: <20260429091333.165363-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Switch to device managed controller allocation to simplify error handling and to avoid having to take another reference during deregistration. Signed-off-by: Johan Hovold --- drivers/spi/spi-bcm63xx.c | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/drivers/spi/spi-bcm63xx.c b/drivers/spi/spi-bcm63xx.c index 40cd7efc4b54..f8cfe535b2a3 100644 --- a/drivers/spi/spi-bcm63xx.c +++ b/drivers/spi/spi-bcm63xx.c @@ -541,11 +541,9 @@ static int bcm63xx_spi_probe(struct platform_device *p= dev) if (IS_ERR(reset)) return PTR_ERR(reset); =20 - host =3D spi_alloc_host(dev, sizeof(*bs)); - if (!host) { - dev_err(dev, "out of memory\n"); + host =3D devm_spi_alloc_host(dev, sizeof(*bs)); + if (!host) return -ENOMEM; - } =20 bs =3D spi_controller_get_devdata(host); init_completion(&bs->done); @@ -554,10 +552,8 @@ static int bcm63xx_spi_probe(struct platform_device *p= dev) bs->pdev =3D pdev; =20 bs->regs =3D devm_platform_get_and_ioremap_resource(pdev, 0, &r); - if (IS_ERR(bs->regs)) { - ret =3D PTR_ERR(bs->regs); - goto out_err; - } + if (IS_ERR(bs->regs)) + return PTR_ERR(bs->regs); =20 bs->irq =3D irq; bs->clk =3D clk; @@ -568,7 +564,7 @@ static int bcm63xx_spi_probe(struct platform_device *pd= ev) pdev->name, host); if (ret) { dev_err(dev, "unable to request irq\n"); - goto out_err; + return ret; } =20 host->bus_num =3D bus_num; @@ -587,7 +583,7 @@ static int bcm63xx_spi_probe(struct platform_device *pd= ev) /* Initialize hardware */ ret =3D clk_prepare_enable(bs->clk); if (ret) - goto out_err; + return ret; =20 ret =3D reset_control_reset(reset); if (ret) { @@ -615,8 +611,7 @@ static int bcm63xx_spi_probe(struct platform_device *pd= ev) =20 out_clk_disable: clk_disable_unprepare(clk); -out_err: - spi_controller_put(host); + return ret; } =20 @@ -625,8 +620,6 @@ static void bcm63xx_spi_remove(struct platform_device *= pdev) struct spi_controller *host =3D platform_get_drvdata(pdev); struct bcm63xx_spi *bs =3D spi_controller_get_devdata(host); =20 - spi_controller_get(host); - spi_unregister_controller(host); =20 /* reset spi block */ @@ -634,8 +627,6 @@ static void bcm63xx_spi_remove(struct platform_device *= pdev) =20 /* HW shutdown */ clk_disable_unprepare(bs->clk); - - spi_controller_put(host); } =20 static int bcm63xx_spi_suspend(struct device *dev) --=20 2.53.0 From nobody Tue Jun 16 20:34:58 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 1FB323A7839; Wed, 29 Apr 2026 09:14:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; cv=none; b=IP0VY9aaFX1oGs7eDQz6Fl+eQ+9bORQGUjGOehieI4f6xige7MhNCRDbVJDOhWjJ4e/uqdNJaJG1nsmeqNA0lSOQI0zz6cYMrkd7nbwCrsw3A1vtXZY7xSQosAUXdob7sS4bTDX0EMDSr9Fs/2Cus52QI3u550wNomhMX/++28M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; c=relaxed/simple; bh=JQdycHkp59mSnuurDG+lHrUUoUYhN9XZFgJQoZWMfic=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gKyl3nvPx/Q8dUoINWs6D6Sd+54P6A7poOGQmqzoP4UDTvQpvkOS9zkCv9dsTWRAITMh6To0QHqmRY3AaJwT9X8DDSfYNV69102XxBlL4Bt3WVv/44rd3D7LLfLVhRD4xWhQtKOs5ApjhdQwG3kmyN4wvNN/dLhNvvQlnAOpFL4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jB+jV2E3; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="jB+jV2E3" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D5A2DC19425; Wed, 29 Apr 2026 09:14:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777454042; bh=JQdycHkp59mSnuurDG+lHrUUoUYhN9XZFgJQoZWMfic=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jB+jV2E35YueBIUk8ircQ52CtgO6q73oToZMQkg+72K/wNy0QFpON/K8aM52BjcdZ BJvlGqF+4nsOTMBUgGW9/aFzOm+ogmK1stiN+NRYHSJ4CaJTZFF/bG2c1Jjss6LeQW PaXlNwOgntxRPg0gMrBMD3nWuF1ReM6FVV6xvzO9Cs7ZUmZbeiDh5VC4wq8zmEaN7G 7UHch1+zYp6KIgRwsWjl8KNSDkLMD7s3wBPG4dkWCd96EhmLUrjYsgOtZiMyHrWjPt FnXBuA+vOS5nmLx0dttRMLV5EO7OwqAXzk+eNKcesMV4gjVBhD1xSmcVuX6qOvAUsr LSdUxsDOM7Jxg== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wI0zY-00000000h2P-23F1; Wed, 29 Apr 2026 11:14:00 +0200 From: Johan Hovold To: Mark Brown Cc: Radu Pirea , Ryan Wanner , William Zhang , Kursad Oney , Jonas Gorski , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 04/19] spi: bcm63xx-hsspi: switch to managed controller allocation Date: Wed, 29 Apr 2026 11:13:18 +0200 Message-ID: <20260429091333.165363-5-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260429091333.165363-1-johan@kernel.org> References: <20260429091333.165363-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Switch to device managed controller allocation to simplify error handling and to avoid having to take another reference during deregistration. Signed-off-by: Johan Hovold Acked-by: William Zhang --- drivers/spi/spi-bcm63xx-hsspi.c | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/drivers/spi/spi-bcm63xx-hsspi.c b/drivers/spi/spi-bcm63xx-hssp= i.c index e935e8ab9cfd..58012e1b5ae7 100644 --- a/drivers/spi/spi-bcm63xx-hsspi.c +++ b/drivers/spi/spi-bcm63xx-hsspi.c @@ -783,7 +783,7 @@ static int bcm63xx_hsspi_probe(struct platform_device *= pdev) "failed get pll clk rate\n"); } =20 - host =3D spi_alloc_host(&pdev->dev, sizeof(*bs)); + host =3D devm_spi_alloc_host(&pdev->dev, sizeof(*bs)); if (!host) return dev_err_probe(dev, -ENOMEM, "alloc host no mem\n"); =20 @@ -796,10 +796,8 @@ static int bcm63xx_hsspi_probe(struct platform_device = *pdev) bs->fifo =3D (u8 __iomem *)(bs->regs + HSSPI_FIFO_REG(0)); bs->wait_mode =3D HSSPI_WAIT_MODE_POLLING; bs->prepend_buf =3D devm_kzalloc(dev, HSSPI_BUFFER_LEN, GFP_KERNEL); - if (!bs->prepend_buf) { - ret =3D -ENOMEM; - goto out_put_host; - } + if (!bs->prepend_buf) + return -ENOMEM; =20 mutex_init(&bs->bus_mutex); mutex_init(&bs->msg_mutex); @@ -845,7 +843,7 @@ static int bcm63xx_hsspi_probe(struct platform_device *= pdev) pdev->name, bs); =20 if (ret) - goto out_put_host; + return ret; } =20 pm_runtime_enable(&pdev->dev); @@ -869,8 +867,7 @@ static int bcm63xx_hsspi_probe(struct platform_device *= pdev) sysfs_remove_group(&pdev->dev.kobj, &bcm63xx_hsspi_group); out_pm_disable: pm_runtime_disable(&pdev->dev); -out_put_host: - spi_controller_put(host); + return ret; } =20 @@ -880,15 +877,11 @@ static void bcm63xx_hsspi_remove(struct platform_devi= ce *pdev) struct spi_controller *host =3D platform_get_drvdata(pdev); struct bcm63xx_hsspi *bs =3D spi_controller_get_devdata(host); =20 - spi_controller_get(host); - spi_unregister_controller(host); =20 /* reset the hardware and block queue progress */ __raw_writel(0, bs->regs + HSSPI_INT_MASK_REG); sysfs_remove_group(&pdev->dev.kobj, &bcm63xx_hsspi_group); - - spi_controller_put(host); } =20 #ifdef CONFIG_PM_SLEEP --=20 2.53.0 From nobody Tue Jun 16 20:34:58 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 473AF3BE17D; Wed, 29 Apr 2026 09:14:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; cv=none; b=MQCbj/MUPO3q+wB9uhQ8t3du8rlX9wjXsPnYUXALfSlutdaCtiISE/Yh5oHuyfgmDaOTaDIw9dc5U/j7sU+DtpAlayBRhFQV/uxA3pvuPjjFwVVAqMrTKbXQuA0RSocrkt2h8ssfN02aKR9ngjf6R9TnL2Y6NRVgWLnmL5OjB9A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; c=relaxed/simple; bh=SYyTc5Qkr6/3Iev1Fi01OmgKAGJQ5Y9+ZmSF5kcN/U0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=txDeGuvXsYxIyISG1Hm5Ask2tQAOzh+S76eqttG8DTN15CKffJdjSM4b/YzeuNKqKU06Q42dhY2sgLT40VcMTEIbdXHZRLpPdV9PvGZUnKQHxFE8DRXA5+PnahjUndd+WQ85ZHUMyu53ypXMTpVSpeYJglDhjz9BG9inSaYyeR4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=EKeeQUT3; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="EKeeQUT3" Received: by smtp.kernel.org (Postfix) with ESMTPSA id F2157C2BCF4; Wed, 29 Apr 2026 09:14:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777454043; bh=SYyTc5Qkr6/3Iev1Fi01OmgKAGJQ5Y9+ZmSF5kcN/U0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EKeeQUT3FkhHpwa0jA+M0r4yyjzVdtPVIQxg2WTKgoVbRJqNsHWztLcOf/n24WfV+ 4ROs0zNQa3i0IcRl5MBs5akFGowX0n1auxqjAUbJ4H11y6g3gir8VKjyFoL73CPZSS sQF/BtxpeRk8xaiqIIy8P3qdiu4/tty+XjI3VjB0ghDksQXgzs7/0UTIhxaXw8c7ok KnUi22KzG30M1tKxqMkTbrAEB5gIFnBjTMmvH0EOUpqk8CyvR7ocMsjQ7J9ArlvLqw VOv6VXuxcmybEniOl9VVtu5M81+3W1W1MhdapR1CiMkLvodAMBR4fhMtij9/XgJXTY qmP0r3Z+eu1bg== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wI0zY-00000000h2R-25bW; Wed, 29 Apr 2026 11:14:00 +0200 From: Johan Hovold To: Mark Brown Cc: Radu Pirea , Ryan Wanner , William Zhang , Kursad Oney , Jonas Gorski , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 05/19] spi: cadence: switch to managed controller allocation Date: Wed, 29 Apr 2026 11:13:19 +0200 Message-ID: <20260429091333.165363-6-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260429091333.165363-1-johan@kernel.org> References: <20260429091333.165363-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Switch to device managed controller allocation to simplify error handling and to avoid having to take another reference during deregistration. Signed-off-by: Johan Hovold --- drivers/spi/spi-cadence.c | 28 +++++++++------------------- 1 file changed, 9 insertions(+), 19 deletions(-) diff --git a/drivers/spi/spi-cadence.c b/drivers/spi/spi-cadence.c index d108e89fda22..9b4e5b7013ae 100644 --- a/drivers/spi/spi-cadence.c +++ b/drivers/spi/spi-cadence.c @@ -643,9 +643,9 @@ static int cdns_spi_probe(struct platform_device *pdev) =20 target =3D of_property_read_bool(pdev->dev.of_node, "spi-slave"); if (target) - ctlr =3D spi_alloc_target(&pdev->dev, sizeof(*xspi)); + ctlr =3D devm_spi_alloc_target(&pdev->dev, sizeof(*xspi)); else - ctlr =3D spi_alloc_host(&pdev->dev, sizeof(*xspi)); + ctlr =3D devm_spi_alloc_host(&pdev->dev, sizeof(*xspi)); =20 if (!ctlr) return -ENOMEM; @@ -654,23 +654,19 @@ static int cdns_spi_probe(struct platform_device *pde= v) platform_set_drvdata(pdev, ctlr); =20 xspi->regs =3D devm_platform_ioremap_resource(pdev, 0); - if (IS_ERR(xspi->regs)) { - ret =3D PTR_ERR(xspi->regs); - goto err_put_ctlr; - } + if (IS_ERR(xspi->regs)) + return PTR_ERR(xspi->regs); =20 xspi->pclk =3D devm_clk_get_enabled(&pdev->dev, "pclk"); if (IS_ERR(xspi->pclk)) { dev_err(&pdev->dev, "pclk clock not found.\n"); - ret =3D PTR_ERR(xspi->pclk); - goto err_put_ctlr; + return PTR_ERR(xspi->pclk); } =20 xspi->rstc =3D devm_reset_control_get_optional_exclusive(&pdev->dev, "spi= "); if (IS_ERR(xspi->rstc)) { - ret =3D dev_err_probe(&pdev->dev, PTR_ERR(xspi->rstc), - "Cannot get SPI reset.\n"); - goto err_put_ctlr; + return dev_err_probe(&pdev->dev, PTR_ERR(xspi->rstc), + "Cannot get SPI reset.\n"); } =20 reset_control_assert(xspi->rstc); @@ -679,8 +675,7 @@ static int cdns_spi_probe(struct platform_device *pdev) xspi->ref_clk =3D devm_clk_get_enabled(&pdev->dev, "ref_clk"); if (IS_ERR(xspi->ref_clk)) { dev_err(&pdev->dev, "ref_clk clock not found.\n"); - ret =3D PTR_ERR(xspi->ref_clk); - goto err_put_ctlr; + return PTR_ERR(xspi->ref_clk); } =20 if (!spi_controller_is_target(ctlr)) { @@ -763,8 +758,7 @@ static int cdns_spi_probe(struct platform_device *pdev) pm_runtime_put_noidle(&pdev->dev); pm_runtime_dont_use_autosuspend(&pdev->dev); } -err_put_ctlr: - spi_controller_put(ctlr); + return ret; } =20 @@ -785,8 +779,6 @@ static void cdns_spi_remove(struct platform_device *pde= v) if (!spi_controller_is_target(ctlr)) ret =3D pm_runtime_get_sync(&pdev->dev); =20 - spi_controller_get(ctlr); - spi_unregister_controller(ctlr); =20 if (ret >=3D 0) @@ -798,8 +790,6 @@ static void cdns_spi_remove(struct platform_device *pde= v) pm_runtime_put_noidle(&pdev->dev); pm_runtime_dont_use_autosuspend(&pdev->dev); } - - spi_controller_put(ctlr); } =20 /** --=20 2.53.0 From nobody Tue Jun 16 20:34:58 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 6F75E3BE65F; Wed, 29 Apr 2026 09:14:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; cv=none; b=Nhj0GnI9HUtITnUhwSLaYPmQP4k1KIFu2ytVAD+qKo9u2oz+PDEMtDfB6HauA5nwlMRw/msEfCbxWD1XYaqYDNPzCZqGD+Lr1aqDtPEfhMXvCDfMWEfZ2kbka4cW6sPfy4Jv2pKy1TQOB8xxVqeZn1hmXWXAYyXUIPqbtwj9VCg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; c=relaxed/simple; bh=DRUiIELEdUGN2kcabL+yNHvhS2yDxJWIatRvNuD0olI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=S+59ebShSh5opbybCmnmemsXg5iNPUPFCNgwMGe0O7VBoJwcGpRKs/2cqEW+DN3EcHTbLdqUWS4qtOqIb0XfJeDPz7p8wbpNKfWgJviKQGP6eym3TESd7k6EZgAUc4qnpI3R9UWPyT97CN44pcIxU3kjsUzRwWpGZqqF+sdwocw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=qEGOkJL/; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="qEGOkJL/" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DB90CC2BCC6; Wed, 29 Apr 2026 09:14:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777454043; bh=DRUiIELEdUGN2kcabL+yNHvhS2yDxJWIatRvNuD0olI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qEGOkJL/2GKsreIUkRCrxyy+xXFTz0LnujhsmwPWbAMB/X6dXy+f1qbJWTnEYNHh8 w682AjSm6DxgXVgkRR4ralYpLYYEQUbA6y5A1kR5IZE8Rpa2Hak6of73qMs1uFLTOH WQmt3SnLrUEqJLgDdCptLs4dUaEZYJJEwYvVb/9dUBX1aJlimsmRzbviX8jcCag3vq 91vg/Dt0pY/D49Ye/pTzu1yy2gIFxfSu3Ju3unHztvFYhZj9kO8tvczxGzT99KSic5 nroXOrg+brCeq+wZkonJPQgmQ73MlCc0HsEAEFLaS1eneNYH3AB+uQIV9+4iyiYd0A mDECKlK3cqRSw== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wI0zY-00000000h2T-281W; Wed, 29 Apr 2026 11:14:00 +0200 From: Johan Hovold To: Mark Brown Cc: Radu Pirea , Ryan Wanner , William Zhang , Kursad Oney , Jonas Gorski , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 06/19] spi: octeon: switch to managed controller allocation Date: Wed, 29 Apr 2026 11:13:20 +0200 Message-ID: <20260429091333.165363-7-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260429091333.165363-1-johan@kernel.org> References: <20260429091333.165363-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Switch to device managed controller allocation to simplify error handling and to avoid having to take another reference during deregistration. Signed-off-by: Johan Hovold --- drivers/spi/spi-cavium-octeon.c | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/drivers/spi/spi-cavium-octeon.c b/drivers/spi/spi-cavium-octeo= n.c index b95bfa6a3013..28c922c72068 100644 --- a/drivers/spi/spi-cavium-octeon.c +++ b/drivers/spi/spi-cavium-octeon.c @@ -23,17 +23,15 @@ static int octeon_spi_probe(struct platform_device *pde= v) struct octeon_spi *p; int err =3D -ENOENT; =20 - host =3D spi_alloc_host(&pdev->dev, sizeof(struct octeon_spi)); + host =3D devm_spi_alloc_host(&pdev->dev, sizeof(struct octeon_spi)); if (!host) return -ENOMEM; p =3D spi_controller_get_devdata(host); platform_set_drvdata(pdev, host); =20 reg_base =3D devm_platform_ioremap_resource(pdev, 0); - if (IS_ERR(reg_base)) { - err =3D PTR_ERR(reg_base); - goto fail; - } + if (IS_ERR(reg_base)) + return PTR_ERR(reg_base); =20 p->register_base =3D reg_base; p->sys_freq =3D octeon_get_io_clock_rate(); @@ -57,15 +55,12 @@ static int octeon_spi_probe(struct platform_device *pde= v) err =3D spi_register_controller(host); if (err) { dev_err(&pdev->dev, "register host failed: %d\n", err); - goto fail; + return err; } =20 dev_info(&pdev->dev, "OCTEON SPI bus driver\n"); =20 return 0; -fail: - spi_controller_put(host); - return err; } =20 static void octeon_spi_remove(struct platform_device *pdev) @@ -73,14 +68,10 @@ static void octeon_spi_remove(struct platform_device *p= dev) struct spi_controller *host =3D platform_get_drvdata(pdev); struct octeon_spi *p =3D spi_controller_get_devdata(host); =20 - spi_controller_get(host); - spi_unregister_controller(host); =20 /* Clear the CSENA* and put everything in a known state. */ writeq(0, p->register_base + OCTEON_SPI_CFG(p)); - - spi_controller_put(host); } =20 static const struct of_device_id octeon_spi_match[] =3D { --=20 2.53.0 From nobody Tue Jun 16 20:34:58 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 7AEF43BED31; Wed, 29 Apr 2026 09:14:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; cv=none; b=J675f01inqpu9tpkGDC1eVUHyV/4sJ4bQlh61XLkoMgyhJPehue+GZ46V0NgPFQdIPwJrDWdRJxn/PAZzKDSAqzzPO/SeBOafnrtXCKr5Z4uLe3NSVrX6amLRq0G3T5UvAVNvf0fhTfuwxyEfdFQOz+l2UNTokzYpPe1Dx4nn8E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; c=relaxed/simple; bh=AHjTvIlA2he9Wp9tlUsmw8EJ04LHkkbvc2YRqbAEmmI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mqPzO6dBGqUuCXCmPxeODFYVCBDnftUJb3ph9l5KBgyzisAKonmpoywOTz53G0iL4lzIQM2r+SECMQhxBxMss6MEwXvaPONoyvrcY4WOg6tCnU/cLyH/WMS2K+WfbkoxZi5lWWNVA3XyAehvNyHMeG7O46ogbL3SEf0VICGe/5s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Itpf5ky6; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Itpf5ky6" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 116A8C4AF0F; Wed, 29 Apr 2026 09:14:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777454043; bh=AHjTvIlA2he9Wp9tlUsmw8EJ04LHkkbvc2YRqbAEmmI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Itpf5ky6NCQgfRhYBmjMrS9ZjXJhC+zSAMxnkahA4R3MmxQ7RXkSc9VrvM9pMf22J C6HduG98riEUs4+kQEGvyn1W/5EbpSxFCsQLX1/vEZdto5+UFPkZE3mwwUyhLtP5g+ g8rUJ3e/hLCRZHvBVP4RkTCKwyztVE8tav9acQoavwlw9ImEAroOPPHVGTLVtd/BE8 ipySdCTFcQR1biOspzgrg3RlXcSeslIHXz6XrM3QI9AruSgFCeBqAMb4dRT9/04pWG wWLWn4mUYYIFOmrPoeqGa7szRMNg5rDlpdhr9XPGzB5EXpjU9tuWYZbWuXrS0B8GTS VFXE/gDxwOGwA== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wI0zY-00000000h2V-2AMD; Wed, 29 Apr 2026 11:14:00 +0200 From: Johan Hovold To: Mark Brown Cc: Radu Pirea , Ryan Wanner , William Zhang , Kursad Oney , Jonas Gorski , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 07/19] spi: cavium-thunderx: switch to managed controller allocation Date: Wed, 29 Apr 2026 11:13:21 +0200 Message-ID: <20260429091333.165363-8-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260429091333.165363-1-johan@kernel.org> References: <20260429091333.165363-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Switch to device managed controller allocation to simplify error handling and to avoid having to take another reference during deregistration. Signed-off-by: Johan Hovold --- drivers/spi/spi-cavium-thunderx.c | 32 ++++++++----------------------- 1 file changed, 8 insertions(+), 24 deletions(-) diff --git a/drivers/spi/spi-cavium-thunderx.c b/drivers/spi/spi-cavium-thu= nderx.c index f1a9aa696c87..529b4066c922 100644 --- a/drivers/spi/spi-cavium-thunderx.c +++ b/drivers/spi/spi-cavium-thunderx.c @@ -24,7 +24,7 @@ static int thunderx_spi_probe(struct pci_dev *pdev, struct octeon_spi *p; int ret; =20 - host =3D spi_alloc_host(dev, sizeof(struct octeon_spi)); + host =3D devm_spi_alloc_host(dev, sizeof(struct octeon_spi)); if (!host) return -ENOMEM; =20 @@ -32,17 +32,15 @@ static int thunderx_spi_probe(struct pci_dev *pdev, =20 ret =3D pcim_enable_device(pdev); if (ret) - goto error; + return ret; =20 ret =3D pcim_request_all_regions(pdev, DRV_NAME); if (ret) - goto error; + return ret; =20 p->register_base =3D pcim_iomap(pdev, 0, pci_resource_len(pdev, 0)); - if (!p->register_base) { - ret =3D -EINVAL; - goto error; - } + if (!p->register_base) + return -EINVAL; =20 p->regs.config =3D 0x1000; p->regs.status =3D 0x1008; @@ -50,10 +48,8 @@ static int thunderx_spi_probe(struct pci_dev *pdev, p->regs.data =3D 0x1080; =20 p->clk =3D devm_clk_get_enabled(dev, NULL); - if (IS_ERR(p->clk)) { - ret =3D PTR_ERR(p->clk); - goto error; - } + if (IS_ERR(p->clk)) + return PTR_ERR(p->clk); =20 p->sys_freq =3D clk_get_rate(p->clk); if (!p->sys_freq) @@ -70,15 +66,7 @@ static int thunderx_spi_probe(struct pci_dev *pdev, =20 pci_set_drvdata(pdev, host); =20 - ret =3D spi_register_controller(host); - if (ret) - goto error; - - return 0; - -error: - spi_controller_put(host); - return ret; + return spi_register_controller(host); } =20 static void thunderx_spi_remove(struct pci_dev *pdev) @@ -90,14 +78,10 @@ static void thunderx_spi_remove(struct pci_dev *pdev) if (!p) return; =20 - spi_controller_get(host); - spi_unregister_controller(host); =20 /* Put everything in a known state. */ writeq(0, p->register_base + OCTEON_SPI_CFG(p)); - - spi_controller_put(host); } =20 static const struct pci_device_id thunderx_spi_pci_id_table[] =3D { --=20 2.53.0 From nobody Tue Jun 16 20:34:58 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 6DD803BE64B; Wed, 29 Apr 2026 09:14:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; cv=none; b=OeMX5vyVwtg/hcqG1N0u/hq7jidDXJSM9aMav+HAJJ8cD8GYiIeKzeTgx2iZlZoyRiaJPEOgg7Je/qHrZJqC69zJMwPxIc+q9fXoezF4QCokcPGCuz0Hwf9o452YM+3T0DxKLLSR1kqj3uAZPnnVPDd9bnaTEYIV5/vpCBN8oho= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; c=relaxed/simple; bh=ga+FOMp9qVwI8l87FgM0Iz0sGRIiFaESZzWnM4Wja4I=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DxZ7umbjz1LnFPr1g2qGhF4LZkrX2yaBqxHldS1m+1y0B8VKm9AT4yo+hX4SNgc/Wpx6efQtp8cVm7dbQzxCyDOt4AaohyNhlibMLt3YIx8iVmbFmc3bEMth009Zv3F2ECS7mIf0TucCthr0s3IMbLna6s0dwXwkadlLj3qz0ro= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=gDkQchGM; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="gDkQchGM" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 096E6C2BCFA; Wed, 29 Apr 2026 09:14:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777454043; bh=ga+FOMp9qVwI8l87FgM0Iz0sGRIiFaESZzWnM4Wja4I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gDkQchGMD21nFV/Ka4Edcv9xzqL6QEEGLlIsdBC2YenGrzrV0xZA1sKYAB0/z7DX+ Jrnlaf4d/dhtzMVaN+ThSuhmYVfPWgNGS+ND3droylnEbo9Md1b48iIr3lcjhIcdOE rRuOIpEGGA233NvXuwlFraI4cVEaVGjbWT45zQHsrjAwHyg0FhbD/rp3Rp8iySSV8S j7NNeRL4z1rgyLRnFDBqZfAceBdffDgDPS1cSrnHxfR3ir0FX7kIrVP/pLoM971I36 TISV7AxAgM+RoyxAxwluHsrzFUVkm0rddJI7G8jUevC25YGYhwubbZZPgN/WdA7nx0 mtUecZOK+4eig== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wI0zY-00000000h2X-2CiX; Wed, 29 Apr 2026 11:14:00 +0200 From: Johan Hovold To: Mark Brown Cc: Radu Pirea , Ryan Wanner , William Zhang , Kursad Oney , Jonas Gorski , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 08/19] spi: coldfire-qspi: switch to managed controller allocation Date: Wed, 29 Apr 2026 11:13:22 +0200 Message-ID: <20260429091333.165363-9-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260429091333.165363-1-johan@kernel.org> References: <20260429091333.165363-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Switch to device managed controller allocation to simplify error handling and to avoid having to take another reference during deregistration. Signed-off-by: Johan Hovold --- drivers/spi/spi-coldfire-qspi.c | 28 ++++++++-------------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/drivers/spi/spi-coldfire-qspi.c b/drivers/spi/spi-coldfire-qsp= i.c index b45f44de85dc..3b175c1da36b 100644 --- a/drivers/spi/spi-coldfire-qspi.c +++ b/drivers/spi/spi-coldfire-qspi.c @@ -353,39 +353,33 @@ static int mcfqspi_probe(struct platform_device *pdev) return -EINVAL; } =20 - host =3D spi_alloc_host(&pdev->dev, sizeof(*mcfqspi)); - if (host =3D=3D NULL) { - dev_dbg(&pdev->dev, "spi_alloc_host failed\n"); + host =3D devm_spi_alloc_host(&pdev->dev, sizeof(*mcfqspi)); + if (host =3D=3D NULL) return -ENOMEM; - } =20 mcfqspi =3D spi_controller_get_devdata(host); =20 mcfqspi->iobase =3D devm_platform_ioremap_resource(pdev, 0); - if (IS_ERR(mcfqspi->iobase)) { - status =3D PTR_ERR(mcfqspi->iobase); - goto fail0; - } + if (IS_ERR(mcfqspi->iobase)) + return PTR_ERR(mcfqspi->iobase); =20 mcfqspi->irq =3D platform_get_irq(pdev, 0); if (mcfqspi->irq < 0) { dev_dbg(&pdev->dev, "platform_get_irq failed\n"); - status =3D -ENXIO; - goto fail0; + return -ENXIO; } =20 status =3D devm_request_irq(&pdev->dev, mcfqspi->irq, mcfqspi_irq_handler, 0, pdev->name, mcfqspi); if (status) { dev_dbg(&pdev->dev, "request_irq failed\n"); - goto fail0; + return status; } =20 mcfqspi->clk =3D devm_clk_get_enabled(&pdev->dev, "qspi_clk"); if (IS_ERR(mcfqspi->clk)) { dev_dbg(&pdev->dev, "clk_get failed\n"); - status =3D PTR_ERR(mcfqspi->clk); - goto fail0; + return PTR_ERR(mcfqspi->clk); } =20 host->bus_num =3D pdata->bus_num; @@ -395,7 +389,7 @@ static int mcfqspi_probe(struct platform_device *pdev) status =3D mcfqspi_cs_setup(mcfqspi); if (status) { dev_dbg(&pdev->dev, "error initializing cs_control\n"); - goto fail0; + return status; } =20 init_waitqueue_head(&mcfqspi->waitq); @@ -423,8 +417,6 @@ static int mcfqspi_probe(struct platform_device *pdev) fail1: pm_runtime_disable(&pdev->dev); mcfqspi_cs_teardown(mcfqspi); -fail0: - spi_controller_put(host); =20 dev_dbg(&pdev->dev, "Coldfire QSPI probe failed\n"); =20 @@ -436,8 +428,6 @@ static void mcfqspi_remove(struct platform_device *pdev) struct spi_controller *host =3D platform_get_drvdata(pdev); struct mcfqspi *mcfqspi =3D spi_controller_get_devdata(host); =20 - spi_controller_get(host); - spi_unregister_controller(host); =20 pm_runtime_disable(&pdev->dev); @@ -445,8 +435,6 @@ static void mcfqspi_remove(struct platform_device *pdev) mcfqspi_wr_qmr(mcfqspi, MCFQSPI_QMR_MSTR); =20 mcfqspi_cs_teardown(mcfqspi); - - spi_controller_put(host); } =20 #ifdef CONFIG_PM_SLEEP --=20 2.53.0 From nobody Tue Jun 16 20:34:58 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 436A03BE144; Wed, 29 Apr 2026 09:14:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; cv=none; b=Zb4TpEpQlXqnZBFDvC9ZTP6ntmhHdoYO5nDzny6VfoYS+FzfNlu/Kp5NdKBejdcwiauz3C7N1HlRLIbg4uAvCe338PqHkyOtxvoYuX9skZtizUe0MOaJKeCmi8pSf0aqAggaVcYCZTLx1hWogdNS+BFQu6MvnZVMwyV8rqOjqgE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; c=relaxed/simple; bh=LDwQkSwf8ouoar1VNvhck2E/6Fj5n+vx7fYiXrs8Dyw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qEcjMDAFn46X3uYsnQRvTqQ34ppcPPjSV2ZT/wFZJPt+8whvL1ZXH+JHdlXSdnAOIWAqtH15iBjJdzGmc7oiwBd6gKp1u8HJxFZnAHJad1LnM1eHLyhsuDNAMgMd6q7qe4y6qRWK18hLTj6lljWudv9Wpg9Lpx1eEvb265MwCJI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=i9K23y1G; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="i9K23y1G" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E2A36C2BCC9; Wed, 29 Apr 2026 09:14:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777454043; bh=LDwQkSwf8ouoar1VNvhck2E/6Fj5n+vx7fYiXrs8Dyw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=i9K23y1GvSMGdrO5f83e1Ay6cqy6aSz8XLcJi4yIJX3RmKdNO4ZIPznxcU9iGa+6D TetAEYNeewImEG+azsVY4llE9ZFrP5Ia6W9Wa9hylNw0NFzt3/fktx6sYqQ5NpGIL5 eyofg3ffuOoS+3fBrA1SIxWkmyAXse/sADNZiVU1SWvnXbY7x7M6+hIceNwPHnYDnx H2WFx83pYEA1BFmnPYtAVBSeLLfYeksG8UvNyL7yMPzbjhi//6LWDhsSytq9yOIKgO VXSkngUrr91ofASq2LYobCYlQmHoWtEGAVdwNsGFowpAYomkPNzYkV9sygxyuovgGs d9EitWdZ3DKbg== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wI0zY-00000000h2Z-2FW3; Wed, 29 Apr 2026 11:14:00 +0200 From: Johan Hovold To: Mark Brown Cc: Radu Pirea , Ryan Wanner , William Zhang , Kursad Oney , Jonas Gorski , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 09/19] spi: dln2: switch to managed controller allocation Date: Wed, 29 Apr 2026 11:13:23 +0200 Message-ID: <20260429091333.165363-10-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260429091333.165363-1-johan@kernel.org> References: <20260429091333.165363-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Switch to device managed controller allocation to simplify error handling and to avoid having to take another reference during deregistration. Signed-off-by: Johan Hovold --- drivers/spi/spi-dln2.c | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/drivers/spi/spi-dln2.c b/drivers/spi/spi-dln2.c index 392f0d05f508..8333dda7d1e8 100644 --- a/drivers/spi/spi-dln2.c +++ b/drivers/spi/spi-dln2.c @@ -684,7 +684,7 @@ static int dln2_spi_probe(struct platform_device *pdev) struct dln2_platform_data *pdata =3D dev_get_platdata(&pdev->dev); int ret; =20 - host =3D spi_alloc_host(&pdev->dev, sizeof(*dln2)); + host =3D devm_spi_alloc_host(&pdev->dev, sizeof(*dln2)); if (!host) return -ENOMEM; =20 @@ -693,10 +693,8 @@ static int dln2_spi_probe(struct platform_device *pdev) dln2 =3D spi_controller_get_devdata(host); =20 dln2->buf =3D devm_kmalloc(&pdev->dev, DLN2_SPI_BUF_SIZE, GFP_KERNEL); - if (!dln2->buf) { - ret =3D -ENOMEM; - goto exit_free_host; - } + if (!dln2->buf) + return -ENOMEM; =20 dln2->host =3D host; dln2->pdev =3D pdev; @@ -709,13 +707,13 @@ static int dln2_spi_probe(struct platform_device *pde= v) ret =3D dln2_spi_enable(dln2, false); if (ret < 0) { dev_err(&pdev->dev, "Failed to disable SPI module\n"); - goto exit_free_host; + return ret; } =20 ret =3D dln2_spi_get_cs_num(dln2, &host->num_chipselect); if (ret < 0) { dev_err(&pdev->dev, "Failed to get number of CS pins\n"); - goto exit_free_host; + return ret; } =20 ret =3D dln2_spi_get_speed_range(dln2, @@ -723,20 +721,20 @@ static int dln2_spi_probe(struct platform_device *pde= v) &host->max_speed_hz); if (ret < 0) { dev_err(&pdev->dev, "Failed to read bus min/max freqs\n"); - goto exit_free_host; + return ret; } =20 ret =3D dln2_spi_get_supported_frame_sizes(dln2, &host->bits_per_word_mask); if (ret < 0) { dev_err(&pdev->dev, "Failed to read supported frame sizes\n"); - goto exit_free_host; + return ret; } =20 ret =3D dln2_spi_cs_enable_all(dln2, true); if (ret < 0) { dev_err(&pdev->dev, "Failed to enable CS pins\n"); - goto exit_free_host; + return ret; } =20 host->bus_num =3D -1; @@ -749,7 +747,7 @@ static int dln2_spi_probe(struct platform_device *pdev) ret =3D dln2_spi_enable(dln2, true); if (ret < 0) { dev_err(&pdev->dev, "Failed to enable SPI module\n"); - goto exit_free_host; + return ret; } =20 pm_runtime_set_autosuspend_delay(&pdev->dev, @@ -772,8 +770,6 @@ static int dln2_spi_probe(struct platform_device *pdev) =20 if (dln2_spi_enable(dln2, false) < 0) dev_err(&pdev->dev, "Failed to disable SPI module\n"); -exit_free_host: - spi_controller_put(host); =20 return ret; } @@ -783,16 +779,12 @@ static void dln2_spi_remove(struct platform_device *p= dev) struct spi_controller *host =3D platform_get_drvdata(pdev); struct dln2_spi *dln2 =3D spi_controller_get_devdata(host); =20 - spi_controller_get(host); - spi_unregister_controller(host); =20 pm_runtime_disable(&pdev->dev); =20 if (dln2_spi_enable(dln2, false) < 0) dev_err(&pdev->dev, "Failed to disable SPI module\n"); - - spi_controller_put(host); } =20 #ifdef CONFIG_PM_SLEEP --=20 2.53.0 From nobody Tue Jun 16 20:34:58 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 4374D3BE153; Wed, 29 Apr 2026 09:14:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; cv=none; b=nwHuyFRWFo8JkuLBRxRmoVBjEW0+MgYU/1CzuMeTSmNNlnvR5RR5R68Fk8gWCBHva9XXRt7ViW2bswIrfZzaheD9RClqVPO0LthtHGZ5Eft6lNtY3M3ngukF4SL06yDKz8XM+uGaRSSEEdxvXHjD7oh05r4UJBvU3eW7lVUSRzY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; c=relaxed/simple; bh=LUIxmud4ItkcIhMTJTOGUqRbRfROfvHNlWkcWBcsAnY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Hkv6syLG0vjCqt5U8tbIuEmvUp/MtX46hvqj2ByF5AC7DA2yyXJF4niJ4RFxPhQzqMUhwye0mtCC4poMEybB6hPmuodlPo5SMm8Ts0ThsNBPoGZzrIa/tVfmtvYErQcAxvjyF0ZA/ZKetZP+Y4PpkPJ8ZFrytIt832TAb2oGWQU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=QS7lO1Hr; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="QS7lO1Hr" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E052AC2BCB3; Wed, 29 Apr 2026 09:14:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777454043; bh=LUIxmud4ItkcIhMTJTOGUqRbRfROfvHNlWkcWBcsAnY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=QS7lO1HrWI2ESWx9VL+jkZObruH4Ods/N1j+AWmM8t/xrhKeJrUO+WhV++HiVpQwU TaocIF78A57MS4dyeFDbPPBH8VRXfhCQSOXcLjhCWa97cVOE4FnZdtEOUGb1K42ZaW 3KA5hlThuWaUj/qE4gNUkYWD+DLfmdXFoEYb8NFUz7DJeR3BMZ+tM9yBvYRwr3nTpq f3tLdhhbGgIecNix367kmzyYkCCuDB1Jdzcy5A4LGOHfPj45AUz+SwcO+nrWmjQmuo oKLLbztTEVNYoqCyNsdbcdxzqIvWtMN2rwXMYoDy1V/lM06Q8mj1bDVGRuSfEqQbrg u/Gy2VqfRhpUA== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wI0zY-00000000h2b-2I0V; Wed, 29 Apr 2026 11:14:00 +0200 From: Johan Hovold To: Mark Brown Cc: Radu Pirea , Ryan Wanner , William Zhang , Kursad Oney , Jonas Gorski , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 10/19] spi: ep93xx: switch to managed controller allocation Date: Wed, 29 Apr 2026 11:13:24 +0200 Message-ID: <20260429091333.165363-11-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260429091333.165363-1-johan@kernel.org> References: <20260429091333.165363-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Switch to device managed controller allocation to simplify error handling and to avoid having to take another reference during deregistration. Signed-off-by: Johan Hovold --- drivers/spi/spi-ep93xx.c | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/drivers/spi/spi-ep93xx.c b/drivers/spi/spi-ep93xx.c index db50018050e5..d7e82d80c35a 100644 --- a/drivers/spi/spi-ep93xx.c +++ b/drivers/spi/spi-ep93xx.c @@ -629,7 +629,7 @@ static int ep93xx_spi_probe(struct platform_device *pde= v) if (irq < 0) return irq; =20 - host =3D spi_alloc_host(&pdev->dev, sizeof(*espi)); + host =3D devm_spi_alloc_host(&pdev->dev, sizeof(*espi)); if (!host) return -ENOMEM; =20 @@ -654,8 +654,7 @@ static int ep93xx_spi_probe(struct platform_device *pde= v) espi->clk =3D devm_clk_get(&pdev->dev, NULL); if (IS_ERR(espi->clk)) { dev_err(&pdev->dev, "unable to get spi clock\n"); - error =3D PTR_ERR(espi->clk); - goto fail_release_host; + return PTR_ERR(espi->clk); } =20 /* @@ -666,22 +665,21 @@ static int ep93xx_spi_probe(struct platform_device *p= dev) host->min_speed_hz =3D clk_get_rate(espi->clk) / (254 * 256); =20 espi->mmio =3D devm_platform_get_and_ioremap_resource(pdev, 0, &res); - if (IS_ERR(espi->mmio)) { - error =3D PTR_ERR(espi->mmio); - goto fail_release_host; - } + if (IS_ERR(espi->mmio)) + return PTR_ERR(espi->mmio); + espi->sspdr_phys =3D res->start + SSPDR; =20 error =3D devm_request_irq(&pdev->dev, irq, ep93xx_spi_interrupt, 0, "ep93xx-spi", host); if (error) { dev_err(&pdev->dev, "failed to request irq\n"); - goto fail_release_host; + return error; } =20 error =3D ep93xx_spi_setup_dma(&pdev->dev, espi); if (error =3D=3D -EPROBE_DEFER) - goto fail_release_host; + return error; =20 if (error) dev_warn(&pdev->dev, "DMA setup failed. Falling back to PIO\n"); @@ -702,8 +700,6 @@ static int ep93xx_spi_probe(struct platform_device *pde= v) =20 fail_free_dma: ep93xx_spi_release_dma(espi); -fail_release_host: - spi_controller_put(host); =20 return error; } @@ -713,13 +709,9 @@ static void ep93xx_spi_remove(struct platform_device *= pdev) struct spi_controller *host =3D platform_get_drvdata(pdev); struct ep93xx_spi *espi =3D spi_controller_get_devdata(host); =20 - spi_controller_get(host); - spi_unregister_controller(host); =20 ep93xx_spi_release_dma(espi); - - spi_controller_put(host); } =20 static const struct of_device_id ep93xx_spi_of_ids[] =3D { --=20 2.53.0 From nobody Tue Jun 16 20:34:58 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 6F6903BE65C; Wed, 29 Apr 2026 09:14:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; cv=none; b=i4HpVsu4QeK15J5opBa6tCD5PIM2cG+VxhNX+bsehs9NCgv+NEmc1zCwsUboC1udd1L/sdjuzvCtNsKokjN73XleY6cIuUiGgrRAQML+mMr5SpX3+YJwxnKbwAKB3ByDm5wdmml4Zmq1W6T9MuLoQykT9UnN3ey0OfWfUVKVwuQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; c=relaxed/simple; bh=GBOkNya7C3m93sUpoy4neluaSRzF08Eexlb6b3hJqQc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bX6tpFyhvMLkHb2bLrBM1Dr3hl3M95i13WFVytWRFkfJAuIdM8HXQEnRISxLPTL5g6qj2jls3B3FPZT8JhJLoKQpFIvXgEpBsdzLRAymYfnOtXO7j4PXaSb6d6WLB0IGX7h0md4zCgBMu9D0DO/PyE41ki3Ksmvl9gKecxzQffw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=iDNCV+8A; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="iDNCV+8A" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 09580C2BCF5; Wed, 29 Apr 2026 09:14:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777454043; bh=GBOkNya7C3m93sUpoy4neluaSRzF08Eexlb6b3hJqQc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=iDNCV+8Adb7/UciiHTrl5Q7PuObBC4sH30C0h87Hkxt3+nvmsG96cPJ0EOMMfC0hi +3Dk0osODl4yveBCHu3YsFCf3h02xQ8PO3hf9suTPzm0945zUPwTjzMlVlACk7JDU7 LS8BiRbAkvdMWBrLKYvTh9Jn45XenGey7UO1IJX7BnwSQk0f1/8GMKEGHLqaOhOrem i4lcJgAyUNr+7qAl4F0OgztcEnfb5lBhpl2e6hT8tLGBjx7GkUu++gjHOT+yeMpDOY arzw4v+n3Xc1yLjQAKNN3kDVcEIi+qs+F0wI+rTNdLAORQDbIDrjyM/L9pLZKDAT0B i0QtDz+aF1lbA== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wI0zY-00000000h2d-2KOf; Wed, 29 Apr 2026 11:14:00 +0200 From: Johan Hovold To: Mark Brown Cc: Radu Pirea , Ryan Wanner , William Zhang , Kursad Oney , Jonas Gorski , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 11/19] spi: fsl: switch to managed controller allocation Date: Wed, 29 Apr 2026 11:13:25 +0200 Message-ID: <20260429091333.165363-12-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260429091333.165363-1-johan@kernel.org> References: <20260429091333.165363-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Switch to device managed controller allocation to simplify error handling and to avoid having to take another reference during deregistration. Signed-off-by: Johan Hovold --- drivers/spi/spi-fsl-spi.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/drivers/spi/spi-fsl-spi.c b/drivers/spi/spi-fsl-spi.c index 1252c41c206f..e45816ef7b65 100644 --- a/drivers/spi/spi-fsl-spi.c +++ b/drivers/spi/spi-fsl-spi.c @@ -535,7 +535,7 @@ static struct spi_controller *fsl_spi_probe(struct devi= ce *dev, u32 regval; int ret =3D 0; =20 - host =3D spi_alloc_host(dev, sizeof(struct mpc8xxx_spi)); + host =3D devm_spi_alloc_host(dev, sizeof(struct mpc8xxx_spi)); if (host =3D=3D NULL) { ret =3D -ENOMEM; goto err; @@ -559,7 +559,7 @@ static struct spi_controller *fsl_spi_probe(struct devi= ce *dev, =20 ret =3D fsl_spi_cpm_init(mpc8xxx_spi); if (ret) - goto err_cpm_init; + goto err; =20 mpc8xxx_spi->reg_base =3D devm_ioremap_resource(dev, mem); if (IS_ERR(mpc8xxx_spi->reg_base)) { @@ -625,8 +625,6 @@ static struct spi_controller *fsl_spi_probe(struct devi= ce *dev, =20 err_probe: fsl_spi_cpm_free(mpc8xxx_spi); -err_cpm_init: - spi_controller_put(host); err: return ERR_PTR(ret); } @@ -705,13 +703,9 @@ static void of_fsl_spi_remove(struct platform_device *= ofdev) struct spi_controller *host =3D platform_get_drvdata(ofdev); struct mpc8xxx_spi *mpc8xxx_spi =3D spi_controller_get_devdata(host); =20 - spi_controller_get(host); - spi_unregister_controller(host); =20 fsl_spi_cpm_free(mpc8xxx_spi); - - spi_controller_put(host); } =20 static struct platform_driver of_fsl_spi_driver =3D { @@ -757,13 +751,9 @@ static void plat_mpc8xxx_spi_remove(struct platform_de= vice *pdev) struct spi_controller *host =3D platform_get_drvdata(pdev); struct mpc8xxx_spi *mpc8xxx_spi =3D spi_controller_get_devdata(host); =20 - spi_controller_get(host); - spi_unregister_controller(host); =20 fsl_spi_cpm_free(mpc8xxx_spi); - - spi_controller_put(host); } =20 MODULE_ALIAS("platform:mpc8xxx_spi"); --=20 2.53.0 From nobody Tue Jun 16 20:34:58 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 767B73BED37; Wed, 29 Apr 2026 09:14:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; cv=none; b=pZ/v1DR4e2Zr640cn9c/9LH0WDxFDC5JfcyIdKrxKhcPlZlVK28rLEaC4OvRlVT9ufCvZXPl7qxMOUfVbnEccIXXXwX+6U3+ScFlUSZVSlWmS5HvtrCeeJFzEhSorgbgIjCVBvkO6oZd3mfY9cmr5BS+ie2PvEQ3GldgzuWacas= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; c=relaxed/simple; bh=Eyb1Nu+90yTZ5mu01NjCfMd+AV0IXHjBMn+fGTS2nsk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cu+sYwxs1IuSxr2PV4P8HJumVh2pkY78gnJQuqj2xcF87lR/DSC4vbd6IXjon4EMbQO2AqYewk27M9Wo3b/LpE0zIFO/pdOyFuOkE3Cwm15ZBTKhcaOzPBVZVSMqVbbwB5lWtVU/iWX13iTswW6nt7ljT5+/95O1M+tSEnhZSrA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=g1B7McZq; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="g1B7McZq" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0FDE0C2BCFD; Wed, 29 Apr 2026 09:14:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777454043; bh=Eyb1Nu+90yTZ5mu01NjCfMd+AV0IXHjBMn+fGTS2nsk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=g1B7McZqqC7egMVkVokuWlq16nDirBechwCenP4MC8PPsqj5xC5hTYRzva6defBN1 6OqB2PE/oGmdU0lDKGjYKl1jwZgAEMM5pVR5vy4qfEDDqeHCrKsYzWlTqwMT3/qoqy GEnFALjMvOTo8nxgJP6cNlIkKhg/a42HD78GBOetm6L9o4oT8Za6f0PUcXpt9y2uE1 p/rQ3FKKzi7Tml9vppAfVKtK4nQfNQvSwNCyhhv4KY3J+9ywzQJdwSIKslberVvFFL RAkYHDCvO884emllUnJQlhfDQI8FxrxtLGpE0zZvg6CpB9ALGOiMlX91OLVy5XaULx FCYbKYqiGDmkA== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wI0zY-00000000h2f-2MlT; Wed, 29 Apr 2026 11:14:00 +0200 From: Johan Hovold To: Mark Brown Cc: Radu Pirea , Ryan Wanner , William Zhang , Kursad Oney , Jonas Gorski , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 12/19] spi: fsl-espi: switch to managed controller allocation Date: Wed, 29 Apr 2026 11:13:26 +0200 Message-ID: <20260429091333.165363-13-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260429091333.165363-1-johan@kernel.org> References: <20260429091333.165363-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Switch to device managed controller allocation to simplify error handling and to avoid having to take another reference during deregistration. Signed-off-by: Johan Hovold --- drivers/spi/spi-fsl-espi.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/drivers/spi/spi-fsl-espi.c b/drivers/spi/spi-fsl-espi.c index 45b9974ae911..f560bd537f7d 100644 --- a/drivers/spi/spi-fsl-espi.c +++ b/drivers/spi/spi-fsl-espi.c @@ -667,7 +667,7 @@ static int fsl_espi_probe(struct device *dev, struct re= source *mem, struct fsl_espi *espi; int ret; =20 - host =3D spi_alloc_host(dev, sizeof(struct fsl_espi)); + host =3D devm_spi_alloc_host(dev, sizeof(struct fsl_espi)); if (!host) return -ENOMEM; =20 @@ -690,8 +690,7 @@ static int fsl_espi_probe(struct device *dev, struct re= source *mem, espi->spibrg =3D fsl_get_sys_freq(); if (espi->spibrg =3D=3D -1) { dev_err(dev, "Can't get sys frequency!\n"); - ret =3D -EINVAL; - goto err_probe; + return -EINVAL; } /* determined by clock divider fields DIV16/PM in register SPMODEx */ host->min_speed_hz =3D DIV_ROUND_UP(espi->spibrg, 4 * 16 * 16); @@ -700,15 +699,13 @@ static int fsl_espi_probe(struct device *dev, struct = resource *mem, init_completion(&espi->done); =20 espi->reg_base =3D devm_ioremap_resource(dev, mem); - if (IS_ERR(espi->reg_base)) { - ret =3D PTR_ERR(espi->reg_base); - goto err_probe; - } + if (IS_ERR(espi->reg_base)) + return PTR_ERR(espi->reg_base); =20 /* Register for SPI Interrupt */ ret =3D devm_request_irq(dev, irq, fsl_espi_irq, 0, "fsl_espi", espi); if (ret) - goto err_probe; + return ret; =20 fsl_espi_init_regs(dev, true); =20 @@ -732,8 +729,7 @@ static int fsl_espi_probe(struct device *dev, struct re= source *mem, pm_runtime_put_noidle(dev); pm_runtime_disable(dev); pm_runtime_set_suspended(dev); -err_probe: - spi_controller_put(host); + return ret; } =20 @@ -784,13 +780,9 @@ static void of_fsl_espi_remove(struct platform_device = *dev) { struct spi_controller *host =3D platform_get_drvdata(dev); =20 - spi_controller_get(host); - spi_unregister_controller(host); =20 pm_runtime_disable(&dev->dev); - - spi_controller_put(host); } =20 #ifdef CONFIG_PM_SLEEP --=20 2.53.0 From nobody Tue Jun 16 20:34:58 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 6FB333BED01; Wed, 29 Apr 2026 09:14:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; cv=none; b=Lj6E+TQyeUCRsZo6+e0kM7GtR2AO5wlXfRJ4NBrxt3tMrLkWA8IqLdV0VSzpCbu7xtC9ZcvNo9uaOVOMlK7+mO2009Y2+E0hPIMLuU0g459ZzNPKCi8afdEsry26UsGVE0Zfs5/G/pEf8tmBQQ6zSX1kActBPCeSJ+2gVOtHL8E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; c=relaxed/simple; bh=gfjTEguMoiutCVH4/SZdDjr6O5nH9rTa9Fh1KfDNv7w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IazokO/heLPuxOpSbkDqKO2T1Vlwad4HZtRttgM5i8pIxg8bb1ZCI4Jf68zO/vXwJTjyfUdn/YXR7HfdJqiWWQjWKhvq4Ve1X8oGDXfqf4DB5xI6//RkSr/D/FiUewNl8YodcNqvyAPMbUIhLSICltYNWZ6HerRcD1f957UfGco= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=KLAQ+HmK; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="KLAQ+HmK" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 040E7C2BCF6; Wed, 29 Apr 2026 09:14:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777454043; bh=gfjTEguMoiutCVH4/SZdDjr6O5nH9rTa9Fh1KfDNv7w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KLAQ+HmKN46lpDLr/qfJWlnGZzc/608gqctjdBfJnImOkMkmFf1vpANAhnDrteiI3 x6VxUAIaSlhmRyuNzUpTy0S4/7ATe4F/kwLAAE/ojkq6rQ8TlMN5op9LwaEceAQvIc hyZf2PEzvlwvpASsKhG6Hp/1vmHisigmRYe0AQYCzOaTNM5Qgb0i7rZg/tnfd8goWb I3RHoFDojQyfAXy9rLrtxieRQ8ZM4l0JWgDbKUGcjsJUmxdKOzxbIDmZ/9T7jAKsde R6h7O71j72BN+9QJKRzUS33I2w8xfvOyA45zVsIzEvE7rJKfBDNFOsqtX14eXVO2S6 o7booSRQkRLFQ== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wI0zY-00000000h2h-2P6g; Wed, 29 Apr 2026 11:14:00 +0200 From: Johan Hovold To: Mark Brown Cc: Radu Pirea , Ryan Wanner , William Zhang , Kursad Oney , Jonas Gorski , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 13/19] spi: img-spfi: switch to managed controller allocation Date: Wed, 29 Apr 2026 11:13:27 +0200 Message-ID: <20260429091333.165363-14-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260429091333.165363-1-johan@kernel.org> References: <20260429091333.165363-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Switch to device managed controller allocation to simplify error handling and to avoid having to take another reference during deregistration. Signed-off-by: Johan Hovold --- drivers/spi/spi-img-spfi.c | 40 ++++++++++++++------------------------ 1 file changed, 15 insertions(+), 25 deletions(-) diff --git a/drivers/spi/spi-img-spfi.c b/drivers/spi/spi-img-spfi.c index 57625a3ce2f2..aec724e3f824 100644 --- a/drivers/spi/spi-img-spfi.c +++ b/drivers/spi/spi-img-spfi.c @@ -530,7 +530,7 @@ static int img_spfi_probe(struct platform_device *pdev) int ret; u32 max_speed_hz; =20 - host =3D spi_alloc_host(&pdev->dev, sizeof(*spfi)); + host =3D devm_spi_alloc_host(&pdev->dev, sizeof(*spfi)); if (!host) return -ENOMEM; platform_set_drvdata(pdev, host); @@ -541,36 +541,32 @@ static int img_spfi_probe(struct platform_device *pde= v) spin_lock_init(&spfi->lock); =20 spfi->regs =3D devm_platform_get_and_ioremap_resource(pdev, 0, &res); - if (IS_ERR(spfi->regs)) { - ret =3D PTR_ERR(spfi->regs); - goto put_spi; - } + if (IS_ERR(spfi->regs)) + return PTR_ERR(spfi->regs); + spfi->phys =3D res->start; =20 spfi->irq =3D platform_get_irq(pdev, 0); - if (spfi->irq < 0) { - ret =3D spfi->irq; - goto put_spi; - } + if (spfi->irq < 0) + return spfi->irq; + ret =3D devm_request_irq(spfi->dev, spfi->irq, img_spfi_irq, IRQ_TYPE_LEVEL_HIGH, dev_name(spfi->dev), spfi); if (ret) - goto put_spi; + return ret; =20 spfi->sys_clk =3D devm_clk_get(spfi->dev, "sys"); - if (IS_ERR(spfi->sys_clk)) { - ret =3D PTR_ERR(spfi->sys_clk); - goto put_spi; - } + if (IS_ERR(spfi->sys_clk)) + return PTR_ERR(spfi->sys_clk); + spfi->spfi_clk =3D devm_clk_get(spfi->dev, "spfi"); - if (IS_ERR(spfi->spfi_clk)) { - ret =3D PTR_ERR(spfi->spfi_clk); - goto put_spi; - } + if (IS_ERR(spfi->spfi_clk)) + return PTR_ERR(spfi->spfi_clk); =20 ret =3D clk_prepare_enable(spfi->sys_clk); if (ret) - goto put_spi; + return ret; + ret =3D clk_prepare_enable(spfi->spfi_clk); if (ret) goto disable_pclk; @@ -658,8 +654,6 @@ static int img_spfi_probe(struct platform_device *pdev) clk_disable_unprepare(spfi->spfi_clk); disable_pclk: clk_disable_unprepare(spfi->sys_clk); -put_spi: - spi_controller_put(host); =20 return ret; } @@ -669,8 +663,6 @@ static void img_spfi_remove(struct platform_device *pde= v) struct spi_controller *host =3D platform_get_drvdata(pdev); struct img_spfi *spfi =3D spi_controller_get_devdata(host); =20 - spi_controller_get(host); - spi_unregister_controller(host); =20 if (spfi->tx_ch) @@ -683,8 +675,6 @@ static void img_spfi_remove(struct platform_device *pde= v) clk_disable_unprepare(spfi->spfi_clk); clk_disable_unprepare(spfi->sys_clk); } - - spi_controller_put(host); } =20 #ifdef CONFIG_PM --=20 2.53.0 From nobody Tue Jun 16 20:34:58 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 748543BED1E; Wed, 29 Apr 2026 09:14:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; cv=none; b=renowQfAZHZuurQJjABOaV2LHfCNWz5Vyu4x/+SpTdjdWZ/Fwvp77ojYLNoQipyig4BY1ounPjX48gN6vxFMenhn9YZ4CKzrzupjV6zYxq2ePMXN+9s6/7RJJb+04ikEUOXzYrmUVMiyUq45T4MHUKH2zJSNHWSWNOyPfZ2Z5RY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; c=relaxed/simple; bh=nJGFQeuxMxzw7r7T7Rr94re8fzfd2ZqVmgIy8nfVJSc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=d6JvBeOnd9za8IcVHLs29TuJ/0pQ4VwaMJMNBoLCpmxi96QQaX4+39CNoj/lU3AZBA/dUciFYgydLsRnz9id7NIdF63SvkUKFleTefKYsgq/xyXp6shnN/DLetPSVyLxt4lwNC9wx0IKnxb2CSs9PsfXPJDY64CLJol9Ytk208k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=mrAyXoS9; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="mrAyXoS9" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 01A0BC2BCC7; Wed, 29 Apr 2026 09:14:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777454043; bh=nJGFQeuxMxzw7r7T7Rr94re8fzfd2ZqVmgIy8nfVJSc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mrAyXoS9jP0+Y9AP346RYcDN8AQkN68IsnBbuLgf8ZYo0g5WE4upFUKxIJ2V3Ikqm DATJDhiXb9q9rG4+ziQtRLzmabnPIdg/HCL49+t4A+iOm7LtSmExZfSAaBsgDJG4qt cDmnp0tYzfR82DhJRPiEva0v0R42iifWvMYNaXsDWcnuB8NDmW4coCkcE1EOJEGQS5 f3J2a232+nU1AIuIe5f8j5Rn+fKlWbAybfMXil33B2N883Yq4Zsxp1JYQn5S1nVfjH oNhMEgU3dVwhokAiWl6uajSQNsIreNScdpXrT6qPYWFy0dKKP9sivv3O5YH4oHvNMD xfQNfFoab+r0w== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wI0zY-00000000h2j-2RVY; Wed, 29 Apr 2026 11:14:00 +0200 From: Johan Hovold To: Mark Brown Cc: Radu Pirea , Ryan Wanner , William Zhang , Kursad Oney , Jonas Gorski , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 14/19] spi: lantiq-ssc: switch to managed controller allocation Date: Wed, 29 Apr 2026 11:13:28 +0200 Message-ID: <20260429091333.165363-15-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260429091333.165363-1-johan@kernel.org> References: <20260429091333.165363-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Switch to device managed controller allocation to simplify error handling and to avoid having to take another reference during deregistration. Signed-off-by: Johan Hovold --- drivers/spi/spi-lantiq-ssc.c | 28 ++++++++-------------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/drivers/spi/spi-lantiq-ssc.c b/drivers/spi/spi-lantiq-ssc.c index 75b9af8cb5db..ecae50a50b14 100644 --- a/drivers/spi/spi-lantiq-ssc.c +++ b/drivers/spi/spi-lantiq-ssc.c @@ -913,7 +913,7 @@ static int lantiq_ssc_probe(struct platform_device *pde= v) =20 hwcfg =3D of_device_get_match_data(dev); =20 - host =3D spi_alloc_host(dev, sizeof(struct lantiq_ssc_spi)); + host =3D devm_spi_alloc_host(dev, sizeof(struct lantiq_ssc_spi)); if (!host) return -ENOMEM; =20 @@ -923,20 +923,16 @@ static int lantiq_ssc_probe(struct platform_device *p= dev) spi->hwcfg =3D hwcfg; platform_set_drvdata(pdev, spi); spi->regbase =3D devm_platform_ioremap_resource(pdev, 0); - if (IS_ERR(spi->regbase)) { - err =3D PTR_ERR(spi->regbase); - goto err_host_put; - } + if (IS_ERR(spi->regbase)) + return PTR_ERR(spi->regbase); =20 err =3D hwcfg->cfg_irq(pdev, spi); if (err) - goto err_host_put; + return err; =20 spi->spi_clk =3D devm_clk_get_enabled(dev, "gate"); - if (IS_ERR(spi->spi_clk)) { - err =3D PTR_ERR(spi->spi_clk); - goto err_host_put; - } + if (IS_ERR(spi->spi_clk)) + return PTR_ERR(spi->spi_clk); =20 /* * Use the old clk_get_fpi() function on Lantiq platform, till it @@ -947,10 +943,8 @@ static int lantiq_ssc_probe(struct platform_device *pd= ev) #else spi->fpi_clk =3D clk_get(dev, "freq"); #endif - if (IS_ERR(spi->fpi_clk)) { - err =3D PTR_ERR(spi->fpi_clk); - goto err_host_put; - } + if (IS_ERR(spi->fpi_clk)) + return PTR_ERR(spi->fpi_clk); =20 num_cs =3D 8; of_property_read_u32(pdev->dev.of_node, "num-cs", &num_cs); @@ -1006,8 +1000,6 @@ static int lantiq_ssc_probe(struct platform_device *p= dev) destroy_workqueue(spi->wq); err_clk_put: clk_put(spi->fpi_clk); -err_host_put: - spi_controller_put(host); =20 return err; } @@ -1016,8 +1008,6 @@ static void lantiq_ssc_remove(struct platform_device = *pdev) { struct lantiq_ssc_spi *spi =3D platform_get_drvdata(pdev); =20 - spi_controller_get(spi->host); - spi_unregister_controller(spi->host); =20 lantiq_ssc_writel(spi, 0, LTQ_SPI_IRNEN); @@ -1028,8 +1018,6 @@ static void lantiq_ssc_remove(struct platform_device = *pdev) =20 destroy_workqueue(spi->wq); clk_put(spi->fpi_clk); - - spi_controller_put(spi->host); } =20 static struct platform_driver lantiq_ssc_driver =3D { --=20 2.53.0 From nobody Tue Jun 16 20:34:58 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 942043BFE38; Wed, 29 Apr 2026 09:14:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; cv=none; b=GkIkk8S7Sn+tAhH+z4uuvhI6pVDY5tcycVoAZzCnTiKqYtciL3quv2FDPc3+jTZJPCC+zqs1/bjtmsHCtUN8eF8EUfzJg4lL4Yi8jnxBd/aLzkBw9MqNawQp/Ay23cEaBgA/uEh13YF9pqtJoLp6XTzo1v2PkOw0h1svswdM+Jw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; c=relaxed/simple; bh=cm6m0GuyLRlBqhGRew3SkABtZJDptksWZw3TSTlu/E4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LzxqYZFA8L/k3egTZEV0O+oP4BbXOaLK2obLU1jWfHGDVsygS1Ow8VQJoiVFWs4uIyhSKvp87N7Agyqpe1dN8p6LTJZc6y5oTTnuSO9lrBROk7SZsvbVnFswKqwEz1vVW+A73hL55TTpOuhG/K1aGXdAEVZKwX8ZIdxtFPB60gQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=tAorugjS; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="tAorugjS" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 17FC3C2BD01; Wed, 29 Apr 2026 09:14:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777454043; bh=cm6m0GuyLRlBqhGRew3SkABtZJDptksWZw3TSTlu/E4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tAorugjSFoo6DDA05FhE9IDDf3uRCBUXa3rtr5IpvXog/6Qps109uYSfkW713bcD6 ihtIKU51r8Y8iVfS0n4xU75zN5IEJGLps9XZFclohWIjjGAjcEE0EdRjQfy8F1+49x +9jEWjy4hKP5uReMJQsNYrn0OeG5M3Yz2veQrwt66h8tYY3p5qPYEwWClWpQDOv4K8 x8/Xk5so08IZOvP4HPtstdOf3tCswLGPOSWwiLhX+EWreyX32cTD1Mfk0SVBxFzqvz TIMLh+Vs7IdotfxuKJpzqLH1GOVhdmq5u5uTrtV3MJm5nrLHJ0h4pwFwLVHv8InJ8y Juz1efcfbZLgg== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wI0zY-00000000h2l-2UKO; Wed, 29 Apr 2026 11:14:00 +0200 From: Johan Hovold To: Mark Brown Cc: Radu Pirea , Ryan Wanner , William Zhang , Kursad Oney , Jonas Gorski , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 15/19] spi: meson-spicc: switch to managed controller allocation Date: Wed, 29 Apr 2026 11:13:29 +0200 Message-ID: <20260429091333.165363-16-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260429091333.165363-1-johan@kernel.org> References: <20260429091333.165363-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Switch to device managed controller allocation to simplify error handling and to avoid having to take another reference during deregistration. Signed-off-by: Johan Hovold --- drivers/spi/spi-meson-spicc.c | 43 +++++++++++------------------------ 1 file changed, 13 insertions(+), 30 deletions(-) diff --git a/drivers/spi/spi-meson-spicc.c b/drivers/spi/spi-meson-spicc.c index b80f9f457b66..8ad2ad0c97e2 100644 --- a/drivers/spi/spi-meson-spicc.c +++ b/drivers/spi/spi-meson-spicc.c @@ -982,7 +982,7 @@ static int meson_spicc_probe(struct platform_device *pd= ev) struct meson_spicc_device *spicc; int ret, irq; =20 - host =3D spi_alloc_host(&pdev->dev, sizeof(*spicc)); + host =3D devm_spi_alloc_host(&pdev->dev, sizeof(*spicc)); if (!host) { dev_err(&pdev->dev, "host allocation failed\n"); return -ENOMEM; @@ -993,8 +993,7 @@ static int meson_spicc_probe(struct platform_device *pd= ev) spicc->data =3D of_device_get_match_data(&pdev->dev); if (!spicc->data) { dev_err(&pdev->dev, "failed to get match data\n"); - ret =3D -EINVAL; - goto out_host; + return -EINVAL; } =20 spicc->pdev =3D pdev; @@ -1005,8 +1004,7 @@ static int meson_spicc_probe(struct platform_device *= pdev) spicc->base =3D devm_platform_ioremap_resource(pdev, 0); if (IS_ERR(spicc->base)) { dev_err(&pdev->dev, "io resource mapping failed\n"); - ret =3D PTR_ERR(spicc->base); - goto out_host; + return PTR_ERR(spicc->base); } =20 /* Set master mode and enable controller */ @@ -1017,39 +1015,33 @@ static int meson_spicc_probe(struct platform_device= *pdev) writel_relaxed(0, spicc->base + SPICC_INTREG); =20 irq =3D platform_get_irq(pdev, 0); - if (irq < 0) { - ret =3D irq; - goto out_host; - } + if (irq < 0) + return irq; =20 ret =3D devm_request_irq(&pdev->dev, irq, meson_spicc_irq, 0, NULL, spicc); if (ret) { dev_err(&pdev->dev, "irq request failed\n"); - goto out_host; + return ret; } =20 spicc->core =3D devm_clk_get_enabled(&pdev->dev, "core"); if (IS_ERR(spicc->core)) { dev_err(&pdev->dev, "core clock request failed\n"); - ret =3D PTR_ERR(spicc->core); - goto out_host; + return PTR_ERR(spicc->core); } =20 if (spicc->data->has_pclk) { spicc->pclk =3D devm_clk_get_enabled(&pdev->dev, "pclk"); if (IS_ERR(spicc->pclk)) { dev_err(&pdev->dev, "pclk clock request failed\n"); - ret =3D PTR_ERR(spicc->pclk); - goto out_host; + return PTR_ERR(spicc->pclk); } } =20 spicc->pinctrl =3D devm_pinctrl_get(&pdev->dev); - if (IS_ERR(spicc->pinctrl)) { - ret =3D PTR_ERR(spicc->pinctrl); - goto out_host; - } + if (IS_ERR(spicc->pinctrl)) + return PTR_ERR(spicc->pinctrl); =20 device_reset_optional(&pdev->dev); =20 @@ -1070,43 +1062,34 @@ static int meson_spicc_probe(struct platform_device= *pdev) ret =3D meson_spicc_pow2_clk_init(spicc); if (ret) { dev_err(&pdev->dev, "pow2 clock registration failed\n"); - goto out_host; + return ret; } =20 if (spicc->data->has_enhance_clk_div) { ret =3D meson_spicc_enh_clk_init(spicc); if (ret) { dev_err(&pdev->dev, "clock registration failed\n"); - goto out_host; + return ret; } } =20 ret =3D spi_register_controller(host); if (ret) { dev_err(&pdev->dev, "spi registration failed\n"); - goto out_host; + return ret; } =20 return 0; - -out_host: - spi_controller_put(host); - - return ret; } =20 static void meson_spicc_remove(struct platform_device *pdev) { struct meson_spicc_device *spicc =3D platform_get_drvdata(pdev); =20 - spi_controller_get(spicc->host); - spi_unregister_controller(spicc->host); =20 /* Disable SPI */ writel(0, spicc->base + SPICC_CONREG); - - spi_controller_put(spicc->host); } =20 static const struct meson_spicc_data meson_spicc_gx_data =3D { --=20 2.53.0 From nobody Tue Jun 16 20:34:58 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 70E8D3BED16; Wed, 29 Apr 2026 09:14:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; cv=none; b=AiMy40NZoIduaS99c6QMcXa2JhLJ3rsrTQjXSe3vbe4nSDBO7u4hXEUeRXLAOx3sCHg62m9JhKXLMqgsXjnAsmfSSXOVIskfSkAwCSUmcdjLX7qlOn5cdi0w9mfE5JNCsd2IGMCGE5vrcWroMYKkmiRb0LE14+xWPpqrRQinPxw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; c=relaxed/simple; bh=9ks0tIXQVv0GEMmjzFDCbTIyASIoMPHlGN+xS+DhGaM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rKxCYxwChI74fcZQpEEpuvEAEAkzgsI0hBzPYhZZQaducJfySq6sjut+VQy9q7JetXAatO+SOL4EeVdrzjyVLpGzTBCBR/uCddAkO6EBx5O1Xqc3aZSBEwYxFbyLPo1UDqimU9PQo3IC+oyiTofy5IJk+/6AwelCvYDBKpcsMFc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=c3s1zra/; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="c3s1zra/" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0D2C1C2BCFB; Wed, 29 Apr 2026 09:14:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777454043; bh=9ks0tIXQVv0GEMmjzFDCbTIyASIoMPHlGN+xS+DhGaM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=c3s1zra/m0TQB1pH07JNgZ2XAzu8irJe+hw2jCdNEx4x6Xu7EGLlY3p0pueGXAIXI ZECM6A2KZrnEjzms7ySscYY7+6hBnHv88PI/HQY3R2I70OjGcIPH6phNBHju8fMpkK M+SZ6FAamRgSDlffk1nFLaumIQDvvyIyBg1s2lZnMN/ux8jP8ngqLZfSvGYuNojUb3 BGhXOHQWubgbMSXkSIu0Rjj3N4WNJ+nIRhXEBWr6eKmhtDUSv6Qu25utD/5OCgqPyC kXx/kOHxXteznJISPxu9yY0kCQdSmEAqtgnqqvbHafYWGW4YHgI9lVyPvVpuHsSC+5 X/zu28MHdWE/A== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wI0zY-00000000h2n-2WoV; Wed, 29 Apr 2026 11:14:00 +0200 From: Johan Hovold To: Mark Brown Cc: Radu Pirea , Ryan Wanner , William Zhang , Kursad Oney , Jonas Gorski , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 16/19] spi: mxs: switch to managed controller allocation Date: Wed, 29 Apr 2026 11:13:30 +0200 Message-ID: <20260429091333.165363-17-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260429091333.165363-1-johan@kernel.org> References: <20260429091333.165363-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Switch to device managed controller allocation to simplify error handling and to avoid having to take another reference during deregistration. Signed-off-by: Johan Hovold --- drivers/spi/spi-mxs.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/drivers/spi/spi-mxs.c b/drivers/spi/spi-mxs.c index 0164e04d59a1..fda1d260b296 100644 --- a/drivers/spi/spi-mxs.c +++ b/drivers/spi/spi-mxs.c @@ -563,7 +563,7 @@ static int mxs_spi_probe(struct platform_device *pdev) if (ret) clk_freq =3D clk_freq_default; =20 - host =3D spi_alloc_host(&pdev->dev, sizeof(*spi)); + host =3D devm_spi_alloc_host(&pdev->dev, sizeof(*spi)); if (!host) return -ENOMEM; =20 @@ -589,13 +589,12 @@ static int mxs_spi_probe(struct platform_device *pdev) ret =3D devm_request_irq(&pdev->dev, irq_err, mxs_ssp_irq_handler, 0, dev_name(&pdev->dev), ssp); if (ret) - goto out_host_free; + return ret; =20 ssp->dmach =3D dma_request_chan(&pdev->dev, "rx-tx"); if (IS_ERR(ssp->dmach)) { dev_err(ssp->dev, "Failed to request DMA\n"); - ret =3D PTR_ERR(ssp->dmach); - goto out_host_free; + return PTR_ERR(ssp->dmach); } =20 pm_runtime_enable(ssp->dev); @@ -635,8 +634,7 @@ static int mxs_spi_probe(struct platform_device *pdev) pm_runtime_disable(ssp->dev); out_dma_release: dma_release_channel(ssp->dmach); -out_host_free: - spi_controller_put(host); + return ret; } =20 @@ -650,8 +648,6 @@ static void mxs_spi_remove(struct platform_device *pdev) spi =3D spi_controller_get_devdata(host); ssp =3D &spi->ssp; =20 - spi_controller_get(host); - spi_unregister_controller(host); =20 pm_runtime_disable(&pdev->dev); @@ -659,8 +655,6 @@ static void mxs_spi_remove(struct platform_device *pdev) mxs_spi_runtime_suspend(&pdev->dev); =20 dma_release_channel(ssp->dmach); - - spi_controller_put(host); } =20 static struct platform_driver mxs_spi_driver =3D { --=20 2.53.0 From nobody Tue Jun 16 20:34:58 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 941043BFE21; Wed, 29 Apr 2026 09:14:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; cv=none; b=J06NXBS678ZdsVtszm0KKCLWpftenZFoOHraz46vKiWNVpw/uLB4XsEQp/Jr3O0vBfwbw/QOj1+0hqF2PEx9VvuYC710QTw2y6hEubG0L+sY5HWAoq3AfH79XJKLjzezOBOyu76N6itHbulD7+/1yxQam3y/GVs+CDnIqqrlgjY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; c=relaxed/simple; bh=5kVNhoS1rCBF1MFLTvrHz0vKfdGlRU+p21hVgX4gDEU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dufFrabvpsgEZtlNoSjo6WmWQ9Ta7hgOFWujOZqx+TE9Y0F0GNzxuXXtFUd2Y/irrPO4ryQ21zKtPxcHAwe+O0CUAvITqdSTKbmcCctSBCs+hRSgzTCaG7jzNAv1zvZ99bHWbdiFTZ7cYcEY/Ukpk27uGTZpULPPyWdxbBSRJPA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=eY8GGD8H; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="eY8GGD8H" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0FE3DC2BD00; Wed, 29 Apr 2026 09:14:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777454043; bh=5kVNhoS1rCBF1MFLTvrHz0vKfdGlRU+p21hVgX4gDEU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=eY8GGD8HIk4u1X/uBBmxa8w85OtdVf5Y/nIoazbHag7iPTt3D+mFYyXeZJdTZMinu ErpVNBq7q9/IOCqgb/foo+OfIlCKE8j80oDDxtAa1uR5srcO4netPnAOsf289qHVyT nSTsbVVxf47vfOVny+kNQxywDBv5SIGOebm35A8PvQVxmgs8Wq27b/UdX5SqeaLrmM ypU6HDjFNI/khX+KjHfXrPVlN+H6XESeeRKCfN414TeWPEctT5WUfN5QQQzYql+TlT xJU1eSOo9RFwqy/popOlsmovCBeGNfVR58pAvyh/1F/LR8jsl/znjNbjBGhtwVZqro 4AutZGvJw80TA== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wI0zY-00000000h2p-2ZEj; Wed, 29 Apr 2026 11:14:00 +0200 From: Johan Hovold To: Mark Brown Cc: Radu Pirea , Ryan Wanner , William Zhang , Kursad Oney , Jonas Gorski , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 17/19] spi: npcm-pspi: switch to managed controller allocation Date: Wed, 29 Apr 2026 11:13:31 +0200 Message-ID: <20260429091333.165363-18-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260429091333.165363-1-johan@kernel.org> References: <20260429091333.165363-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Switch to device managed controller allocation to simplify error handling and to avoid having to take another reference during deregistration. Signed-off-by: Johan Hovold --- drivers/spi/spi-npcm-pspi.c | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/drivers/spi/spi-npcm-pspi.c b/drivers/spi/spi-npcm-pspi.c index cffef0a5977d..a437a30d636c 100644 --- a/drivers/spi/spi-npcm-pspi.c +++ b/drivers/spi/spi-npcm-pspi.c @@ -345,7 +345,7 @@ static int npcm_pspi_probe(struct platform_device *pdev) int irq; int ret; =20 - host =3D spi_alloc_host(&pdev->dev, sizeof(*priv)); + host =3D devm_spi_alloc_host(&pdev->dev, sizeof(*priv)); if (!host) return -ENOMEM; =20 @@ -356,21 +356,18 @@ static int npcm_pspi_probe(struct platform_device *pd= ev) priv->is_save_param =3D false; =20 priv->base =3D devm_platform_ioremap_resource(pdev, 0); - if (IS_ERR(priv->base)) { - ret =3D PTR_ERR(priv->base); - goto out_host_put; - } + if (IS_ERR(priv->base)) + return PTR_ERR(priv->base); =20 priv->clk =3D devm_clk_get(&pdev->dev, NULL); if (IS_ERR(priv->clk)) { dev_err(&pdev->dev, "failed to get clock\n"); - ret =3D PTR_ERR(priv->clk); - goto out_host_put; + return PTR_ERR(priv->clk); } =20 ret =3D clk_prepare_enable(priv->clk); if (ret) - goto out_host_put; + return ret; =20 irq =3D platform_get_irq(pdev, 0); if (irq < 0) { @@ -424,8 +421,6 @@ static int npcm_pspi_probe(struct platform_device *pdev) out_disable_clk: clk_disable_unprepare(priv->clk); =20 -out_host_put: - spi_controller_put(host); return ret; } =20 @@ -434,14 +429,10 @@ static void npcm_pspi_remove(struct platform_device *= pdev) struct spi_controller *host =3D platform_get_drvdata(pdev); struct npcm_pspi *priv =3D spi_controller_get_devdata(host); =20 - spi_controller_get(host); - spi_unregister_controller(host); =20 npcm_pspi_reset_hw(priv); clk_disable_unprepare(priv->clk); - - spi_controller_put(host); } =20 static const struct of_device_id npcm_pspi_match[] =3D { --=20 2.53.0 From nobody Tue Jun 16 20:34:58 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 749073BED1F; Wed, 29 Apr 2026 09:14:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; cv=none; b=FItnW8eDM+viz4xVO+XxJlDo3uLpUnLM5IDDVREjlzJ8EvSz5SwU7VVj0IV/R8ybKzzhVdmsY4BzRlzTah7ejOfZOSMg1yyqygOqNmqsHakr3GUuiZLUzV+SJN18r3p6QZGXBsCYgC+vnwm0epNb/Wmd759MO7Uotxi8wARalAo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; c=relaxed/simple; bh=udOPvQqu01S/r33g68acSIYEHytGJeFyiFVks9xsMbs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=l7nN5mSFF6kA3tHRPwUWcs6bgmqxdpRRjP4XhlaZCb9/LecvL1VkdhRIp474qbWiTZsudsf46v3ULzVFohlc+y7j4Nik/3ojF+kVeJBgxPYaLxf5NllsKBg848dsyPvB2Vd0NSqgcnwpJ+gpQNaANC85L0GbB/jdey0AfiaHFHc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ghvOQuBU; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ghvOQuBU" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 105F3C4AF0D; Wed, 29 Apr 2026 09:14:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777454043; bh=udOPvQqu01S/r33g68acSIYEHytGJeFyiFVks9xsMbs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ghvOQuBUCqkgh65aQDjmmISOb3WNFxgpc/0zWo/rMBT+f8GExrOWJtLlfbt41CAj0 1gCTjNAriQo+HFPrXF6BtJrTwQIYgG9Bfx1SS25GhAc+ze8KcufqmnKJ2r4NCT+usw RT8Fb0yj4Z6kJqHPT2eHFpz+uAcOXFjuWgDEpyZsf5Or8dBXzOfVt/w2x3bNcUNFfa 4KziDLPBUbsTDsX04MpO9KSBJFdjT1ENp5YgCWApjEzSJwtvIZhQF4f98DnuInNEHe ChPq/qC23VQZvS4ilk6sF8xF1OWuazluItbeLTm/Ha0He4fyUZLyCw3gIy18tYSE40 g9+cbZTiCQPTg== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wI0zY-00000000h2r-2bdM; Wed, 29 Apr 2026 11:14:00 +0200 From: Johan Hovold To: Mark Brown Cc: Radu Pirea , Ryan Wanner , William Zhang , Kursad Oney , Jonas Gorski , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 18/19] spi: omap2-mcspi: switch to managed controller allocation Date: Wed, 29 Apr 2026 11:13:32 +0200 Message-ID: <20260429091333.165363-19-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260429091333.165363-1-johan@kernel.org> References: <20260429091333.165363-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Switch to device managed controller allocation to simplify error handling and to avoid having to take another reference during deregistration. Signed-off-by: Johan Hovold --- drivers/spi/spi-omap2-mcspi.c | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/drivers/spi/spi-omap2-mcspi.c b/drivers/spi/spi-omap2-mcspi.c index 56b30ff58771..0426adc94ee1 100644 --- a/drivers/spi/spi-omap2-mcspi.c +++ b/drivers/spi/spi-omap2-mcspi.c @@ -1484,9 +1484,9 @@ static int omap2_mcspi_probe(struct platform_device *= pdev) const struct of_device_id *match; =20 if (of_property_read_bool(node, "spi-slave")) - ctlr =3D spi_alloc_target(&pdev->dev, sizeof(*mcspi)); + ctlr =3D devm_spi_alloc_target(&pdev->dev, sizeof(*mcspi)); else - ctlr =3D spi_alloc_host(&pdev->dev, sizeof(*mcspi)); + ctlr =3D devm_spi_alloc_host(&pdev->dev, sizeof(*mcspi)); if (!ctlr) return -ENOMEM; =20 @@ -1530,10 +1530,9 @@ static int omap2_mcspi_probe(struct platform_device = *pdev) } =20 mcspi->base =3D devm_platform_get_and_ioremap_resource(pdev, 0, &r); - if (IS_ERR(mcspi->base)) { - status =3D PTR_ERR(mcspi->base); - goto free_ctlr; - } + if (IS_ERR(mcspi->base)) + return PTR_ERR(mcspi->base); + mcspi->phys =3D r->start + regs_offset; mcspi->base +=3D regs_offset; =20 @@ -1544,10 +1543,8 @@ static int omap2_mcspi_probe(struct platform_device = *pdev) mcspi->dma_channels =3D devm_kcalloc(&pdev->dev, ctlr->num_chipselect, sizeof(struct omap2_mcspi_dma), GFP_KERNEL); - if (mcspi->dma_channels =3D=3D NULL) { - status =3D -ENOMEM; - goto free_ctlr; - } + if (mcspi->dma_channels =3D=3D NULL) + return -ENOMEM; =20 for (i =3D 0; i < ctlr->num_chipselect; i++) { sprintf(mcspi->dma_channels[i].dma_rx_ch_name, "rx%d", i); @@ -1556,7 +1553,7 @@ static int omap2_mcspi_probe(struct platform_device *= pdev) status =3D omap2_mcspi_request_dma(mcspi, &mcspi->dma_channels[i]); if (status =3D=3D -EPROBE_DEFER) - goto free_ctlr; + return status; } =20 status =3D platform_get_irq(pdev, 0); @@ -1604,7 +1601,7 @@ static int omap2_mcspi_probe(struct platform_device *= pdev) pm_runtime_disable(&pdev->dev); free_ctlr: omap2_mcspi_release_dma(ctlr); - spi_controller_put(ctlr); + return status; } =20 @@ -1613,8 +1610,6 @@ static void omap2_mcspi_remove(struct platform_device= *pdev) struct spi_controller *ctlr =3D platform_get_drvdata(pdev); struct omap2_mcspi *mcspi =3D spi_controller_get_devdata(ctlr); =20 - spi_controller_get(ctlr); - spi_unregister_controller(ctlr); =20 omap2_mcspi_release_dma(ctlr); @@ -1622,8 +1617,6 @@ static void omap2_mcspi_remove(struct platform_device= *pdev) pm_runtime_dont_use_autosuspend(mcspi->dev); pm_runtime_put_sync(mcspi->dev); pm_runtime_disable(&pdev->dev); - - spi_controller_put(ctlr); } =20 /* work with hotplug and coldplug */ --=20 2.53.0 From nobody Tue Jun 16 20:34:58 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 70F253BED18; Wed, 29 Apr 2026 09:14:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; cv=none; b=lqFbu8zVoOgPTBsvydB3I4QQhCMXrMxI8k5t5LmkyY7rJLG83iDSGhWghY1BOqHxiWiZ5QyX+Q4uqNVXL+qfX2fOJIj3GQM7CG0pT+eDuVIb4ckh3si9TD1yeO1bYIJ6EVLmemFtA/004xJRVL4JS0iWSG2udvUQH9PTx3KhoeQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777454043; c=relaxed/simple; bh=Th7jOuMXosTk+gCTCfiGghylv7IKAs87fp7y7wXBqwA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qVZ6lJgGNG4O4a0RmGx6Pf2BhOxACyUR0rTn5H0yc2BIaWtRhzHuPGmEjHmt/4a+zyD50vR2UHLj4R6YcENauwPElbjx1L/XvY/YsF38bloftDKsbkUIIHydlct4drGCihnGcY/Yw9q5NrwgG08JhTUzp31lkOTUlZocdlLXJ+0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=gp6htS4i; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="gp6htS4i" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1159FC4AF0E; Wed, 29 Apr 2026 09:14:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777454043; bh=Th7jOuMXosTk+gCTCfiGghylv7IKAs87fp7y7wXBqwA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gp6htS4iNs9bvrCvDxAu4M3Fvx2bflXj1QuejAi/Id1ryQ1GyZlv0T4VPUHc2o3NV 7fkUmV+EkBpxmlxS+k+0dRXHq2Qv+6T2KCOOnH/5/ugOjRYi+dkxLWh+/ZhVEPUAvL LiM8hX7OJvZ7RW697ElEE2soSu1kLwFp3w6MRK7IZ6mFd6xx0m6uvrwVRufa/xAEDh nkfivqmY+ldBby01D1BSn7jNLmsuWx6wHK9iPcuLCmrkvJXlUcQztK9VrPRkrbJ5vK ieDZ78MsqRgQyLNl9tiGqVRJL7ixITjdbkspPKTE/ytej5bntHXWg+McEOByj1wA7I sEJlEFGyhbvWQ== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wI0zY-00000000h2t-2e71; Wed, 29 Apr 2026 11:14:00 +0200 From: Johan Hovold To: Mark Brown Cc: Radu Pirea , Ryan Wanner , William Zhang , Kursad Oney , Jonas Gorski , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 19/19] spi: orion: switch to managed controller allocation Date: Wed, 29 Apr 2026 11:13:33 +0200 Message-ID: <20260429091333.165363-20-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260429091333.165363-1-johan@kernel.org> References: <20260429091333.165363-1-johan@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Switch to device managed controller allocation to simplify error handling and to avoid having to take another reference during deregistration. Signed-off-by: Johan Hovold --- drivers/spi/spi-orion.c | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/drivers/spi/spi-orion.c b/drivers/spi/spi-orion.c index 64bf215c1804..265708a94984 100644 --- a/drivers/spi/spi-orion.c +++ b/drivers/spi/spi-orion.c @@ -651,11 +651,9 @@ static int orion_spi_probe(struct platform_device *pde= v) struct device_node *np; int status; =20 - host =3D spi_alloc_host(&pdev->dev, sizeof(*spi)); - if (host =3D=3D NULL) { - dev_dbg(&pdev->dev, "host allocation failed\n"); + host =3D devm_spi_alloc_host(&pdev->dev, sizeof(*spi)); + if (host =3D=3D NULL) return -ENOMEM; - } =20 if (pdev->id !=3D -1) host->bus_num =3D pdev->id; @@ -689,17 +687,14 @@ static int orion_spi_probe(struct platform_device *pd= ev) spi->devdata =3D devdata; =20 spi->clk =3D devm_clk_get_enabled(&pdev->dev, NULL); - if (IS_ERR(spi->clk)) { - status =3D PTR_ERR(spi->clk); - goto out; - } + if (IS_ERR(spi->clk)) + return PTR_ERR(spi->clk); =20 /* The following clock is only used by some SoCs */ spi->axi_clk =3D devm_clk_get(&pdev->dev, "axi"); - if (PTR_ERR(spi->axi_clk) =3D=3D -EPROBE_DEFER) { - status =3D -EPROBE_DEFER; - goto out; - } + if (PTR_ERR(spi->axi_clk) =3D=3D -EPROBE_DEFER) + return -EPROBE_DEFER; + if (!IS_ERR(spi->axi_clk)) clk_prepare_enable(spi->axi_clk); =20 @@ -796,8 +791,7 @@ static int orion_spi_probe(struct platform_device *pdev) pm_runtime_dont_use_autosuspend(&pdev->dev); out_rel_axi_clk: clk_disable_unprepare(spi->axi_clk); -out: - spi_controller_put(host); + return status; } =20 @@ -807,15 +801,11 @@ static void orion_spi_remove(struct platform_device *= pdev) struct spi_controller *host =3D platform_get_drvdata(pdev); struct orion_spi *spi =3D spi_controller_get_devdata(host); =20 - spi_controller_get(host); - spi_unregister_controller(host); =20 pm_runtime_get_sync(&pdev->dev); clk_disable_unprepare(spi->axi_clk); =20 - spi_controller_put(host); - pm_runtime_disable(&pdev->dev); pm_runtime_put_noidle(&pdev->dev); pm_runtime_set_suspended(&pdev->dev); --=20 2.53.0