From nobody Sat Jun 13 23:57:40 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 454803DBD7A; Tue, 5 May 2026 07:29:42 +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=1777966182; cv=none; b=orOPnytK0yxz5Wm7+g7hK8HoCG9EuCTfwLps7E4skXjZSy4/3RQXrHlaht4tbZif0UNsuAl0lrKYMCrPrRxjS6lJ973N+yGUEiZegwhQvNn3zER5KH/93P6BH2zvg8F0kFVRD6oBztOQ2/qXifdQMqufx5X8Of9TnN5jqYVCtaM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777966182; c=relaxed/simple; bh=OPKjhQeLpDmJwn/0U35NYSrlP9hF2lLUtJLVV+BfiNQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Lj59uQ6t8sWbI2QDJVimol2g+qKf+BE0vcv9wEQNRjzKE8DF4Eio3ZSNYBAXLoKydHqVsH0n/k8CPqjV41Bw3ki+qNs6tLmao21X4wM1ViJbyK0KyZsnGZe5y1KZl2hio6/5kx3z5I7FLDcuviZ+d9C+IgItVs5W6EtH2HtKZEQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ZByWqD4D; 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="ZByWqD4D" Received: by smtp.kernel.org (Postfix) with ESMTPSA id F30CBC2BCF4; Tue, 5 May 2026 07:29:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777966182; bh=OPKjhQeLpDmJwn/0U35NYSrlP9hF2lLUtJLVV+BfiNQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZByWqD4DEN/+EZCFJosAK+jdT5h0sj11VSy5zddPQ4GkRTfBYsZpTRqZ9wHIRprJ6 xf1GKEkFikpYUM5jLvRVVPk4l1IZBtXVVsVs+cYR2wVM5abIrKzOHt3+hstii8ZVdz Gi+jvK2N/m9CjmCw1TBcBhHDIIzztv6wSsIE3qgxkRg/KAjKu+jUzWiksHEpVlmSXV sDF1rAaPV6u1RoNZtbz3//MYFCIuOqy3ir4ttORiXGEnjmBQ7ANbiCCTug6JdsdLT7 Yz8U3oZVfZJMMFX/3dHHoagDe59dYI5NOJvpFeWQ+yNKb3yucdLMUr8kxxCX2kPJ2G WXrtr9hsYMWsw== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wKADr-00000002asp-2bjZ; Tue, 05 May 2026 09:29:39 +0200 From: Johan Hovold To: Mark Brown Cc: Linus Walleij , Masahisa Kojima , Jassi Brar , Laxman Dewangan , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 01/20] spi: pic32: switch to managed controller allocation Date: Tue, 5 May 2026 09:28:50 +0200 Message-ID: <20260505072909.618363-2-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260505072909.618363-1-johan@kernel.org> References: <20260505072909.618363-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-pic32.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/drivers/spi/spi-pic32.c b/drivers/spi/spi-pic32.c index 70427e529945..972128271e4b 100644 --- a/drivers/spi/spi-pic32.c +++ b/drivers/spi/spi-pic32.c @@ -752,7 +752,7 @@ static int pic32_spi_probe(struct platform_device *pdev) struct pic32_spi *pic32s; int ret; =20 - host =3D spi_alloc_host(&pdev->dev, sizeof(*pic32s)); + host =3D devm_spi_alloc_host(&pdev->dev, sizeof(*pic32s)); if (!host) return -ENOMEM; =20 @@ -761,7 +761,7 @@ static int pic32_spi_probe(struct platform_device *pdev) =20 ret =3D pic32_spi_hw_probe(pdev, pic32s); if (ret) - goto err_host; + return ret; =20 host->dev.of_node =3D pdev->dev.of_node; host->mode_bits =3D SPI_MODE_3 | SPI_MODE_0 | SPI_CS_HIGH; @@ -833,8 +833,7 @@ static int pic32_spi_probe(struct platform_device *pdev) =20 err_bailout: pic32_spi_dma_unprep(pic32s); -err_host: - spi_controller_put(host); + return ret; } =20 @@ -842,14 +841,10 @@ static void pic32_spi_remove(struct platform_device *= pdev) { struct pic32_spi *pic32s =3D platform_get_drvdata(pdev); =20 - spi_controller_get(pic32s->host); - spi_unregister_controller(pic32s->host); =20 pic32_spi_disable(pic32s); pic32_spi_dma_unprep(pic32s); - - spi_controller_put(pic32s->host); } =20 static const struct of_device_id pic32_spi_of_match[] =3D { --=20 2.53.0 From nobody Sat Jun 13 23:57:40 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 6E0AF3DDDD2; Tue, 5 May 2026 07:29:42 +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=1777966182; cv=none; b=rP6Q48fkj1OtJ7vL1rxxv4a2IIgoKuEwywChqw9PHpWicqf0tb3DFtCzcVnk3Z8j53vfCTDB5UBaHMKKRdMHHMTxpGBBq3vqE1NhjJjttsvTGScbUIZwzglpNSVozwZMoY7O54syCHhgJzC5p/XwE85OEET/oqURH2xie58wkLw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777966182; c=relaxed/simple; bh=+pDDlNoUyaMJ8nEIwN41VKXR7YFinQYO6I+LaCx+orI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=M8YYOScHPaEdN/H/rYkb3A6LK+yzDLQlvBwG2knHHuWCLHQ7c7/42ieNJl8e9KNjDGjW60J/7h0y4/TwKa5bF1tBK4Bwrh48ktIiGiD6FHBMyUkYVUpSR2VM8kLC+irnjsJDpIibzArjCvEJvyhxOURwPgWJpU2SVDD8Y/Gjwmo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=SZ+whAVN; 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="SZ+whAVN" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 08FEBC2BCFA; Tue, 5 May 2026 07:29:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777966182; bh=+pDDlNoUyaMJ8nEIwN41VKXR7YFinQYO6I+LaCx+orI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SZ+whAVNuX1lpfc8pD6g0B/WDfQvp+TZX8c05D5AwJHFtcl2M+o+e7ymCM/d/e6tV bvmT95IcrTCYpWqLtU29kQJkSLeUsbiXLrNpXcolf12A+YcTBx1mLCebZexlAIm2bh 2X5Uzc4eTkZaYjkx52AFu4B5DzzHGcseJMm3qoBkh8OjCEgMF/Xbiviyb2tQJdd3cB 0Z5xqfEKKDCR4O+fy+749dsmry87ncizrWkMWeWvIagZLfc60gvm78dc0TW+koDEN6 LXnun9XadzxeHBhuONicQJ2cU+G4cGoRnsqyLTzTEQ42g/WGvuvtvVC+CsHa21+9DZ b/ozdGcKxoAaA== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wKADr-00000002asr-2em6; Tue, 05 May 2026 09:29:39 +0200 From: Johan Hovold To: Mark Brown Cc: Linus Walleij , Masahisa Kojima , Jassi Brar , Laxman Dewangan , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 02/20] spi: pic32-sqi: switch to managed controller allocation Date: Tue, 5 May 2026 09:28:51 +0200 Message-ID: <20260505072909.618363-3-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260505072909.618363-1-johan@kernel.org> References: <20260505072909.618363-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-pic32-sqi.c | 28 ++++++++-------------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/drivers/spi/spi-pic32-sqi.c b/drivers/spi/spi-pic32-sqi.c index 41662992dbe5..5d3921e29461 100644 --- a/drivers/spi/spi-pic32-sqi.c +++ b/drivers/spi/spi-pic32-sqi.c @@ -572,7 +572,7 @@ static int pic32_sqi_probe(struct platform_device *pdev) struct pic32_sqi *sqi; int ret; =20 - host =3D spi_alloc_host(&pdev->dev, sizeof(*sqi)); + host =3D devm_spi_alloc_host(&pdev->dev, sizeof(*sqi)); if (!host) return -ENOMEM; =20 @@ -580,31 +580,25 @@ static int pic32_sqi_probe(struct platform_device *pd= ev) sqi->host =3D host; =20 sqi->regs =3D devm_platform_ioremap_resource(pdev, 0); - if (IS_ERR(sqi->regs)) { - ret =3D PTR_ERR(sqi->regs); - goto err_free_host; - } + if (IS_ERR(sqi->regs)) + return PTR_ERR(sqi->regs); =20 /* irq */ sqi->irq =3D platform_get_irq(pdev, 0); - if (sqi->irq < 0) { - ret =3D sqi->irq; - goto err_free_host; - } + if (sqi->irq < 0) + return sqi->irq; =20 /* clocks */ sqi->sys_clk =3D devm_clk_get_enabled(&pdev->dev, "reg_ck"); if (IS_ERR(sqi->sys_clk)) { - ret =3D PTR_ERR(sqi->sys_clk); dev_err(&pdev->dev, "no sys_clk ?\n"); - goto err_free_host; + return PTR_ERR(sqi->sys_clk); } =20 sqi->base_clk =3D devm_clk_get_enabled(&pdev->dev, "spi_ck"); if (IS_ERR(sqi->base_clk)) { - ret =3D PTR_ERR(sqi->base_clk); dev_err(&pdev->dev, "no base clk ?\n"); - goto err_free_host; + return PTR_ERR(sqi->base_clk); } =20 init_completion(&sqi->xfer_done); @@ -616,7 +610,7 @@ static int pic32_sqi_probe(struct platform_device *pdev) ret =3D ring_desc_ring_alloc(sqi); if (ret) { dev_err(&pdev->dev, "ring alloc failed\n"); - goto err_free_host; + return ret; } =20 /* install irq handlers */ @@ -656,8 +650,6 @@ static int pic32_sqi_probe(struct platform_device *pdev) err_free_ring: ring_desc_ring_free(sqi); =20 -err_free_host: - spi_controller_put(host); return ret; } =20 @@ -665,15 +657,11 @@ static void pic32_sqi_remove(struct platform_device *= pdev) { struct pic32_sqi *sqi =3D platform_get_drvdata(pdev); =20 - spi_controller_get(sqi->host); - spi_unregister_controller(sqi->host); =20 /* release resources */ free_irq(sqi->irq, sqi); ring_desc_ring_free(sqi); - - spi_controller_put(sqi->host); } =20 static const struct of_device_id pic32_sqi_of_ids[] =3D { --=20 2.53.0 From nobody Sat Jun 13 23:57:40 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 6DF333DDDD1; Tue, 5 May 2026 07:29:42 +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=1777966182; cv=none; b=VqQveuiLtyXyYbA7Ov6hWTKJQijLZJHUVh8DHEDXp8znohLXK6gD47t2PKI6pPTs59WBELGuWKNhWsz8a0Xg4b9uydhZtv7CRnBA8XF48qft7xY3njkjSzrmRDkpMInHDcWXHSqAPmNEuQmud7Q0xP98pSzXp9ME1ScuMxJxjDU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777966182; c=relaxed/simple; bh=c+R6CFjXbtXJOAEf9CQeUXizCxetpWosBkHOEcwoOCc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=X0gZtKCUUOcjIxxifyzk51Lu9l9GjhuW674EmP+tTI5I9Yc/64KaNXqwsOE3BUhP0l9prXV9o5aD6m21W3mII/dVjUM0aCmnq7tttAnxlom81c+ZlPg2J9iw2ynJdZ4ZOvjI/I7AO8I7IJ03EoaXgpRJtepMnVEh/uDQ/Ph0zhc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=scjoFFcr; 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="scjoFFcr" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0E203C2BCF7; Tue, 5 May 2026 07:29:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777966182; bh=c+R6CFjXbtXJOAEf9CQeUXizCxetpWosBkHOEcwoOCc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=scjoFFcr/mxbVZoKnaSuXw9mm+NdrM8MMz828bKtoYNluJ5S16LBtR7UCeLj4GUA3 pRAet5MoTF4wvVIfqO0UtE1WfsSYxK6HHeh8V+7mzytLx9R0e9aFKHChifYsOFLF6g 5Xn9WirxOj20piAkreoVAukqoTcwDn2JyswNSrGJ9MrSXD4MLX3ojPH27Y7DLyPIcB 72ktmTO0gzkHfgplpmjjomuRtnzRrCoDEiIELgD4G6aU+A7VS364NOcYDtsqAr0kiv HyFcnoiCWN/By01iXh2MznBPiC2iUTJrVRV7XfpEWgLPoal9bPhsBh5nfHlVpd4sy2 yrVIsb2lPSlVg== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wKADr-00000002ast-2hgS; Tue, 05 May 2026 09:29:39 +0200 From: Johan Hovold To: Mark Brown Cc: Linus Walleij , Masahisa Kojima , Jassi Brar , Laxman Dewangan , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 03/20] spi: pl022: switch to managed controller allocation Date: Tue, 5 May 2026 09:28:52 +0200 Message-ID: <20260505072909.618363-4-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260505072909.618363-1-johan@kernel.org> References: <20260505072909.618363-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 Reviewed-by: Linus Walleij --- drivers/spi/spi-pl022.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/drivers/spi/spi-pl022.c b/drivers/spi/spi-pl022.c index 9c0211f94fd0..95652df5fd09 100644 --- a/drivers/spi/spi-pl022.c +++ b/drivers/spi/spi-pl022.c @@ -1868,7 +1868,7 @@ static int pl022_probe(struct amba_device *adev, cons= t struct amba_id *id) } =20 /* Allocate host with space for data */ - host =3D spi_alloc_host(dev, sizeof(struct pl022)); + host =3D devm_spi_alloc_host(dev, sizeof(struct pl022)); if (host =3D=3D NULL) { dev_err(&adev->dev, "probe - cannot alloc SPI host\n"); return -ENOMEM; @@ -1907,7 +1907,7 @@ static int pl022_probe(struct amba_device *adev, cons= t struct amba_id *id) =20 status =3D amba_request_regions(adev, NULL); if (status) - goto err_no_ioregion; + return status; =20 pl022->phybase =3D adev->res.start; pl022->virtbase =3D devm_ioremap(dev, adev->res.start, @@ -1984,8 +1984,7 @@ static int pl022_probe(struct amba_device *adev, cons= t struct amba_id *id) err_no_clk: err_no_ioremap: amba_release_regions(adev); - err_no_ioregion: - spi_controller_put(host); + return status; } =20 @@ -1997,8 +1996,6 @@ pl022_remove(struct amba_device *adev) if (!pl022) return; =20 - spi_controller_get(pl022->host); - spi_unregister_controller(pl022->host); =20 /* @@ -2012,8 +2009,6 @@ pl022_remove(struct amba_device *adev) pl022_dma_remove(pl022); =20 amba_release_regions(adev); - - spi_controller_put(pl022->host); } =20 #ifdef CONFIG_PM_SLEEP --=20 2.53.0 From nobody Sat Jun 13 23:57:40 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 4532D3D6465; Tue, 5 May 2026 07:29:42 +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=1777966182; cv=none; b=Zd8ErQcJnl0q3xuWCqr1I+m7gdda1jeQvAH9qBdDN36w4bggX+Okvc+r1zMqU6jhF8zrMpd8Irf8j/84el6tArFQZOFfEZJkyfr69pFTCZ0TTUIJRhnjb0jQk/FHA8DBeIC1Z+dLx1CrIY7ONcFzuDFduAAC2CNApQ6N/MJHVMY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777966182; c=relaxed/simple; bh=ecfhR0DDjKPf8GZXYNeWT7z6v7gzPmEBwwbZ5X5NmfM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dQCb5cGYAWYiJJpB2NWCVoLKe15dw6RFiQdjqSNd6SjeAT/i6H+hbDbStETa8m7N2ZlMkLtbqCrqVSE9Q7+0ks1tmzJzwntA4SYF75t3FQB/vObg/Ic3ZJHvygzYVZIz96VlpYz6KO2BWZpvGQkLjJ8IroFkDjg0torgSE3NESY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=TR6defhq; 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="TR6defhq" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0410FC2BCC7; Tue, 5 May 2026 07:29:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777966182; bh=ecfhR0DDjKPf8GZXYNeWT7z6v7gzPmEBwwbZ5X5NmfM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TR6defhq4mQo0qsYt8nSFWNZktLrbqrWEeivpzFjVPGC8iwRjUmgdkb4zqSAbm7F7 GJq+aldPFOc+R+SRybt/SRDtjSavdUWzfLjUIFsYNSQWuf2BWTupoLGRro9RlKtJFa MiNqgNA68l7ELskkD6LcHzd/kLZzXOa/Qx2sEdVxE3rYRkNNtkur4+yoGUj7ViGj0U Ber4OYWcBvsUC57JW3u7C+Hce5A9ufOexmQ2ouhDjBt/nBncsXSDHGUv4bEiyfXt8u db/jQjbXpBOYy67Zfbr1qTPaEuCJv/dt1h50YDwWD2Cen29YRugaGnHq38CpCsfbYT 76TRpkUeRTyng== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wKADr-00000002asv-2k9j; Tue, 05 May 2026 09:29:39 +0200 From: Johan Hovold To: Mark Brown Cc: Linus Walleij , Masahisa Kojima , Jassi Brar , Laxman Dewangan , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 04/20] spi: qup: switch to managed controller allocation Date: Tue, 5 May 2026 09:28:53 +0200 Message-ID: <20260505072909.618363-5-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260505072909.618363-1-johan@kernel.org> References: <20260505072909.618363-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-qup.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/drivers/spi/spi-qup.c b/drivers/spi/spi-qup.c index 45d9b4cb75e4..4df01ef2e662 100644 --- a/drivers/spi/spi-qup.c +++ b/drivers/spi/spi-qup.c @@ -1071,11 +1071,9 @@ static int spi_qup_probe(struct platform_device *pde= v) if (ret && ret !=3D -ENODEV) return dev_err_probe(dev, ret, "invalid OPP table\n"); =20 - host =3D spi_alloc_host(dev, sizeof(struct spi_qup)); - if (!host) { - dev_err(dev, "cannot allocate host\n"); + host =3D devm_spi_alloc_host(dev, sizeof(struct spi_qup)); + if (!host) return -ENOMEM; - } =20 /* use num-cs unless not present or out of range */ if (of_property_read_u32(dev->of_node, "num-cs", &num_cs) || @@ -1108,7 +1106,7 @@ static int spi_qup_probe(struct platform_device *pdev) =20 ret =3D spi_qup_init_dma(host, res->start); if (ret =3D=3D -EPROBE_DEFER) - goto error; + return ret; else if (!ret) host->can_dma =3D spi_qup_can_dma; =20 @@ -1206,8 +1204,7 @@ static int spi_qup_probe(struct platform_device *pdev) clk_disable_unprepare(iclk); error_dma: spi_qup_release_dma(host); -error: - spi_controller_put(host); + return ret; } =20 @@ -1320,8 +1317,6 @@ static void spi_qup_remove(struct platform_device *pd= ev) struct spi_qup *controller =3D spi_controller_get_devdata(host); int ret; =20 - spi_controller_get(host); - spi_unregister_controller(host); =20 ret =3D pm_runtime_get_sync(&pdev->dev); @@ -1343,8 +1338,6 @@ static void spi_qup_remove(struct platform_device *pd= ev) =20 pm_runtime_put_noidle(&pdev->dev); pm_runtime_disable(&pdev->dev); - - spi_controller_put(host); } =20 static const struct of_device_id spi_qup_dt_match[] =3D { --=20 2.53.0 From nobody Sat Jun 13 23:57:40 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 6D4BC3DDDC3; Tue, 5 May 2026 07:29:42 +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=1777966182; cv=none; b=I9KxQgVr4Pbvu+WIaRaN4zigMNy5ReseVbKkwgFoMaJMePnIiWdIZYyL/vl+EsEocYRsAr2mw46akw76wAZzzixq3HXtpSXHNfD9WZ275Quwa18j1dBdvDxi7Ajvwpf40GDAXSYsQF4x27oUc6ACyKm12WBkipIKra+Jy0kYw64= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777966182; c=relaxed/simple; bh=NrO9PilAApo4fMJbaPo7DTWDgUTwAaMZums3CX0M/Yw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=n9fBXFLWUqUR6vODGdhgyEoBFS5VBrAppD2OlCNyGkiQaoRmLe2VY5qHmEGeYTLDN5xGoWhuenCczrrwvFrzkNuie5Rhptb3pPmEz+Qq9G7Cq184/F26JDWyoAhTGImpdSuYuBBuqM8l8cb2AicFzHjsQI9Ze9XLVkhmBYttoBQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=HlhsUdE1; 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="HlhsUdE1" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0B91EC2BCFB; Tue, 5 May 2026 07:29:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777966182; bh=NrO9PilAApo4fMJbaPo7DTWDgUTwAaMZums3CX0M/Yw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HlhsUdE1ccIj6aqBZlSKUgEaph5Uvx4XLPGgzdZ0UL9m7Xk1Da+M0mLAuvhB4pb+d OEu96LU86cf+2joffrK5SNhDABuXMQyfnLJISM8KENCdWVFzdvWF4m+7Jq+bfnw8T1 /Cht9UP49//1NEC6wrMARj9rfhgeALGejcAc9pcqH7zzjolrENMvmMYM2ItcokOwca 8NxJMpxdqOQrjM1lH52M8E8oRBEsk7E318edrKVd4qgcxsTr80rf/9AWtB757/OHoQ GBxEAF/+ZR6NXF7PQ55aPx4N7/zfqFvke6P/11WAEwz0lYf3d03EWZ16sGmg+nLNGX /YwQ+3HbL7X4w== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wKADr-00000002asx-2mTj; Tue, 05 May 2026 09:29:39 +0200 From: Johan Hovold To: Mark Brown Cc: Linus Walleij , Masahisa Kojima , Jassi Brar , Laxman Dewangan , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 05/20] spi: rspi: switch to managed controller allocation Date: Tue, 5 May 2026 09:28:54 +0200 Message-ID: <20260505072909.618363-6-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260505072909.618363-1-johan@kernel.org> References: <20260505072909.618363-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-rspi.c | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/drivers/spi/spi-rspi.c b/drivers/spi/spi-rspi.c index a8180dece716..951e9a8af547 100644 --- a/drivers/spi/spi-rspi.c +++ b/drivers/spi/spi-rspi.c @@ -1171,14 +1171,10 @@ static void rspi_remove(struct platform_device *pde= v) { struct rspi_data *rspi =3D platform_get_drvdata(pdev); =20 - spi_controller_get(rspi->ctlr); - spi_unregister_controller(rspi->ctlr); =20 rspi_release_dma(rspi->ctlr); pm_runtime_disable(&pdev->dev); - - spi_controller_put(rspi->ctlr); } =20 static const struct spi_ops rspi_ops =3D { @@ -1294,7 +1290,7 @@ static int rspi_probe(struct platform_device *pdev) const struct spi_ops *ops; unsigned long clksrc; =20 - ctlr =3D spi_alloc_host(&pdev->dev, sizeof(struct rspi_data)); + ctlr =3D devm_spi_alloc_host(&pdev->dev, sizeof(struct rspi_data)); if (ctlr =3D=3D NULL) return -ENOMEM; =20 @@ -1302,7 +1298,7 @@ static int rspi_probe(struct platform_device *pdev) if (ops) { ret =3D rspi_parse_dt(&pdev->dev, ctlr); if (ret) - goto error1; + return ret; } else { ops =3D (struct spi_ops *)pdev->id_entry->driver_data; ctlr->num_chipselect =3D 2; /* default */ @@ -1314,16 +1310,13 @@ static int rspi_probe(struct platform_device *pdev) rspi->ctlr =3D ctlr; =20 rspi->addr =3D devm_platform_get_and_ioremap_resource(pdev, 0, &res); - if (IS_ERR(rspi->addr)) { - ret =3D PTR_ERR(rspi->addr); - goto error1; - } + if (IS_ERR(rspi->addr)) + return PTR_ERR(rspi->addr); =20 rspi->clk =3D devm_clk_get(&pdev->dev, NULL); if (IS_ERR(rspi->clk)) { dev_err(&pdev->dev, "cannot get clock\n"); - ret =3D PTR_ERR(rspi->clk); - goto error1; + return PTR_ERR(rspi->clk); } =20 rspi->pdev =3D pdev; @@ -1396,8 +1389,6 @@ static int rspi_probe(struct platform_device *pdev) rspi_release_dma(ctlr); error2: pm_runtime_disable(&pdev->dev); -error1: - spi_controller_put(ctlr); =20 return ret; } --=20 2.53.0 From nobody Sat Jun 13 23:57:40 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 453C23DBD5D; Tue, 5 May 2026 07:29:42 +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=1777966182; cv=none; b=k7PCW9H46G/o/HDHRFs4iJ9PSrFcVfkzJcGToSrbNr6fq7+TCGspER3h4th0ZVWZwGR1ABMlRMg7KZuagMdjWwCS5VrcYi38uwFcxVZ6nj1FKrtix4Sy5DfAZZhxzfHvH40Ou94664mF2+w/IJezpo1Czk8aMtCyCOtFg3FGJvo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777966182; c=relaxed/simple; bh=/s3D2tA7ijRf5FaUdeNWidN8ycA+zffWi7hwdzUYjNM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=RmUhUgXmfUx1uUk/TuAXS5hpwV2Viww4ViSuQeR9JfaSEGZZKE0sMeZ77fY6x+VbK8pd0KyucMb4y82QbN4trXA/PJ6gCbcEqdp1MKAToH3kX9go6QKCA7/Ehtk0B7s+J6y/LJ8RKulV3ocdshKTikEKeBafGSbxRBcbVlwPTaQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=eb5K1DTI; 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="eb5K1DTI" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 01735C2BCF5; Tue, 5 May 2026 07:29:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777966182; bh=/s3D2tA7ijRf5FaUdeNWidN8ycA+zffWi7hwdzUYjNM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=eb5K1DTIIRuLfnCRFq/EYJqiO572Y77FDnVaygnztZbZS3+PrOlo2GC/lZ+k+hwaW rmKAKYToA1rS6iHR4aoHA5htQsnDsad4eZrSEChSQOBpJVfqIBkcLSBj373ik5vydH 8XkWv7YXKCXe2AcLpdm6EcbenapMwcphyznV2dqsHhtBjDnE6pJwbharxmbvPuL0os X9C20bSW2nD1Mful/H12joLVWHcO26kdYOWzEzwrAQeo7JCWgv7XhD8CirfhElCeAW CuB2WG9aup8XPl/tCZBVUKdr9FiS50fycdjp1SmsrwsQ92AGmvEcf7tHFEK0A9UFmc 9ha/XlO6oq3kw== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wKADr-00000002asz-2ojd; Tue, 05 May 2026 09:29:39 +0200 From: Johan Hovold To: Mark Brown Cc: Linus Walleij , Masahisa Kojima , Jassi Brar , Laxman Dewangan , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 06/20] spi: sh-hspi: switch to managed controller allocation Date: Tue, 5 May 2026 09:28:55 +0200 Message-ID: <20260505072909.618363-7-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260505072909.618363-1-johan@kernel.org> References: <20260505072909.618363-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-sh-hspi.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/drivers/spi/spi-sh-hspi.c b/drivers/spi/spi-sh-hspi.c index 1e3ca718ca73..f840467cfdb2 100644 --- a/drivers/spi/spi-sh-hspi.c +++ b/drivers/spi/spi-sh-hspi.c @@ -224,15 +224,14 @@ static int hspi_probe(struct platform_device *pdev) return -EINVAL; } =20 - ctlr =3D spi_alloc_host(&pdev->dev, sizeof(*hspi)); + ctlr =3D devm_spi_alloc_host(&pdev->dev, sizeof(*hspi)); if (!ctlr) return -ENOMEM; =20 clk =3D clk_get(&pdev->dev, NULL); if (IS_ERR(clk)) { dev_err(&pdev->dev, "couldn't get clock\n"); - ret =3D -EINVAL; - goto error0; + return PTR_ERR(clk); } =20 hspi =3D spi_controller_get_devdata(ctlr); @@ -269,8 +268,6 @@ static int hspi_probe(struct platform_device *pdev) pm_runtime_disable(&pdev->dev); error1: clk_put(clk); - error0: - spi_controller_put(ctlr); =20 return ret; } @@ -279,15 +276,11 @@ static void hspi_remove(struct platform_device *pdev) { struct hspi_priv *hspi =3D platform_get_drvdata(pdev); =20 - spi_controller_get(hspi->ctlr); - spi_unregister_controller(hspi->ctlr); =20 pm_runtime_disable(&pdev->dev); =20 clk_put(hspi->clk); - - spi_controller_put(hspi->ctlr); } =20 static const struct of_device_id hspi_of_match[] =3D { --=20 2.53.0 From nobody Sat Jun 13 23:57:40 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 6D3B73DDDBE; Tue, 5 May 2026 07:29:42 +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=1777966182; cv=none; b=dXF/5d6HEwUaHiyFW47P9YKgRnqM08y8ugsqkrvq31gdUdzMIum8gOfF+ExBuXAI7UAlEhYrxnTwHpr/jWGEW9ybbEVRaf4zLKfo1kPxADTzVdIjf9aaU2jw922WOxPcK1Ah74AGgYxtvO3ZpFQILKC5YxAMbYZsmM1vqg9sIvw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777966182; c=relaxed/simple; bh=8Zq3sbnN/60Pokd899geEsRfwmJHRBlxN3C6i2/zPqA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=F7FAfNm93gfXcOF0RzM11IS3Gf/mgbLGs4MPwJnFA3ZP9nZxjA7YkySXte4I/uB14OLnvNbcs20yOC+Lw/2rzeuwFAKI09vxXmdQqKGAlbnUszxqTyMd0jJsYg469yslJR8qHjvgTPkWtSBuSPADrsLGKyDzaLJou3RrbHpc+k0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=W0Sd9VUG; 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="W0Sd9VUG" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 12FD1C2BCFC; Tue, 5 May 2026 07:29:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777966182; bh=8Zq3sbnN/60Pokd899geEsRfwmJHRBlxN3C6i2/zPqA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=W0Sd9VUGXFRGq7nZeg0/vT2z+sD+o0QkNM9+5y7ftSTLSkvSat1UPpAwjpBVKF0rj ORsrTKv3vvET1HXfmAwVLeqZPPgNdvKqtoi/f6GWGufdS5kIEMNvDkEw8cXBF2gIPG vut3KntGiOFGtG05V9gwEnOYq6Ra7NvSBlOvlsHwN7+JZAULP40YVhQmihV07/ezY7 SS9kcRpFRNgZ6kbLdMPZAD1ONHZEMl6ZIDBx/1R2SknVcT6W+40U7QvKXMn9jS6iq9 JPRcgT+Eth9X86NNSElaZrfE4SakDsWjDNC0pIUWkxCKeBJEJ7vzkBcwwGypqOx32l XqxSsLP55pl7w== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wKADr-00000002at1-2rBs; Tue, 05 May 2026 09:29:39 +0200 From: Johan Hovold To: Mark Brown Cc: Linus Walleij , Masahisa Kojima , Jassi Brar , Laxman Dewangan , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 07/20] spi: sh-msiof: switch to managed controller allocation Date: Tue, 5 May 2026 09:28:56 +0200 Message-ID: <20260505072909.618363-8-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260505072909.618363-1-johan@kernel.org> References: <20260505072909.618363-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-sh-msiof.c | 28 +++++++++------------------- 1 file changed, 9 insertions(+), 19 deletions(-) diff --git a/drivers/spi/spi-sh-msiof.c b/drivers/spi/spi-sh-msiof.c index f114b6313f4f..070e16bc764f 100644 --- a/drivers/spi/spi-sh-msiof.c +++ b/drivers/spi/spi-sh-msiof.c @@ -1215,9 +1215,9 @@ static int sh_msiof_spi_probe(struct platform_device = *pdev) info->dtdl =3D 200; =20 if (info->mode =3D=3D MSIOF_SPI_TARGET) - ctlr =3D spi_alloc_target(dev, sizeof(struct sh_msiof_spi_priv)); + ctlr =3D devm_spi_alloc_target(dev, sizeof(struct sh_msiof_spi_priv)); else - ctlr =3D spi_alloc_host(dev, sizeof(struct sh_msiof_spi_priv)); + ctlr =3D devm_spi_alloc_host(dev, sizeof(struct sh_msiof_spi_priv)); if (ctlr =3D=3D NULL) return -ENOMEM; =20 @@ -1234,26 +1234,21 @@ static int sh_msiof_spi_probe(struct platform_devic= e *pdev) p->clk =3D devm_clk_get(dev, NULL); if (IS_ERR(p->clk)) { dev_err(dev, "cannot get clock\n"); - ret =3D PTR_ERR(p->clk); - goto err1; + return PTR_ERR(p->clk); } =20 i =3D platform_get_irq(pdev, 0); - if (i < 0) { - ret =3D i; - goto err1; - } + if (i < 0) + return i; =20 p->mapbase =3D devm_platform_ioremap_resource(pdev, 0); - if (IS_ERR(p->mapbase)) { - ret =3D PTR_ERR(p->mapbase); - goto err1; - } + if (IS_ERR(p->mapbase)) + return PTR_ERR(p->mapbase); =20 ret =3D devm_request_irq(dev, i, sh_msiof_spi_irq, 0, dev_name(dev), p); if (ret) { dev_err(dev, "unable to request irq\n"); - goto err1; + return ret; } =20 p->pdev =3D pdev; @@ -1300,8 +1295,7 @@ static int sh_msiof_spi_probe(struct platform_device = *pdev) err2: sh_msiof_release_dma(p); pm_runtime_disable(dev); - err1: - spi_controller_put(ctlr); + return ret; } =20 @@ -1309,14 +1303,10 @@ static void sh_msiof_spi_remove(struct platform_dev= ice *pdev) { struct sh_msiof_spi_priv *p =3D platform_get_drvdata(pdev); =20 - spi_controller_get(p->ctlr); - spi_unregister_controller(p->ctlr); =20 sh_msiof_release_dma(p); pm_runtime_disable(&pdev->dev); - - spi_controller_put(p->ctlr); } =20 static const struct platform_device_id spi_driver_ids[] =3D { --=20 2.53.0 From nobody Sat Jun 13 23:57:40 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 4551E3DBD7D; Tue, 5 May 2026 07:29:42 +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=1777966182; cv=none; b=aEgda+v8VpLNsBKcBTFWIbzTRkq5353Ga3xXfsNWJs/Iwuvec7gLNIYivWahG1Vk11KpNJKn3yltYN+IUGen7KW22SHP41gOP1LI36sDbwUzobIxJYKLkAEOppiOAP+0MmBHDWvTQOOh0T1icKSOCkyrHwqitkvjxuQIFL4ezoQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777966182; c=relaxed/simple; bh=/9w8hG4PyTSVacEx8noDFd1xhAl9Ak+DT+AljUSuWSU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=d7DRdhFjyV4MdfsZfGJO0nzah3/0t2YPwVWFdwaZX9XnMKhf6sO6jLtrPblCb0Fjq2pbAUvCbaZE1MGH06KPE0TaNnboa75nUI/+HuUUNfWA3ITv/EQNANJqiKmIlT7naM1I1mVa1amX2EIJ8VvjusXA8rBbk3BXc2wk2DWX8S8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=plhoZy8V; 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="plhoZy8V" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EFA65C2BCB4; Tue, 5 May 2026 07:29:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777966182; bh=/9w8hG4PyTSVacEx8noDFd1xhAl9Ak+DT+AljUSuWSU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=plhoZy8VDovlJpNiA5FqmGsaiRjJ//VTtVYUO9o8zbkYS/nDHBocaYd+ItVCMPkZ9 oWzYrpq5FBMFhZihKnv8XTFouFKPFdGYftA1Opv3RDGF07hWIKZ6P1fQMJe+5Tpzqd xOgOTf3pjN3iLOF9ywzIAyGBHSQpHVz7h6S66aJoct18QBHbFGvomYu0jrncxd+J0v eEpekP1rDtJbxM4bV38IMDG0XQjT/sprJh0gE64B3pnfSSRzlUhXyZICUTzTlhq5dr d1TyoY6h+HDFG0f1VObmcfW6fWu2VgPpfBZOlo+cPOSLysaFaRyJ3AgVww5BOOOLWC Du33ceP3M7ZLQ== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wKADr-00000002at3-2tOE; Tue, 05 May 2026 09:29:39 +0200 From: Johan Hovold To: Mark Brown Cc: Linus Walleij , Masahisa Kojima , Jassi Brar , Laxman Dewangan , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 08/20] spi: sifive: switch to managed controller allocation Date: Tue, 5 May 2026 09:28:57 +0200 Message-ID: <20260505072909.618363-9-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260505072909.618363-1-johan@kernel.org> References: <20260505072909.618363-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-sifive.c | 39 +++++++++++---------------------------- 1 file changed, 11 insertions(+), 28 deletions(-) diff --git a/drivers/spi/spi-sifive.c b/drivers/spi/spi-sifive.c index 74a3e32fd2b5..cee4d92e46f4 100644 --- a/drivers/spi/spi-sifive.c +++ b/drivers/spi/spi-sifive.c @@ -296,7 +296,7 @@ static int sifive_spi_probe(struct platform_device *pde= v) u32 cs_bits, max_bits_per_word; struct spi_controller *host; =20 - host =3D spi_alloc_host(&pdev->dev, sizeof(struct sifive_spi)); + host =3D devm_spi_alloc_host(&pdev->dev, sizeof(struct sifive_spi)); if (!host) { dev_err(&pdev->dev, "out of memory\n"); return -ENOMEM; @@ -307,24 +307,19 @@ static int sifive_spi_probe(struct platform_device *p= dev) platform_set_drvdata(pdev, host); =20 spi->regs =3D devm_platform_ioremap_resource(pdev, 0); - if (IS_ERR(spi->regs)) { - ret =3D PTR_ERR(spi->regs); - goto put_host; - } + if (IS_ERR(spi->regs)) + return PTR_ERR(spi->regs); =20 /* Spin up the bus clock before hitting registers */ spi->clk =3D devm_clk_get_enabled(&pdev->dev, NULL); if (IS_ERR(spi->clk)) { dev_err(&pdev->dev, "Unable to find bus clock\n"); - ret =3D PTR_ERR(spi->clk); - goto put_host; + return PTR_ERR(spi->clk); } =20 irq =3D platform_get_irq(pdev, 0); - if (irq < 0) { - ret =3D irq; - goto put_host; - } + if (irq < 0) + return irq; =20 /* Optional parameters */ ret =3D @@ -339,8 +334,7 @@ static int sifive_spi_probe(struct platform_device *pde= v) =20 if (!ret && max_bits_per_word < 8) { dev_err(&pdev->dev, "Only 8bit SPI words supported by the driver\n"); - ret =3D -EINVAL; - goto put_host; + return -EINVAL; } =20 /* probe the number of CS lines */ @@ -350,15 +344,13 @@ static int sifive_spi_probe(struct platform_device *p= dev) sifive_spi_write(spi, SIFIVE_SPI_REG_CSDEF, spi->cs_inactive); if (!cs_bits) { dev_err(&pdev->dev, "Could not auto probe CS lines\n"); - ret =3D -EINVAL; - goto put_host; + return -EINVAL; } =20 num_cs =3D ilog2(cs_bits) + 1; if (num_cs > SIFIVE_SPI_MAX_CS) { dev_err(&pdev->dev, "Invalid number of spi targets\n"); - ret =3D -EINVAL; - goto put_host; + return -EINVAL; } =20 /* Define our host */ @@ -386,7 +378,7 @@ static int sifive_spi_probe(struct platform_device *pde= v) dev_name(&pdev->dev), spi); if (ret) { dev_err(&pdev->dev, "Unable to bind to interrupt\n"); - goto put_host; + return ret; } =20 dev_info(&pdev->dev, "mapped; irq=3D%d, cs=3D%d\n", @@ -395,15 +387,10 @@ static int sifive_spi_probe(struct platform_device *p= dev) ret =3D spi_register_controller(host); if (ret < 0) { dev_err(&pdev->dev, "spi_register_host failed\n"); - goto put_host; + return ret; } =20 return 0; - -put_host: - spi_controller_put(host); - - return ret; } =20 static void sifive_spi_remove(struct platform_device *pdev) @@ -411,14 +398,10 @@ static void sifive_spi_remove(struct platform_device = *pdev) struct spi_controller *host =3D platform_get_drvdata(pdev); struct sifive_spi *spi =3D spi_controller_get_devdata(host); =20 - spi_controller_get(host); - spi_unregister_controller(host); =20 /* Disable all the interrupts just in case */ sifive_spi_write(spi, SIFIVE_SPI_REG_IE, 0); - - spi_controller_put(host); } =20 static int sifive_spi_suspend(struct device *dev) --=20 2.53.0 From nobody Sat Jun 13 23:57:40 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 511833DCDBE; Tue, 5 May 2026 07:29:42 +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=1777966182; cv=none; b=uMtPP7zaTuSsT6vf6Ta0nTFuQPFWKJxj2T5e5TOHBt15annnJSyiD+mC+YlL+6SuqN/fBjdB4IIvgyKBZTuIWl+WlfqmNXj+RM5zlch77SfiruxZNnuu3ckOaXJzG6qH2pZ9rpYkBGhogsBDOvW4cY9/Yzl7/hc9Gceo2DWdZS8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777966182; c=relaxed/simple; bh=4JNZiJh6BEu5CJzOX17CyHntpumSLZXeDgoywa7k2Xw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lHyXuE0WTnLqavfdpw5evsVBU73DH7LJ1k18lp4982OYl2Cwh8LwMO1q8BCB7nYOpcICq6E0g1PTFXd6KXq2VtsiroFMVd1yfBiNy9wrtK3ST0UZ3rnpFSRphKNjwOfWaMCZQcwaDyuJiYB4ZXRl9N72bsXjnyPv6ZvWLqSF6DA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=u31f0xV3; 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="u31f0xV3" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 067BCC2BCF6; Tue, 5 May 2026 07:29:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777966182; bh=4JNZiJh6BEu5CJzOX17CyHntpumSLZXeDgoywa7k2Xw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=u31f0xV3rFYZvihme7/Pej0j4SMtyiACkHvOyVjSo2gm04DrHq4SVZMkqwRnxpqD0 23mseUejeB3J/sxOyXpG/k+XW5dHOPlA1KtUg7UfW2kqxGYjo7kEm48dYal3YhGVEX OUr03ue1Mrhw/yZ32qIFYzU25HRCpqB/CtnLB54bz/JEfUScRFAZCav+qDx7D17Hdq JtvMvIpbX8+tJ4yClyPFN+r7i694vePheH5KVZCMjVpkJB4RQfRZBnVNq7sjccy5Ci 3VqnwWcSAeP15tHaMhorZmGa9O/kjtOQ+tDivbhErJl7ms2iaa3vowkGxOtq7UkpoT BvW4FX+4tABhw== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wKADr-00000002at5-2vjY; Tue, 05 May 2026 09:29:39 +0200 From: Johan Hovold To: Mark Brown Cc: Linus Walleij , Masahisa Kojima , Jassi Brar , Laxman Dewangan , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 09/20] spi: slave-mt27xx: switch to managed controller allocation Date: Tue, 5 May 2026 09:28:58 +0200 Message-ID: <20260505072909.618363-10-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260505072909.618363-1-johan@kernel.org> References: <20260505072909.618363-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-slave-mt27xx.c | 33 ++++++++++----------------------- 1 file changed, 10 insertions(+), 23 deletions(-) diff --git a/drivers/spi/spi-slave-mt27xx.c b/drivers/spi/spi-slave-mt27xx.c index 7aedeaa5889d..e60ab4c18bed 100644 --- a/drivers/spi/spi-slave-mt27xx.c +++ b/drivers/spi/spi-slave-mt27xx.c @@ -388,11 +388,9 @@ static int mtk_spi_slave_probe(struct platform_device = *pdev) int irq, ret; const struct of_device_id *of_id; =20 - ctlr =3D spi_alloc_target(&pdev->dev, sizeof(*mdata)); - if (!ctlr) { - dev_err(&pdev->dev, "failed to alloc spi target\n"); + ctlr =3D devm_spi_alloc_target(&pdev->dev, sizeof(*mdata)); + if (!ctlr) return -ENOMEM; - } =20 ctlr->auto_runtime_pm =3D true; ctlr->mode_bits =3D SPI_CPOL | SPI_CPHA; @@ -406,8 +404,7 @@ static int mtk_spi_slave_probe(struct platform_device *= pdev) of_id =3D of_match_node(mtk_spi_slave_of_match, pdev->dev.of_node); if (!of_id) { dev_err(&pdev->dev, "failed to probe of_node\n"); - ret =3D -EINVAL; - goto err_put_ctlr; + return -EINVAL; } mdata =3D spi_controller_get_devdata(ctlr); mdata->dev_comp =3D of_id->data; @@ -420,35 +417,31 @@ static int mtk_spi_slave_probe(struct platform_device= *pdev) init_completion(&mdata->xfer_done); mdata->dev =3D &pdev->dev; mdata->base =3D devm_platform_ioremap_resource(pdev, 0); - if (IS_ERR(mdata->base)) { - ret =3D PTR_ERR(mdata->base); - goto err_put_ctlr; - } + if (IS_ERR(mdata->base)) + return PTR_ERR(mdata->base); =20 irq =3D platform_get_irq(pdev, 0); - if (irq < 0) { - ret =3D irq; - goto err_put_ctlr; - } + if (irq < 0) + return irq; =20 ret =3D devm_request_irq(&pdev->dev, irq, mtk_spi_slave_interrupt, IRQF_TRIGGER_NONE, dev_name(&pdev->dev), ctlr); if (ret) { dev_err(&pdev->dev, "failed to register irq (%d)\n", ret); - goto err_put_ctlr; + return ret; } =20 mdata->spi_clk =3D devm_clk_get(&pdev->dev, "spi"); if (IS_ERR(mdata->spi_clk)) { ret =3D PTR_ERR(mdata->spi_clk); dev_err(&pdev->dev, "failed to get spi-clk: %d\n", ret); - goto err_put_ctlr; + return ret; } =20 ret =3D clk_prepare_enable(mdata->spi_clk); if (ret < 0) { dev_err(&pdev->dev, "failed to enable spi_clk (%d)\n", ret); - goto err_put_ctlr; + return ret; } =20 pm_runtime_enable(&pdev->dev); @@ -465,8 +458,6 @@ static int mtk_spi_slave_probe(struct platform_device *= pdev) =20 err_disable_runtime_pm: pm_runtime_disable(&pdev->dev); -err_put_ctlr: - spi_controller_put(ctlr); =20 return ret; } @@ -475,13 +466,9 @@ static void mtk_spi_slave_remove(struct platform_devic= e *pdev) { struct spi_controller *ctlr =3D platform_get_drvdata(pdev); =20 - spi_controller_get(ctlr); - spi_unregister_controller(ctlr); =20 pm_runtime_disable(&pdev->dev); - - spi_controller_put(ctlr); } =20 #ifdef CONFIG_PM_SLEEP --=20 2.53.0 From nobody Sat Jun 13 23:57:40 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 6FE103CC9F3; Tue, 5 May 2026 07:29:42 +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=1777966182; cv=none; b=Znz4CfyBNOftzLf0xqZ/mbCjWS/u+iR35ZMGtM1JiVc9TzZrq8blTg3Fcsa3MVYH2SJC3pmq1P6fbsWTtPgNlhT7ozsW7dMP819Ps5FD2GtJX1O29GpQRsNSSgNv+TpruvZhAZyJPAE4zc4k8Ibv7Ncgvu+yjRBY6emQW9FV+HU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777966182; c=relaxed/simple; bh=DcBIcztv06KehyJiviadjiwViGdV/clO/R6sY+JkjLc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pJZ4lmaQtSBrvfqylskryXvZxfLOKHzc0+LsOZ64CMHXHBmeA/eiBoO73eZS12Fnu9kWgipR7gPKAGhz16fwHmkV5xGXPKtQtfyPMSEGIR9c9GCL2XFKnJQMCEJch/NAWJcWyDTDhg3D976bKvBV1Ci8cLRyTT3cGSCWOfAvv5w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=PQ/itkg0; 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="PQ/itkg0" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 138C4C2BD00; Tue, 5 May 2026 07:29:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777966182; bh=DcBIcztv06KehyJiviadjiwViGdV/clO/R6sY+JkjLc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PQ/itkg0a+lQsfmvKBmzlxv+LRNAy6+4YPW2mLAGQTD5aqiG+mnVCvnnaH5QeNXmn Lwpk1EWtTCp3KxXR2EmI8wYmfZm5KoOuf8ebdzFN1tcloLSjCd1lq69ofCa/ggZTt5 /sFUjnkyG686G7FEm1FmGzs2Onc+CUgCi+g6Mwax44k2GJzIoA9HnrgcnHpQstATdg /SfY9BhhgzKc++m2IOERdkYxVmqwea9tZd1vnTmasGPsqDXZ5PJJxs+kE0fAZWLJGl Ib7AsIRy20Tdbz25ARUuiRaIAKydHuQKrwpD6I/wFnsluyNR8vDUMqjlRdnUhln9TF Fj7sX+Dk0P4TQ== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wKADr-00000002at8-2y2m; Tue, 05 May 2026 09:29:39 +0200 From: Johan Hovold To: Mark Brown Cc: Linus Walleij , Masahisa Kojima , Jassi Brar , Laxman Dewangan , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 10/20] spi: sprd: switch to managed controller allocation Date: Tue, 5 May 2026 09:28:59 +0200 Message-ID: <20260505072909.618363-11-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260505072909.618363-1-johan@kernel.org> References: <20260505072909.618363-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-sprd.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/drivers/spi/spi-sprd.c b/drivers/spi/spi-sprd.c index fd3fd0ce122c..d27b51698dbd 100644 --- a/drivers/spi/spi-sprd.c +++ b/drivers/spi/spi-sprd.c @@ -923,16 +923,14 @@ static int sprd_spi_probe(struct platform_device *pde= v) int ret; =20 pdev->id =3D of_alias_get_id(pdev->dev.of_node, "spi"); - sctlr =3D spi_alloc_host(&pdev->dev, sizeof(*ss)); + sctlr =3D devm_spi_alloc_host(&pdev->dev, sizeof(*ss)); if (!sctlr) return -ENOMEM; =20 ss =3D spi_controller_get_devdata(sctlr); ss->base =3D devm_platform_get_and_ioremap_resource(pdev, 0, &res); - if (IS_ERR(ss->base)) { - ret =3D PTR_ERR(ss->base); - goto free_controller; - } + if (IS_ERR(ss->base)) + return PTR_ERR(ss->base); =20 ss->phy_base =3D res->start; ss->dev =3D &pdev->dev; @@ -949,15 +947,15 @@ static int sprd_spi_probe(struct platform_device *pde= v) platform_set_drvdata(pdev, sctlr); ret =3D sprd_spi_clk_init(pdev, ss); if (ret) - goto free_controller; + return ret; =20 ret =3D sprd_spi_irq_init(pdev, ss); if (ret) - goto free_controller; + return ret; =20 ret =3D sprd_spi_dma_init(pdev, ss); if (ret) - goto free_controller; + return ret; =20 ret =3D clk_prepare_enable(ss->clk); if (ret) @@ -992,8 +990,6 @@ static int sprd_spi_probe(struct platform_device *pdev) clk_disable_unprepare(ss->clk); release_dma: sprd_spi_dma_release(ss); -free_controller: - spi_controller_put(sctlr); =20 return ret; } @@ -1008,8 +1004,6 @@ static void sprd_spi_remove(struct platform_device *p= dev) if (ret < 0) dev_err(ss->dev, "failed to resume SPI controller\n"); =20 - spi_controller_get(sctlr); - spi_unregister_controller(sctlr); =20 if (ret >=3D 0) { @@ -1019,8 +1013,6 @@ static void sprd_spi_remove(struct platform_device *p= dev) } pm_runtime_put_noidle(&pdev->dev); pm_runtime_disable(&pdev->dev); - - spi_controller_put(sctlr); } =20 static int __maybe_unused sprd_spi_runtime_suspend(struct device *dev) --=20 2.53.0 From nobody Sat Jun 13 23:57:40 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 7513E3DE429; Tue, 5 May 2026 07:29:42 +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=1777966182; cv=none; b=IgdAbLERhJNhLnykLApdGbBI9VgFolatRNxnLL60N/p3JYnoqoBImi84XplA3EkRQ1gAuAXBwJ+q1oCkF+sj8JA3rHh6HraAIwE1YRALjHSNp+dLuczfkGnIRJE8mg870uY7SClXgY3vGjeHihjiLzDDNHIxDHeykFpbnpnXi+0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777966182; c=relaxed/simple; bh=pEXQoRuunLgaMXmXLufauACKIHZkbDmN+d6y6Ut3KmM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DaqvbX1mjC+5f5nzGIaQBsfZ1YqnwTvLjgRucsS28kt8IgwzlmHAUQBWJ89cUBFNCtomn6OsidwD2KxR6t2meJuhM/q0AxL11PUv+VfS0SDhomoUi2pR7MYG1hCMWDkNrwpdWfRXj8GGvY/RaB5F9AXjO6yLl1QUOfFfKvw3zgI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=IjnYYtQ2; 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="IjnYYtQ2" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 17485C2BCFF; Tue, 5 May 2026 07:29:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777966182; bh=pEXQoRuunLgaMXmXLufauACKIHZkbDmN+d6y6Ut3KmM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IjnYYtQ2c76SvGuiQ2V2v0rurX68zUFXCLXGijdVhXT3bZ2GxloJrfddN3+3Eu5Jm d5UpQOkDuvUbNuSOAN8ON/PpJlRFOxymVOcF9DeyIwPkEhOwfb8brBGhI7CkIQIFnu k7UYwzju/Ed0sDWo/QHFIMVI0IWGzVFsmt+2ggG+l5poc8B8sjl2urU2ZKuUJ3pPbk KrZ32BZKkLWvVkgahs29ucvWCnKoHMYqj+KiC3qpbBB07x5JcWF6pLF5Uu1AuRbYqP 9roqOFbdcnfaH8frKy/rcZsEfabqi8LXJg5FyLOFJYoSwe7rl7rvTM8FHs8LNowfFA WUEd7Upr1Jzcg== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wKADr-00000002atA-30Kp; Tue, 05 May 2026 09:29:39 +0200 From: Johan Hovold To: Mark Brown Cc: Linus Walleij , Masahisa Kojima , Jassi Brar , Laxman Dewangan , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 11/20] spi: st-ssc4: switch to managed controller allocation Date: Tue, 5 May 2026 09:29:00 +0200 Message-ID: <20260505072909.618363-12-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260505072909.618363-1-johan@kernel.org> References: <20260505072909.618363-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-st-ssc4.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/drivers/spi/spi-st-ssc4.c b/drivers/spi/spi-st-ssc4.c index 9c8099fe6e19..df61094fc444 100644 --- a/drivers/spi/spi-st-ssc4.c +++ b/drivers/spi/spi-st-ssc4.c @@ -279,7 +279,7 @@ static int spi_st_probe(struct platform_device *pdev) int irq, ret =3D 0; u32 var; =20 - host =3D spi_alloc_host(&pdev->dev, sizeof(*spi_st)); + host =3D devm_spi_alloc_host(&pdev->dev, sizeof(*spi_st)); if (!host) return -ENOMEM; =20 @@ -296,13 +296,12 @@ static int spi_st_probe(struct platform_device *pdev) spi_st->clk =3D devm_clk_get(&pdev->dev, "ssc"); if (IS_ERR(spi_st->clk)) { dev_err(&pdev->dev, "Unable to request clock\n"); - ret =3D PTR_ERR(spi_st->clk); - goto put_host; + return PTR_ERR(spi_st->clk); } =20 ret =3D clk_prepare_enable(spi_st->clk); if (ret) - goto put_host; + return ret; =20 init_completion(&spi_st->done); =20 @@ -361,8 +360,7 @@ static int spi_st_probe(struct platform_device *pdev) pm_runtime_disable(&pdev->dev); clk_disable: clk_disable_unprepare(spi_st->clk); -put_host: - spi_controller_put(host); + return ret; } =20 @@ -371,16 +369,12 @@ static void spi_st_remove(struct platform_device *pde= v) struct spi_controller *host =3D platform_get_drvdata(pdev); struct spi_st *spi_st =3D spi_controller_get_devdata(host); =20 - spi_controller_get(host); - spi_unregister_controller(host); =20 pm_runtime_disable(&pdev->dev); =20 clk_disable_unprepare(spi_st->clk); =20 - spi_controller_put(host); - pinctrl_pm_select_sleep_state(&pdev->dev); } =20 --=20 2.53.0 From nobody Sat Jun 13 23:57:40 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 99E943DFC78; Tue, 5 May 2026 07:29:42 +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=1777966182; cv=none; b=FBgcRP2HeTAwS7tYw+tlVErioBux36G0uVunEwscHLjdxSwiuhHuot/4lp+vfOVdo2erqDTUSJoKa+vC3G7ckuJlKa19PR3ixTIH1JmU5zmCXIgyjais91nTZ9Nlqvz+jwscliumCQwF1CjBqO6FMDj+xt3Y+GgpnGyU3KS9pRg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777966182; c=relaxed/simple; bh=0bbDG1c0Aq1LvZc1s4pTDzx4Vzjg7RxP8T0U41gLx7E=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=F597wP4kwIdKyOH/RTvv7X1DUuzTZinUbnxQu4RsTzSiggPqniCzaLI6B9wtgjPdnvgUKxrV5VUhaz6ES6eKN8MXvtMmL+oUpbi2WZNKcc+bzSrOnBJbOlpYqGzDTWQbovpHNBdw2BDcCSk2f+F/2bYUnKuyyC335gZGjeMwEZw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=UCqAzMem; 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="UCqAzMem" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 21F91C4AF17; Tue, 5 May 2026 07:29:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777966182; bh=0bbDG1c0Aq1LvZc1s4pTDzx4Vzjg7RxP8T0U41gLx7E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UCqAzMemLf4kT9/RtAg9Rpj2zV+z5sKLVft5FwwPF2geIqStHiqnG/5musGIepnoX iXBRvc1EGXxRKmDDu/W1wuscnoGSD3thyz6U9uJq7ip71I46iLNY2Yi7DoVBbBvDUy Xwm2U9I045XiS9FK6QJvo/y4ddho190pTa3ZGZCeOQZfPy2vvQwGTwkSNvfKbgpfl3 SU7JdqUhyFOu/A19DqcDnkBBYBi4GWE0C0zI9BMa4NjZG9sF/SwsFHuAvXPaMW4lEx I856rSRKcsT5xQCNP+cJxBZ2Po5N3uU2fFtkkmi294xr3RbtNQ2ew5lLVmZfEz26CF fuNIffpAU4+NA== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wKADr-00000002atC-32a6; Tue, 05 May 2026 09:29:39 +0200 From: Johan Hovold To: Mark Brown Cc: Linus Walleij , Masahisa Kojima , Jassi Brar , Laxman Dewangan , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 12/20] spi: sun4i: switch to managed controller allocation Date: Tue, 5 May 2026 09:29:01 +0200 Message-ID: <20260505072909.618363-13-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260505072909.618363-1-johan@kernel.org> References: <20260505072909.618363-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-sun4i.c | 35 +++++++++++------------------------ 1 file changed, 11 insertions(+), 24 deletions(-) diff --git a/drivers/spi/spi-sun4i.c b/drivers/spi/spi-sun4i.c index b7fbb5270edb..d5c16392cd4d 100644 --- a/drivers/spi/spi-sun4i.c +++ b/drivers/spi/spi-sun4i.c @@ -434,32 +434,26 @@ static int sun4i_spi_probe(struct platform_device *pd= ev) struct sun4i_spi *sspi; int ret =3D 0, irq; =20 - host =3D spi_alloc_host(&pdev->dev, sizeof(struct sun4i_spi)); - if (!host) { - dev_err(&pdev->dev, "Unable to allocate SPI Host\n"); + host =3D devm_spi_alloc_host(&pdev->dev, sizeof(struct sun4i_spi)); + if (!host) return -ENOMEM; - } =20 platform_set_drvdata(pdev, host); sspi =3D spi_controller_get_devdata(host); =20 sspi->base_addr =3D devm_platform_ioremap_resource(pdev, 0); - if (IS_ERR(sspi->base_addr)) { - ret =3D PTR_ERR(sspi->base_addr); - goto err_free_host; - } + if (IS_ERR(sspi->base_addr)) + return PTR_ERR(sspi->base_addr); =20 irq =3D platform_get_irq(pdev, 0); - if (irq < 0) { - ret =3D -ENXIO; - goto err_free_host; - } + if (irq < 0) + return -ENXIO; =20 ret =3D devm_request_irq(&pdev->dev, irq, sun4i_spi_handler, 0, "sun4i-spi", sspi); if (ret) { dev_err(&pdev->dev, "Cannot request IRQ\n"); - goto err_free_host; + return ret; } =20 sspi->host =3D host; @@ -477,15 +471,13 @@ static int sun4i_spi_probe(struct platform_device *pd= ev) sspi->hclk =3D devm_clk_get(&pdev->dev, "ahb"); if (IS_ERR(sspi->hclk)) { dev_err(&pdev->dev, "Unable to acquire AHB clock\n"); - ret =3D PTR_ERR(sspi->hclk); - goto err_free_host; + return PTR_ERR(sspi->hclk); } =20 sspi->mclk =3D devm_clk_get(&pdev->dev, "mod"); if (IS_ERR(sspi->mclk)) { dev_err(&pdev->dev, "Unable to acquire module clock\n"); - ret =3D PTR_ERR(sspi->mclk); - goto err_free_host; + return PTR_ERR(sspi->mclk); } =20 init_completion(&sspi->done); @@ -497,7 +489,7 @@ static int sun4i_spi_probe(struct platform_device *pdev) ret =3D sun4i_spi_runtime_resume(&pdev->dev); if (ret) { dev_err(&pdev->dev, "Couldn't resume the device\n"); - goto err_free_host; + return ret; } =20 pm_runtime_set_active(&pdev->dev); @@ -515,8 +507,7 @@ static int sun4i_spi_probe(struct platform_device *pdev) err_pm_disable: pm_runtime_disable(&pdev->dev); sun4i_spi_runtime_suspend(&pdev->dev); -err_free_host: - spi_controller_put(host); + return ret; } =20 @@ -524,13 +515,9 @@ static void sun4i_spi_remove(struct platform_device *p= dev) { struct spi_controller *host =3D platform_get_drvdata(pdev); =20 - spi_controller_get(host); - spi_unregister_controller(host); =20 pm_runtime_force_suspend(&pdev->dev); - - spi_controller_put(host); } =20 static const struct of_device_id sun4i_spi_match[] =3D { --=20 2.53.0 From nobody Sat Jun 13 23:57:40 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 6D55A3DDDC6; Tue, 5 May 2026 07:29:42 +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=1777966182; cv=none; b=MWcS7lzsYBnfoCNnQR4+tDQu8eJs8L8Uf+k9aK3oIy+9XNSgPGeN9CkqBESqhc39Or1cwcWlo9bHhS5vWpUsMiP3YhXwkC6MygumBI8byN6Y2SF5QE/z24ZifE2AMwcYeWTf4445FiSPq2yDZlz4obRdYGZ64vyV/jd7nK/NM/I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777966182; c=relaxed/simple; bh=1fnWOhhQkXL1oDmwJDZrVyJcPZ+uLS0tOnD+naDGHls=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=K8lLJQct1zI6ibsl/UYRE6nMvVEJ3Zl9meuR7Te9bU/19NgiVf7tY8zTJCRda7sZAjAmd0Sx/1jVYe6KDwxtlqs/R27x3nn9ZSHP/fDekghXKoVd8fSWwEjOO+GavETQXHHRomuIjCyrpQZbMcuYEoNDHIySgiVYU7KAmZdVn9k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=YZHlnGuT; 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="YZHlnGuT" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 10ABAC2BCFD; Tue, 5 May 2026 07:29:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777966182; bh=1fnWOhhQkXL1oDmwJDZrVyJcPZ+uLS0tOnD+naDGHls=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YZHlnGuTvnjKApKJpuh0hGm1sCGFlVp3Xhl7Qwu4bYHeXFDY2Pm81/4Kp3sUv9gp5 UUIxMdBAk8rjLpE68fbhOkIm8Th7sdwMMrFNtizk2q5GScfj1wGJMmBA6NYmtmlzNn ba5eciADis6Hefatx0K08PlbeunL3iCSUADxc8noduNqRqaMAi8KAQuNzt4oEUW8Ji tkVfmHCY2LcPYDiqyjESXX7/52SIP4Z+kjIXGQLUeHYsKlXOUUmLK9xHi3oiV2liwp JmrFJL2IKF8DfQ0vc9TUgHvQMF4YfTaOI3jrNsvH/PEpAXYYGL+F3VEXIDONVG90zx iFv0CBfHAXdlg== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wKADr-00000002atE-34sX; Tue, 05 May 2026 09:29:39 +0200 From: Johan Hovold To: Mark Brown Cc: Linus Walleij , Masahisa Kojima , Jassi Brar , Laxman Dewangan , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 13/20] spi: sun6i: switch to managed controller allocation Date: Tue, 5 May 2026 09:29:02 +0200 Message-ID: <20260505072909.618363-14-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260505072909.618363-1-johan@kernel.org> References: <20260505072909.618363-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-sun6i.c | 38 ++++++++++++-------------------------- 1 file changed, 12 insertions(+), 26 deletions(-) diff --git a/drivers/spi/spi-sun6i.c b/drivers/spi/spi-sun6i.c index 5ac73d324d06..4631e9c7ca1d 100644 --- a/drivers/spi/spi-sun6i.c +++ b/drivers/spi/spi-sun6i.c @@ -633,7 +633,7 @@ static int sun6i_spi_probe(struct platform_device *pdev) struct resource *mem; int ret =3D 0, irq; =20 - host =3D spi_alloc_host(&pdev->dev, sizeof(struct sun6i_spi)); + host =3D devm_spi_alloc_host(&pdev->dev, sizeof(struct sun6i_spi)); if (!host) { dev_err(&pdev->dev, "Unable to allocate SPI Host\n"); return -ENOMEM; @@ -643,22 +643,18 @@ static int sun6i_spi_probe(struct platform_device *pd= ev) sspi =3D spi_controller_get_devdata(host); =20 sspi->base_addr =3D devm_platform_get_and_ioremap_resource(pdev, 0, &mem); - if (IS_ERR(sspi->base_addr)) { - ret =3D PTR_ERR(sspi->base_addr); - goto err_free_host; - } + if (IS_ERR(sspi->base_addr)) + return PTR_ERR(sspi->base_addr); =20 irq =3D platform_get_irq(pdev, 0); - if (irq < 0) { - ret =3D -ENXIO; - goto err_free_host; - } + if (irq < 0) + return -ENXIO; =20 ret =3D devm_request_irq(&pdev->dev, irq, sun6i_spi_handler, 0, "sun6i-spi", sspi); if (ret) { dev_err(&pdev->dev, "Cannot request IRQ\n"); - goto err_free_host; + return ret; } =20 sspi->host =3D host; @@ -679,15 +675,13 @@ static int sun6i_spi_probe(struct platform_device *pd= ev) sspi->hclk =3D devm_clk_get(&pdev->dev, "ahb"); if (IS_ERR(sspi->hclk)) { dev_err(&pdev->dev, "Unable to acquire AHB clock\n"); - ret =3D PTR_ERR(sspi->hclk); - goto err_free_host; + return PTR_ERR(sspi->hclk); } =20 sspi->mclk =3D devm_clk_get(&pdev->dev, "mod"); if (IS_ERR(sspi->mclk)) { dev_err(&pdev->dev, "Unable to acquire module clock\n"); - ret =3D PTR_ERR(sspi->mclk); - goto err_free_host; + return PTR_ERR(sspi->mclk); } =20 init_completion(&sspi->done); @@ -696,17 +690,14 @@ static int sun6i_spi_probe(struct platform_device *pd= ev) sspi->rstc =3D devm_reset_control_get_exclusive(&pdev->dev, NULL); if (IS_ERR(sspi->rstc)) { dev_err(&pdev->dev, "Couldn't get reset controller\n"); - ret =3D PTR_ERR(sspi->rstc); - goto err_free_host; + return PTR_ERR(sspi->rstc); } =20 host->dma_tx =3D dma_request_chan(&pdev->dev, "tx"); if (IS_ERR(host->dma_tx)) { /* Check tx to see if we need defer probing driver */ - if (PTR_ERR(host->dma_tx) =3D=3D -EPROBE_DEFER) { - ret =3D -EPROBE_DEFER; - goto err_free_host; - } + if (PTR_ERR(host->dma_tx) =3D=3D -EPROBE_DEFER) + return -EPROBE_DEFER; dev_warn(&pdev->dev, "Failed to request TX DMA channel\n"); host->dma_tx =3D NULL; } @@ -759,8 +750,7 @@ static int sun6i_spi_probe(struct platform_device *pdev) err_free_dma_tx: if (host->dma_tx) dma_release_channel(host->dma_tx); -err_free_host: - spi_controller_put(host); + return ret; } =20 @@ -768,8 +758,6 @@ static void sun6i_spi_remove(struct platform_device *pd= ev) { struct spi_controller *host =3D platform_get_drvdata(pdev); =20 - spi_controller_get(host); - spi_unregister_controller(host); =20 pm_runtime_force_suspend(&pdev->dev); @@ -778,8 +766,6 @@ static void sun6i_spi_remove(struct platform_device *pd= ev) dma_release_channel(host->dma_tx); if (host->dma_rx) dma_release_channel(host->dma_rx); - - spi_controller_put(host); } =20 static const struct sun6i_spi_cfg sun6i_a31_spi_cfg =3D { --=20 2.53.0 From nobody Sat Jun 13 23:57:40 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 8F5433DEFFF; Tue, 5 May 2026 07:29:42 +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=1777966182; cv=none; b=PrftdFSvys4ZTCGnSLuamaanzhagY2uS3pCHV+AA6pvLxvc+rKU+YvGASJ69fGb89BnTt7AtJLTC4HSb9MMkoTrLpNm9LSkjlZNJjwYIkwBnedSekF8TjTT7pKR4CCXQVdIG3xaBprLtPQtB/C1cGmhn5En/WPkTB07t4WaSFyU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777966182; c=relaxed/simple; bh=bYowpJJsuudC4ZaFKGlmSTOhxJ8xTSty1Qz53kn2mxU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qNILWYpOJrXi1Hwq9FV90XUUA1ldnhMTs3TW4aqaloZP2RhX7MHBrD/AAjJwWh/ueqrQIWEK6XdLBHFTzVAnwB15ibIV4s1ayRTW0q1sKNyqd8YUaLqrfH+v/0Q0UzkG4Y/dLvJ08Of7Y2MnD+LMMj1MQSVR5PsE+DdYAhP04Vw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=RFcdTnxR; 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="RFcdTnxR" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1686EC4AF09; Tue, 5 May 2026 07:29:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777966182; bh=bYowpJJsuudC4ZaFKGlmSTOhxJ8xTSty1Qz53kn2mxU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RFcdTnxRUjE0xcqN5dZ0eTb+fwhxHV/S/XWIThqEeU4CpwBLtVtk7Osaq0W5p5c5Q hg23MmPOks2UU50OfJUH/EJiaUw4DpX05MCUdaiD6015UteDTLAsB9VfqB3e26DNfw QrZh8obQFzJwE7MW3k3Qpc8V6vnxf547y5wFvCsWoN4OFwuxlhBaeV5sz0EzCrme4F D9XYkcDq3hv1mwLBeNpOPoWmZw3l148O9VLOK9BRtb/tex53edor+8wTR+rO6DvgoW lwg8QRoFMGBl89KdBv3fyMN2gp8FEehJYu4cMbxoXMFyz1IC9GADp2pr2OQPIcQjT4 4po6D4ca9ybYg== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wKADr-00000002atG-375x; Tue, 05 May 2026 09:29:39 +0200 From: Johan Hovold To: Mark Brown Cc: Linus Walleij , Masahisa Kojima , Jassi Brar , Laxman Dewangan , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 14/20] spi: syncuacer: switch to managed controller allocation Date: Tue, 5 May 2026 09:29:03 +0200 Message-ID: <20260505072909.618363-15-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260505072909.618363-1-johan@kernel.org> References: <20260505072909.618363-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-synquacer.c | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/drivers/spi/spi-synquacer.c b/drivers/spi/spi-synquacer.c index 290c439897c4..c14225e39fd1 100644 --- a/drivers/spi/spi-synquacer.c +++ b/drivers/spi/spi-synquacer.c @@ -605,7 +605,7 @@ static int synquacer_spi_probe(struct platform_device *= pdev) int ret; int rx_irq, tx_irq; =20 - host =3D spi_alloc_host(&pdev->dev, sizeof(*sspi)); + host =3D devm_spi_alloc_host(&pdev->dev, sizeof(*sspi)); if (!host) return -ENOMEM; =20 @@ -617,10 +617,8 @@ static int synquacer_spi_probe(struct platform_device = *pdev) init_completion(&sspi->transfer_done); =20 sspi->regs =3D devm_platform_ioremap_resource(pdev, 0); - if (IS_ERR(sspi->regs)) { - ret =3D PTR_ERR(sspi->regs); - goto put_spi; - } + if (IS_ERR(sspi->regs)) + return PTR_ERR(sspi->regs); =20 sspi->clk_src_type =3D SYNQUACER_HSSPI_CLOCK_SRC_IHCLK; /* Default */ device_property_read_u32(&pdev->dev, "socionext,ihclk-rate", @@ -637,21 +635,19 @@ static int synquacer_spi_probe(struct platform_device= *pdev) sspi->clk =3D devm_clk_get(sspi->dev, "iPCLK"); } else { dev_err(&pdev->dev, "specified wrong clock source\n"); - ret =3D -EINVAL; - goto put_spi; + return -EINVAL; } =20 if (IS_ERR(sspi->clk)) { - ret =3D dev_err_probe(&pdev->dev, PTR_ERR(sspi->clk), - "clock not found\n"); - goto put_spi; + return dev_err_probe(&pdev->dev, PTR_ERR(sspi->clk), + "clock not found\n"); } =20 ret =3D clk_prepare_enable(sspi->clk); if (ret) { dev_err(&pdev->dev, "failed to enable clock (%d)\n", ret); - goto put_spi; + return ret; } =20 host->max_speed_hz =3D clk_get_rate(sspi->clk); @@ -726,8 +722,6 @@ static int synquacer_spi_probe(struct platform_device *= pdev) pm_runtime_disable(sspi->dev); disable_clk: clk_disable_unprepare(sspi->clk); -put_spi: - spi_controller_put(host); =20 return ret; } @@ -737,15 +731,11 @@ static void synquacer_spi_remove(struct platform_devi= ce *pdev) struct spi_controller *host =3D platform_get_drvdata(pdev); struct synquacer_spi *sspi =3D spi_controller_get_devdata(host); =20 - spi_controller_get(host); - spi_unregister_controller(host); =20 pm_runtime_disable(sspi->dev); =20 clk_disable_unprepare(sspi->clk); - - spi_controller_put(host); } =20 static int __maybe_unused synquacer_spi_suspend(struct device *dev) --=20 2.53.0 From nobody Sat Jun 13 23:57:40 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 8FB4F3DF00C; Tue, 5 May 2026 07:29:42 +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=1777966182; cv=none; b=udtiNqp46hwWGj26SqJOM4S8m7sjgTN1OGhy+jpDySipV9/cUQj+Hpk9stnS9RIpEt2ljcGI+dvOM5ycYw+ZDA4679mg3Kzv50WEiqTuZ8ZbB5JtiCWfJuMtGiLp92pLrNFdZZH/KbAHoH4Bqm3rDzUY2Iqvb1gXNmOlt/w6N8w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777966182; c=relaxed/simple; bh=L60LRplpjDk2zRJEBey+SBkvYzdLM0uRKSpgaCU8PQQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=U2LxfZoRtWOoOpwDnNh++rGdX4wMNlfOZFks7r6fK9hyFejtxh97Hdj02ozxR5WmV92ko9FCp22meDfQ2j76Q1A5HE4A0JHVma7yI3cuU5bFl05OIvbLNO7eUpCgf8shQUiyGQKaWe+0N+SRtajWkjxIIVBqLNTqff21ZxeqH54= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=XdJ5CikN; 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="XdJ5CikN" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 218DFC4AF14; Tue, 5 May 2026 07:29:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777966182; bh=L60LRplpjDk2zRJEBey+SBkvYzdLM0uRKSpgaCU8PQQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XdJ5CikNgPwYi8RI309Nbe8S5gNfUlNk69L0Lr0wqHHc/NMisknXG8kSonQ2hV9N8 ceiQKZR1r+LKaAEc1NBe3TitoKLNUC2C77UPdnennQt4pYHl1ZUrRVD5Fpe3pmkSox 9o+9N4XkOglXaMpquP8BzydoaPGFcHfUJiD9uxVv6hfDT2wXkjVk+rtBxxgaQq7yfo fsJBJywkh80M5XJ0bycCZBY+ra6eifGTC1W+1WCyLS0D7sXwDbBXcsK2Dn2DvMueYw VbHhavAbzPWGZHl+i0L+omC1MxhSJfT+oWxgzhCz+TIyw894iXTtlu5Sh8dqD5AkBw 5RuTOCt0YsHog== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wKADr-00000002atI-39Ou; Tue, 05 May 2026 09:29:39 +0200 From: Johan Hovold To: Mark Brown Cc: Linus Walleij , Masahisa Kojima , Jassi Brar , Laxman Dewangan , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 15/20] spi: tegra114: switch to managed controller allocation Date: Tue, 5 May 2026 09:29:04 +0200 Message-ID: <20260505072909.618363-16-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260505072909.618363-1-johan@kernel.org> References: <20260505072909.618363-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-tegra114.c | 34 ++++++++++++---------------------- 1 file changed, 12 insertions(+), 22 deletions(-) diff --git a/drivers/spi/spi-tegra114.c b/drivers/spi/spi-tegra114.c index b8b0ebe0fe93..aa44ffd09e61 100644 --- a/drivers/spi/spi-tegra114.c +++ b/drivers/spi/spi-tegra114.c @@ -1302,7 +1302,7 @@ static int tegra_spi_probe(struct platform_device *pd= ev) int ret, spi_irq; int bus_num; =20 - host =3D spi_alloc_host(&pdev->dev, sizeof(*tspi)); + host =3D devm_spi_alloc_host(&pdev->dev, sizeof(*tspi)); if (!host) { dev_err(&pdev->dev, "host allocation failed\n"); return -ENOMEM; @@ -1336,36 +1336,31 @@ static int tegra_spi_probe(struct platform_device *= pdev) tspi->soc_data =3D of_device_get_match_data(&pdev->dev); if (!tspi->soc_data) { dev_err(&pdev->dev, "unsupported tegra\n"); - ret =3D -ENODEV; - goto exit_free_host; + return -ENODEV; } =20 tspi->base =3D devm_platform_get_and_ioremap_resource(pdev, 0, &r); - if (IS_ERR(tspi->base)) { - ret =3D PTR_ERR(tspi->base); - goto exit_free_host; - } + if (IS_ERR(tspi->base)) + return PTR_ERR(tspi->base); + tspi->phys =3D r->start; =20 spi_irq =3D platform_get_irq(pdev, 0); - if (spi_irq < 0) { - ret =3D spi_irq; - goto exit_free_host; - } + if (spi_irq < 0) + return spi_irq; + tspi->irq =3D spi_irq; =20 tspi->clk =3D devm_clk_get(&pdev->dev, "spi"); if (IS_ERR(tspi->clk)) { dev_err(&pdev->dev, "can not get clock\n"); - ret =3D PTR_ERR(tspi->clk); - goto exit_free_host; + return PTR_ERR(tspi->clk); } =20 tspi->rst =3D devm_reset_control_get_exclusive(&pdev->dev, "spi"); if (IS_ERR(tspi->rst)) { dev_err(&pdev->dev, "can not get reset\n"); - ret =3D PTR_ERR(tspi->rst); - goto exit_free_host; + return PTR_ERR(tspi->rst); } =20 tspi->max_buf_size =3D SPI_FIFO_DEPTH << 2; @@ -1373,7 +1368,7 @@ static int tegra_spi_probe(struct platform_device *pd= ev) =20 ret =3D tegra_spi_init_dma_param(tspi, true); if (ret < 0) - goto exit_free_host; + return ret; ret =3D tegra_spi_init_dma_param(tspi, false); if (ret < 0) goto exit_rx_dma_free; @@ -1431,8 +1426,7 @@ static int tegra_spi_probe(struct platform_device *pd= ev) tegra_spi_deinit_dma_param(tspi, false); exit_rx_dma_free: tegra_spi_deinit_dma_param(tspi, true); -exit_free_host: - spi_controller_put(host); + return ret; } =20 @@ -1441,8 +1435,6 @@ static void tegra_spi_remove(struct platform_device *= pdev) struct spi_controller *host =3D platform_get_drvdata(pdev); struct tegra_spi_data *tspi =3D spi_controller_get_devdata(host); =20 - spi_controller_get(host); - spi_unregister_controller(host); =20 free_irq(tspi->irq, tspi); @@ -1456,8 +1448,6 @@ static void tegra_spi_remove(struct platform_device *= pdev) pm_runtime_disable(&pdev->dev); if (!pm_runtime_status_suspended(&pdev->dev)) tegra_spi_runtime_suspend(&pdev->dev); - - spi_controller_put(host); } =20 #ifdef CONFIG_PM_SLEEP --=20 2.53.0 From nobody Sat Jun 13 23:57:40 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 8F5F73DF000; Tue, 5 May 2026 07:29:42 +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=1777966182; cv=none; b=kNCq7VCMZ517t4p8D560KbVGXmK2la9YZabQF2dYJg6KlxiJ5E4Q+8Kx5f3zYPz+pvomIZlKRUjWf0yJXDRbgFCidRjiQt6/9nisITIZC64pYnYrl5cnV4A3KaEb37kQQ2rS4Gyf1Ude4aU9HdOPuHoCNvAZfbJ1okYqGD8Xvmg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777966182; c=relaxed/simple; bh=OP+6E2NzBeEAp/Lal2Cswhu32tlbi5G5YANee/6XVsc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PtWxXEoN0Z+qurLg4CocjtEC6xZr5IXBfJ6EHZgQVfTUMNoZVxsJT320LvZTA1uAsJQ2zDvAgxj148XZxYfqAs4jI4/5TY6c+/XoPcjyLTcDtaOvkDCV7SPjQT/UI6E0kRTy8f1uRjYqITv/Ch03wT/GexVSIRNXnbdqczqMg1M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=uLMUqdg4; 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="uLMUqdg4" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1BF2AC32786; Tue, 5 May 2026 07:29:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777966182; bh=OP+6E2NzBeEAp/Lal2Cswhu32tlbi5G5YANee/6XVsc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uLMUqdg45oP0bGKDUXXbhYYXmYnup0cVqRaHB0+lORZPEdnYLlKVzILyViodQo+w2 Hbkf1C6zCbZEXWST6c0xruFfHtoxcxGsLAqOtAVg9OuC9fWgbxZBMXTFPpVQHKT2nB pg2XRXsfZhyLex5lTLz80G9hQXjJrhifLTvPOGlKh0p0+Ay/OosTGirc5hhsp/dJVv edJTt81bTYaEQ13oTFcTlefc7xQTbn+JI+Bhk2vfA84FBZitAH+EYa0Q2OivcnxqCz tR+bIhPDNzJa3k52xL+zT1Q4WvVixOYO7yw70xq5KhJhHyfahK1wekE6YLADV/1aFO cd0R0SK7kKh5A== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wKADr-00000002atK-3Bcu; Tue, 05 May 2026 09:29:39 +0200 From: Johan Hovold To: Mark Brown Cc: Linus Walleij , Masahisa Kojima , Jassi Brar , Laxman Dewangan , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 16/20] spi: tegra20-sflash: switch to managed controller allocation Date: Tue, 5 May 2026 09:29:05 +0200 Message-ID: <20260505072909.618363-17-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260505072909.618363-1-johan@kernel.org> References: <20260505072909.618363-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-tegra20-sflash.c | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/drivers/spi/spi-tegra20-sflash.c b/drivers/spi/spi-tegra20-sfl= ash.c index 9256729f2d49..2caa33f0a52c 100644 --- a/drivers/spi/spi-tegra20-sflash.c +++ b/drivers/spi/spi-tegra20-sflash.c @@ -427,11 +427,9 @@ static int tegra_sflash_probe(struct platform_device *= pdev) return -ENODEV; } =20 - host =3D spi_alloc_host(&pdev->dev, sizeof(*tsd)); - if (!host) { - dev_err(&pdev->dev, "host allocation failed\n"); + host =3D devm_spi_alloc_host(&pdev->dev, sizeof(*tsd)); + if (!host) return -ENOMEM; - } =20 /* the spi->mode bits understood by this driver: */ host->mode_bits =3D SPI_CPOL | SPI_CPHA; @@ -450,14 +448,13 @@ static int tegra_sflash_probe(struct platform_device = *pdev) host->max_speed_hz =3D 25000000; /* 25MHz */ =20 tsd->base =3D devm_platform_ioremap_resource(pdev, 0); - if (IS_ERR(tsd->base)) { - ret =3D PTR_ERR(tsd->base); - goto exit_free_host; - } + if (IS_ERR(tsd->base)) + return PTR_ERR(tsd->base); =20 ret =3D platform_get_irq(pdev, 0); if (ret < 0) - goto exit_free_host; + return ret; + tsd->irq =3D ret; =20 ret =3D request_irq(tsd->irq, tegra_sflash_isr, 0, @@ -465,7 +462,7 @@ static int tegra_sflash_probe(struct platform_device *p= dev) if (ret < 0) { dev_err(&pdev->dev, "Failed to register ISR for IRQ %d\n", tsd->irq); - goto exit_free_host; + return ret; } =20 tsd->clk =3D devm_clk_get(&pdev->dev, NULL); @@ -518,8 +515,7 @@ static int tegra_sflash_probe(struct platform_device *p= dev) tegra_sflash_runtime_suspend(&pdev->dev); exit_free_irq: free_irq(tsd->irq, tsd); -exit_free_host: - spi_controller_put(host); + return ret; } =20 @@ -528,8 +524,6 @@ static void tegra_sflash_remove(struct platform_device = *pdev) struct spi_controller *host =3D platform_get_drvdata(pdev); struct tegra_sflash_data *tsd =3D spi_controller_get_devdata(host); =20 - spi_controller_get(host); - spi_unregister_controller(host); =20 free_irq(tsd->irq, tsd); @@ -537,8 +531,6 @@ static void tegra_sflash_remove(struct platform_device = *pdev) pm_runtime_disable(&pdev->dev); if (!pm_runtime_status_suspended(&pdev->dev)) tegra_sflash_runtime_suspend(&pdev->dev); - - spi_controller_put(host); } =20 #ifdef CONFIG_PM_SLEEP --=20 2.53.0 From nobody Sat Jun 13 23:57:40 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 7D96C3DE441; Tue, 5 May 2026 07:29:42 +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=1777966182; cv=none; b=b4qh6J2NJlW6KELFC1yIgL8kfwiM08KaSUWjT2liGr21Jd30GkmKT8WKZjLS5jBEdqGxUzs3b9ZorTjXVIEcRlioItMpKLzEl973qINnEu/1oeX1a72jb8lsX1mbqXiXumAVvnjTRe8lai74MRJMyWQ3ZFuXr9rQqTPTiNij7wM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777966182; c=relaxed/simple; bh=p4LpLN5fZdjv0gvKwYitgL50AzdFKWheQIp442BhXpE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=C5zWMBxS4fyCaBzbQL/nc8Tiw6XqPlWqFlYLjl5POEid6fLMSPoDyfN4R6YoOL4vTNx1WkYRgZamGD18Lsrs2uAbvrK6UWCJ4iihQGbpTcVJqx9Ktxo2csdo9Q9FSTHIS8eQleDA2oEwzOZk9N1PKvDo8X6DhrnBvJAqmAEWCRc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Z3cJlxEg; 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="Z3cJlxEg" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1BA6EC2BD05; Tue, 5 May 2026 07:29:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777966182; bh=p4LpLN5fZdjv0gvKwYitgL50AzdFKWheQIp442BhXpE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Z3cJlxEgiom+IKwODkhKVsxPb61JgEGqIxSQhKIXGbGdiP/mwUCw5yDKtB0bk4+Lp 8tY2+/DA3ytbxJeLgRX6ZHen/rcIEgGnU4RGJKSdNbOwghFiMlXX87Nx0BWT8rr+mQ LUU6FL7AZh5o938s3SGe9yM1A3hCw145jYDMvKYSW7iDcj1O5JW9TZZSFx8uavhrU3 ngVYKM1VWroLtRi2M3gY67nzcxNnq6a4oPjLrmCBu7CdE3kGshAJ12gMhvdwTo2/Fv V/z9tsF+0qJjB2YfI9+CdR+E1X2mtAv907dsGTdTHTX/jswoh9mlZYPwIYC9oSPrCx tGy78BDExEY4w== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wKADr-00000002atM-3DzD; Tue, 05 May 2026 09:29:39 +0200 From: Johan Hovold To: Mark Brown Cc: Linus Walleij , Masahisa Kojima , Jassi Brar , Laxman Dewangan , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 17/20] spi: ti-qspi: switch to managed controller allocation Date: Tue, 5 May 2026 09:29:06 +0200 Message-ID: <20260505072909.618363-18-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260505072909.618363-1-johan@kernel.org> References: <20260505072909.618363-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-ti-qspi.c | 30 +++++++++--------------------- 1 file changed, 9 insertions(+), 21 deletions(-) diff --git a/drivers/spi/spi-ti-qspi.c b/drivers/spi/spi-ti-qspi.c index 1fbd710d616f..2a8548810f84 100644 --- a/drivers/spi/spi-ti-qspi.c +++ b/drivers/spi/spi-ti-qspi.c @@ -765,7 +765,7 @@ static int ti_qspi_probe(struct platform_device *pdev) int ret =3D 0, num_cs, irq; dma_cap_mask_t mask; =20 - host =3D spi_alloc_host(&pdev->dev, sizeof(*qspi)); + host =3D devm_spi_alloc_host(&pdev->dev, sizeof(*qspi)); if (!host) return -ENOMEM; =20 @@ -793,8 +793,7 @@ static int ti_qspi_probe(struct platform_device *pdev) r =3D platform_get_resource(pdev, IORESOURCE_MEM, 0); if (r =3D=3D NULL) { dev_err(&pdev->dev, "missing platform data\n"); - ret =3D -ENODEV; - goto free_host; + return -ENODEV; } } =20 @@ -812,28 +811,22 @@ static int ti_qspi_probe(struct platform_device *pdev) qspi->mmap_size =3D resource_size(res_mmap); =20 irq =3D platform_get_irq(pdev, 0); - if (irq < 0) { - ret =3D irq; - goto free_host; - } + if (irq < 0) + return irq; =20 mutex_init(&qspi->list_lock); =20 qspi->base =3D devm_ioremap_resource(&pdev->dev, r); - if (IS_ERR(qspi->base)) { - ret =3D PTR_ERR(qspi->base); - goto free_host; - } + if (IS_ERR(qspi->base)) + return PTR_ERR(qspi->base); =20 =20 if (of_property_present(np, "syscon-chipselects")) { qspi->ctrl_base =3D syscon_regmap_lookup_by_phandle_args(np, "syscon-chipselects", 1, &qspi->ctrl_reg); - if (IS_ERR(qspi->ctrl_base)) { - ret =3D PTR_ERR(qspi->ctrl_base); - goto free_host; - } + if (IS_ERR(qspi->ctrl_base)) + return PTR_ERR(qspi->ctrl_base); } =20 qspi->fclk =3D devm_clk_get(&pdev->dev, "fck"); @@ -895,8 +888,7 @@ static int ti_qspi_probe(struct platform_device *pdev) ti_qspi_dma_cleanup(qspi); =20 pm_runtime_disable(&pdev->dev); -free_host: - spi_controller_put(host); + return ret; } =20 @@ -904,16 +896,12 @@ static void ti_qspi_remove(struct platform_device *pd= ev) { struct ti_qspi *qspi =3D platform_get_drvdata(pdev); =20 - spi_controller_get(qspi->host); - spi_unregister_controller(qspi->host); =20 pm_runtime_put_sync(&pdev->dev); pm_runtime_disable(&pdev->dev); =20 ti_qspi_dma_cleanup(qspi); - - spi_controller_put(qspi->host); } =20 static const struct dev_pm_ops ti_qspi_pm_ops =3D { --=20 2.53.0 From nobody Sat Jun 13 23:57:40 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 9C17C3DFC7B; Tue, 5 May 2026 07:29:42 +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=1777966182; cv=none; b=FDbws6r+3acaI0OM4KJCYgm/QDYGaffJRti0lfbwqHJLtdX1RWn8R9lgzzeIBTl1zxvtQ5ib2N8AGODVyA6juv60VdN7HQ3+Oix+LmQC3O2wdDOGX2M/kJkGsbj7P2wjx6heoH0P1/a94Xs4JjxIIfCCvNDhA7Omv90xWE9m24E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777966182; c=relaxed/simple; bh=SraNUJkTQRHpcBfz8guyzQNXalx3gWHtPFxseAcaryI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QYba1abs7KeXrkxtgxyp9CSqoEDpr8IKWPb1ucAgOOLctym8BPJPEOiilSWgrE9AcKm99jxbZSejUR6oX/Jeeh1QeUN2FM4KvKh3LWKsz1EXOTafIoKJOZnt8+O9lw2XLYbxMOeMKCYu+7f0IrMs0GdOYroQwmFn9X/mC8rDkdY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=PUhUv8C3; 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="PUhUv8C3" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 29902C4AF48; Tue, 5 May 2026 07:29:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777966182; bh=SraNUJkTQRHpcBfz8guyzQNXalx3gWHtPFxseAcaryI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PUhUv8C3gL9uyFN/DMf8Mfpfu3uoYFyXff0D98ztdNZ1iOYOTAwcYlAXMr8AKK5r+ VLi5EGBkYH5ot+mgnNxPi8gQw3wIMoLgVfKeB2YatX40OTzerzvmceOTjZ/AVFZ/lc 6HxAavR4w9MQJ8IRkmo6pT3nzMzmlf8cMIS6MGEnC28wX+22w5ujo3y+Rvh2F6kIad Jf5++VFUu6kw7YCu1d7sy5uVxvouHizSe8d1A7HrVHKoWaOOB2RhpVUdtrRRlAGBSQ 4BWMrqGL3Phic1I/4831Py36RCqbKAlNR8JeJuXVnNF0LOyNQyQ/LZaOPxbL+PEKuS oEcjgwwyM73rA== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wKADr-00000002atO-3GFx; Tue, 05 May 2026 09:29:39 +0200 From: Johan Hovold To: Mark Brown Cc: Linus Walleij , Masahisa Kojima , Jassi Brar , Laxman Dewangan , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 18/20] spi: ti-qspi: cleanup registration error path Date: Tue, 5 May 2026 09:29:07 +0200 Message-ID: <20260505072909.618363-19-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260505072909.618363-1-johan@kernel.org> References: <20260505072909.618363-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" Add a proper error path for when registration fails so that the probe tests for errors consistently. Signed-off-by: Johan Hovold --- drivers/spi/spi-ti-qspi.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/spi/spi-ti-qspi.c b/drivers/spi/spi-ti-qspi.c index 2a8548810f84..6b407c7b5d33 100644 --- a/drivers/spi/spi-ti-qspi.c +++ b/drivers/spi/spi-ti-qspi.c @@ -882,9 +882,12 @@ static int ti_qspi_probe(struct platform_device *pdev) qspi->current_cs =3D -1; =20 ret =3D spi_register_controller(host); - if (!ret) - return 0; + if (ret) + goto err_free_dma; + + return 0; =20 +err_free_dma: ti_qspi_dma_cleanup(qspi); =20 pm_runtime_disable(&pdev->dev); --=20 2.53.0 From nobody Sat Jun 13 23:57:40 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 909B33DFC68; Tue, 5 May 2026 07:29:42 +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=1777966182; cv=none; b=lQD1JLJ4aoN/Te/p8YxJMkf4pJRjlEoYXzJBy+mw5Lw+6ZcolX5i9kDfrOi6bNpyXg3vAxzO9d2OGCJ8xflWxNpNrWrQrJRgfgyLcyJpfAmFSOnESeTCQRK3PGa1tgRgbFAzSA5xg08ts9kNjTqMb6cDSb+phSHeFacBqydhML4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777966182; c=relaxed/simple; bh=UXBCHywms5b7E6t4ihwwEXOZ9EJx2Yu/9U7Ij9QSn4w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mjoZfAQx7jwGTUN3zImi6ljW31DQQ1zTDTqJOy9CYS0ERjTylNGL2pyDUMQdp3hNgreUH+EsQsJuYbzV5pRi9wFHz2cNb2OkA0/ObmPaB6KJI/MSVpr7f6sOY3qaG74i3XLqSPRH3LckYW4KM0XDfeiAfPzxgGqlLFGQR/Yj7gs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=kaUgypJH; 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="kaUgypJH" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2124CC4AF15; Tue, 5 May 2026 07:29:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777966182; bh=UXBCHywms5b7E6t4ihwwEXOZ9EJx2Yu/9U7Ij9QSn4w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kaUgypJHI3hyPkE7K40HvVB2GnJPE4QRb56Y1180j1vDuS+RypJ9ORgUXpY2RCQNf oo1RM7HhHRPdV/U1+GxnfcQ10fcEF3TqrOtVpPSEj0aRkk6sIQV42ksUje/I5Y/itU NRZCC8YhLGGGUpMl8KaJ1W//aw1RkXLrw0+yuc1vrOOLZN5iNMF7sfSVROfgnhWB03 qgY5eemWVUeAqNfL9GJeHxtQ3xdUONsAaIv0Eb9o1FFjt3um0Y34UYoC4rpDOEkHmF n/K5LxzAmlWAfOn7cTvFmjyxKGChthHtc0bIpPYiqYUQ8HA7tGZjpJDLEqzJjTCLH6 MyJzUKDJUUfGA== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wKADr-00000002atQ-3Iwt; Tue, 05 May 2026 09:29:39 +0200 From: Johan Hovold To: Mark Brown Cc: Linus Walleij , Masahisa Kojima , Jassi Brar , Laxman Dewangan , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 19/20] spi: uniphier: switch to managed controller allocation Date: Tue, 5 May 2026 09:29:08 +0200 Message-ID: <20260505072909.618363-20-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260505072909.618363-1-johan@kernel.org> References: <20260505072909.618363-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-uniphier.c | 33 +++++++++++---------------------- 1 file changed, 11 insertions(+), 22 deletions(-) diff --git a/drivers/spi/spi-uniphier.c b/drivers/spi/spi-uniphier.c index eac6c3e8908b..5f0abc59b716 100644 --- a/drivers/spi/spi-uniphier.c +++ b/drivers/spi/spi-uniphier.c @@ -649,7 +649,7 @@ static int uniphier_spi_probe(struct platform_device *p= dev) 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 @@ -660,30 +660,26 @@ static int uniphier_spi_probe(struct platform_device = *pdev) priv->is_save_param =3D false; =20 priv->base =3D devm_platform_get_and_ioremap_resource(pdev, 0, &res); - 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); + priv->base_dma_addr =3D res->start; =20 priv->clk =3D devm_clk_get_enabled(&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 irq =3D platform_get_irq(pdev, 0); - if (irq < 0) { - ret =3D irq; - goto out_host_put; - } + if (irq < 0) + return irq; =20 ret =3D devm_request_irq(&pdev->dev, irq, uniphier_spi_handler, 0, "uniphier-spi", priv); if (ret) { dev_err(&pdev->dev, "failed to request IRQ\n"); - goto out_host_put; + return ret; } =20 init_completion(&priv->xfer_done); @@ -710,10 +706,9 @@ static int uniphier_spi_probe(struct platform_device *= pdev) =20 host->dma_tx =3D dma_request_chan(&pdev->dev, "tx"); if (IS_ERR_OR_NULL(host->dma_tx)) { - if (PTR_ERR(host->dma_tx) =3D=3D -EPROBE_DEFER) { - ret =3D -EPROBE_DEFER; - goto out_host_put; - } + if (PTR_ERR(host->dma_tx) =3D=3D -EPROBE_DEFER) + return -EPROBE_DEFER; + host->dma_tx =3D NULL; dma_tx_burst =3D INT_MAX; } else { @@ -762,8 +757,6 @@ static int uniphier_spi_probe(struct platform_device *p= dev) host->dma_tx =3D NULL; } =20 -out_host_put: - spi_controller_put(host); return ret; } =20 @@ -771,16 +764,12 @@ static void uniphier_spi_remove(struct platform_devic= e *pdev) { struct spi_controller *host =3D platform_get_drvdata(pdev); =20 - spi_controller_get(host); - spi_unregister_controller(host); =20 if (host->dma_tx) dma_release_channel(host->dma_tx); if (host->dma_rx) dma_release_channel(host->dma_rx); - - spi_controller_put(host); } =20 static const struct of_device_id uniphier_spi_match[] =3D { --=20 2.53.0 From nobody Sat Jun 13 23:57:40 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 A728F3E0232; Tue, 5 May 2026 07:29:42 +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=1777966182; cv=none; b=UFHCd5TEedoib53NxT5+bjjoXGBtfsiVSMHfWUxR++/1rUFhWGqiBGk0P4CjWnNWzng+4CMoG3bd4ZOTAw0fpeE2XmVY2e2Eo5qQpRNTy5lKr2LtgfNqBSIXH4jgWgazTFF7Ms7gFyL478EDHqJwQ3v5LWpA9GXmfdAcL8T/Lm0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777966182; c=relaxed/simple; bh=cDNMrN0Yez8wSnrA6UN4k35e7qwR6fL9/Y8Ac9Y69Kc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=j+j7kJITl/0DebHEJ0p5RhUT7Sr7XFPYxf7WUGJGXQzSiBmPyV/k4tbo9vh8QQ/Q+LfzBJ+CbcJkkOuWaabXwDgDLnm2fxnVKe/zGd1Rid9cxIvWvFDWsp4ofDCqmm/blA+MsRFTpwd0aCuxQBbfgJKvwn/EyFlbCgkaJDAyrKE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=beXySKk5; 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="beXySKk5" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3DD94C4DDE5; Tue, 5 May 2026 07:29:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777966182; bh=cDNMrN0Yez8wSnrA6UN4k35e7qwR6fL9/Y8Ac9Y69Kc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=beXySKk5ZPF71TKZD3egu+0ZOFwpy/kbAMlNCSc5iDx4hK+KQmvHGxH/mpxLHjxu/ DeyGpfGt3Wduto3hUgrYHd5YyqsZgvrCFrVyajTjZhQlvNRVCKgqxjFyz7Uz8SYcSG ELMofTmQXPFX45v0XQGPU16wjVIeJmj8hoxlu7GTG7Kjx8ayRTqIAyjP/bRGBPm02g QAT7bOz8dDx1k5f5zYrFKI6IdXDa8jwM19XsI/oqS11x0bsopC3hOEpZZIQcgSxQqE SBGbYUb/fQZLNbee733BR5UH6HxWQJlzghKTXSwq89mM2GcJ2D+pQQIJJeZG7SSTmy x6Z4eEfMXGOPw== Received: from johan by xi.lan with local (Exim 4.98.2) (envelope-from ) id 1wKADr-00000002atV-3LAY; Tue, 05 May 2026 09:29:39 +0200 From: Johan Hovold To: Mark Brown Cc: Linus Walleij , Masahisa Kojima , Jassi Brar , Laxman Dewangan , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH 20/20] spi: zync-qspi: switch to managed controller allocation Date: Tue, 5 May 2026 09:29:09 +0200 Message-ID: <20260505072909.618363-21-johan@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260505072909.618363-1-johan@kernel.org> References: <20260505072909.618363-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-zynq-qspi.c | 40 +++++++++++-------------------------- 1 file changed, 12 insertions(+), 28 deletions(-) diff --git a/drivers/spi/spi-zynq-qspi.c b/drivers/spi/spi-zynq-qspi.c index 406fd9d5337e..d762aaf452af 100644 --- a/drivers/spi/spi-zynq-qspi.c +++ b/drivers/spi/spi-zynq-qspi.c @@ -637,7 +637,7 @@ static int zynq_qspi_probe(struct platform_device *pdev) struct zynq_qspi *xqspi; u32 num_cs; =20 - ctlr =3D spi_alloc_host(&pdev->dev, sizeof(*xqspi)); + ctlr =3D devm_spi_alloc_host(&pdev->dev, sizeof(*xqspi)); if (!ctlr) return -ENOMEM; =20 @@ -645,16 +645,13 @@ static int zynq_qspi_probe(struct platform_device *pd= ev) xqspi->dev =3D dev; platform_set_drvdata(pdev, ctlr); xqspi->regs =3D devm_platform_ioremap_resource(pdev, 0); - if (IS_ERR(xqspi->regs)) { - ret =3D PTR_ERR(xqspi->regs); - goto remove_ctlr; - } + if (IS_ERR(xqspi->regs)) + return PTR_ERR(xqspi->regs); =20 xqspi->pclk =3D devm_clk_get_enabled(&pdev->dev, "pclk"); if (IS_ERR(xqspi->pclk)) { dev_err(&pdev->dev, "pclk clock not found.\n"); - ret =3D PTR_ERR(xqspi->pclk); - goto remove_ctlr; + return PTR_ERR(xqspi->pclk); } =20 init_completion(&xqspi->data_completion); @@ -662,21 +659,18 @@ static int zynq_qspi_probe(struct platform_device *pd= ev) xqspi->refclk =3D devm_clk_get_enabled(&pdev->dev, "ref_clk"); if (IS_ERR(xqspi->refclk)) { dev_err(&pdev->dev, "ref_clk clock not found.\n"); - ret =3D PTR_ERR(xqspi->refclk); - goto remove_ctlr; + return PTR_ERR(xqspi->refclk); } =20 xqspi->irq =3D platform_get_irq(pdev, 0); - if (xqspi->irq < 0) { - ret =3D xqspi->irq; - goto remove_ctlr; - } + if (xqspi->irq < 0) + return xqspi->irq; + ret =3D devm_request_irq(&pdev->dev, xqspi->irq, zynq_qspi_irq, 0, pdev->name, xqspi); if (ret !=3D 0) { - ret =3D -ENXIO; dev_err(&pdev->dev, "request_irq failed\n"); - goto remove_ctlr; + return -ENXIO; } =20 ret =3D of_property_read_u32(np, "num-cs", @@ -684,9 +678,8 @@ static int zynq_qspi_probe(struct platform_device *pdev) if (ret < 0) { ctlr->num_chipselect =3D 1; } else if (num_cs > ZYNQ_QSPI_MAX_NUM_CS) { - ret =3D -EINVAL; dev_err(&pdev->dev, "only 2 chip selects are available\n"); - goto remove_ctlr; + return -EINVAL; } else { ctlr->num_chipselect =3D num_cs; } @@ -705,15 +698,10 @@ static int zynq_qspi_probe(struct platform_device *pd= ev) ret =3D spi_register_controller(ctlr); if (ret) { dev_err(&pdev->dev, "failed to register controller\n"); - goto remove_ctlr; + return ret; } =20 - return ret; - -remove_ctlr: - spi_controller_put(ctlr); - - return ret; + return 0; } =20 /** @@ -731,13 +719,9 @@ static void zynq_qspi_remove(struct platform_device *p= dev) struct spi_controller *ctlr =3D platform_get_drvdata(pdev); struct zynq_qspi *xqspi =3D spi_controller_get_devdata(ctlr); =20 - spi_controller_get(ctlr); - spi_unregister_controller(ctlr); =20 zynq_qspi_write(xqspi, ZYNQ_QSPI_ENABLE_OFFSET, 0); - - spi_controller_put(ctlr); } =20 static const struct of_device_id zynq_qspi_of_match[] =3D { --=20 2.53.0