From: Andrey Smirnov Date: Wed, 3 Apr 2019 04:01:33 +0000 (-0700) Subject: spi: gpio: Use devm_spi_register_master() X-Git-Tag: rel_imx_5.10.35_2.0.0-somdevices.0~4520^2~27 X-Git-Url: https://git.somdevices.com/?a=commitdiff_plain;h=79567c1a321e;p=linux.git spi: gpio: Use devm_spi_register_master() Replace spi_bitbang_start() with a combination of spi_bitbang_init() and devm_spi_register_master() and drop all of the explicit cleanup-related code that's no longer necessary. Signed-off-by: Andrey Smirnov Cc: Mark Brown Cc: Chris Healy Cc: linux-spi@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Mark Brown --- diff --git a/drivers/spi/spi-gpio.c b/drivers/spi/spi-gpio.c index d4a22f22b04c..487ee55d26f7 100644 --- a/drivers/spi/spi-gpio.c +++ b/drivers/spi/spi-gpio.c @@ -396,8 +396,6 @@ static int spi_gpio_probe(struct platform_device *pdev) spi_gpio = spi_master_get_devdata(master); - platform_set_drvdata(pdev, spi_gpio); - status = spi_gpio_request(dev, spi_gpio); if (status) return status; @@ -437,19 +435,11 @@ static int spi_gpio_probe(struct platform_device *pdev) } bb->setup_transfer = spi_bitbang_setup_transfer; - return spi_bitbang_start(&spi_gpio->bitbang); -} - -static int spi_gpio_remove(struct platform_device *pdev) -{ - struct spi_gpio *spi_gpio; - - spi_gpio = platform_get_drvdata(pdev); - - /* stop() unregisters child devices too */ - spi_bitbang_stop(&spi_gpio->bitbang); + status = spi_bitbang_init(&spi_gpio->bitbang); + if (status) + return status; - return 0; + return devm_spi_register_master(&pdev->dev, spi_master_get(master)); } MODULE_ALIAS("platform:" DRIVER_NAME); @@ -460,7 +450,6 @@ static struct platform_driver spi_gpio_driver = { .of_match_table = of_match_ptr(spi_gpio_dt_ids), }, .probe = spi_gpio_probe, - .remove = spi_gpio_remove, }; module_platform_driver(spi_gpio_driver);