spi: jcore: switch to managed controller allocation

Switch to device managed controller allocation for consistency and to
simplify error handling.

Signed-off-by: Johan Hovold <johan@kernel.org>
Link: https://patch.msgid.link/20260511150408.796155-8-johan@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Johan Hovold
2026-05-11 17:04:03 +02:00
committed by Mark Brown
parent 572a9fb1a6
commit 0a290bb1ff

View File

@@ -146,11 +146,10 @@ static int jcore_spi_probe(struct platform_device *pdev)
struct resource *res;
u32 clock_freq;
struct clk *clk;
int err = -ENODEV;
host = spi_alloc_host(&pdev->dev, sizeof(struct jcore_spi));
host = devm_spi_alloc_host(&pdev->dev, sizeof(struct jcore_spi));
if (!host)
return err;
return -ENOMEM;
/* Setup the host state. */
host->num_chipselect = 3;
@@ -167,14 +166,14 @@ static int jcore_spi_probe(struct platform_device *pdev)
/* Find and map our resources */
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (!res)
goto exit_busy;
return -EBUSY;
if (!devm_request_mem_region(&pdev->dev, res->start,
resource_size(res), pdev->name))
goto exit_busy;
return -EBUSY;
hw->base = devm_ioremap(&pdev->dev, res->start,
resource_size(res));
if (!hw->base)
goto exit_busy;
return -EBUSY;
/*
* The SPI clock rate controlled via a configurable clock divider
@@ -200,17 +199,7 @@ static int jcore_spi_probe(struct platform_device *pdev)
jcore_spi_baudrate(hw, 400000);
/* Register our spi controller */
err = devm_spi_register_controller(&pdev->dev, host);
if (err)
goto exit;
return 0;
exit_busy:
err = -EBUSY;
exit:
spi_controller_put(host);
return err;
return devm_spi_register_controller(&pdev->dev, host);
}
static const struct of_device_id jcore_spi_of_match[] = {