From 3584ef129ee2bc385e7321b86055f43760f2cef6 Mon Sep 17 00:00:00 2001 From: Vishwaroop A Date: Wed, 13 Mar 2024 08:30:43 +0000 Subject: [PATCH] drivers: spi: remove spi_master_put() in probe Currently the spi_master is allocated by devm_spi_alloc_master() in the spi slave. so there is no need to call spi_master put again this fixes the probe failure seen in spi slave driver Bug 4537830 Signed-off-by: Vishwaroop A Change-Id: Ie0ea17c308caade7c0a1f298c7ac4f3b86a38541 Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3095347 Reviewed-by: Laxman Dewangan GVS: Gerrit_Virtual_Submit Reviewed-by: svcacv --- drivers/spi/spi-tegra124-slave.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/drivers/spi/spi-tegra124-slave.c b/drivers/spi/spi-tegra124-slave.c index c48d03ee..bfd480d9 100644 --- a/drivers/spi/spi-tegra124-slave.c +++ b/drivers/spi/spi-tegra124-slave.c @@ -2026,7 +2026,7 @@ static int tegra_spi_probe(struct platform_device *pdev) dev_err(&pdev->dev, "Slave Ready GPIO is unusable as it can sleep\n"); ret = -EINVAL; - goto exit_free_master; + return ret; } tspi->slave_ready_active_high = pdata->slave_ready_active_high; @@ -2044,7 +2044,7 @@ static int tegra_spi_probe(struct platform_device *pdev) if (!r) { dev_err(&pdev->dev, "No IO memory resource\n"); ret = -ENODEV; - goto exit_free_master; + return ret; } tspi->phys = r->start; tspi->base = devm_ioremap_resource(&pdev->dev, r); @@ -2052,7 +2052,7 @@ static int tegra_spi_probe(struct platform_device *pdev) dev_err(&pdev->dev, "Cannot request memregion/iomap dma address\n"); ret = PTR_ERR(tspi->base); - goto exit_free_master; + return ret; } tspi->rstc = devm_reset_control_get(&pdev->dev, "spi"); @@ -2069,7 +2069,7 @@ static int tegra_spi_probe(struct platform_device *pdev) if (ret < 0) { dev_err(&pdev->dev, "Failed to register ISR for IRQ %d\n", tspi->irq); - goto exit_free_master; + return ret; } tspi->clk = devm_clk_get(&pdev->dev, "spi"); @@ -2172,8 +2172,6 @@ exit_rx_dma_free: tegra_spi_deinit_dma_param(tspi, true); exit_free_irq: free_irq(spi_irq, tspi); -exit_free_master: - spi_master_put(controller); return ret; }