diff --git a/drivers/spi/spi-sun4i.c b/drivers/spi/spi-sun4i.c index a8fba310d700..ab99cc743865 100644 --- a/drivers/spi/spi-sun4i.c +++ b/drivers/spi/spi-sun4i.c @@ -503,7 +503,7 @@ static int sun4i_spi_probe(struct platform_device *pdev) pm_runtime_enable(&pdev->dev); pm_runtime_idle(&pdev->dev); - ret = devm_spi_register_master(&pdev->dev, master); + ret = spi_register_master(master); if (ret) { dev_err(&pdev->dev, "cannot register SPI master\n"); goto err_pm_disable; @@ -521,8 +521,16 @@ static int sun4i_spi_probe(struct platform_device *pdev) static int sun4i_spi_remove(struct platform_device *pdev) { + struct spi_master *master = platform_get_drvdata(pdev); + + spi_master_get(master); + + spi_unregister_master(master); + pm_runtime_force_suspend(&pdev->dev); + spi_master_put(master); + return 0; }