diff --git a/drivers/spi/spi-lantiq-ssc.c b/drivers/spi/spi-lantiq-ssc.c index dc740b5f720b..d651ee565a7a 100644 --- a/drivers/spi/spi-lantiq-ssc.c +++ b/drivers/spi/spi-lantiq-ssc.c @@ -945,7 +945,7 @@ static int lantiq_ssc_probe(struct platform_device *pdev) "Lantiq SSC SPI controller (Rev %i, TXFS %u, RXFS %u, DMA %u)\n", revision, spi->tx_fifo_size, spi->rx_fifo_size, supports_dma); - err = devm_spi_register_master(dev, master); + err = spi_register_master(master); if (err) { dev_err(dev, "failed to register spi_master\n"); goto err_wq_destroy; @@ -969,6 +969,10 @@ static int lantiq_ssc_remove(struct platform_device *pdev) { struct lantiq_ssc_spi *spi = platform_get_drvdata(pdev); + spi_master_get(spi->master); + + spi_unregister_master(spi->master); + lantiq_ssc_writel(spi, 0, LTQ_SPI_IRNEN); lantiq_ssc_writel(spi, 0, LTQ_SPI_CLC); rx_fifo_flush(spi); @@ -979,6 +983,8 @@ static int lantiq_ssc_remove(struct platform_device *pdev) clk_disable_unprepare(spi->spi_clk); clk_put(spi->fpi_clk); + spi_master_put(spi->master); + return 0; }