|
@@ -516,10 +516,26 @@ free_master:
|
|
|
|
|
|
static int ti_qspi_remove(struct platform_device *pdev)
|
|
|
{
|
|
|
- struct ti_qspi *qspi = platform_get_drvdata(pdev);
|
|
|
+ struct spi_master *master;
|
|
|
+ struct ti_qspi *qspi;
|
|
|
+ int ret;
|
|
|
+
|
|
|
+ master = platform_get_drvdata(pdev);
|
|
|
+ qspi = spi_master_get_devdata(master);
|
|
|
+
|
|
|
+ ret = pm_runtime_get_sync(qspi->dev);
|
|
|
+ if (ret < 0) {
|
|
|
+ dev_err(qspi->dev, "pm_runtime_get_sync() failed\n");
|
|
|
+ return ret;
|
|
|
+ }
|
|
|
|
|
|
ti_qspi_write(qspi, QSPI_WC_INT_DISABLE, QSPI_INTR_ENABLE_CLEAR_REG);
|
|
|
|
|
|
+ pm_runtime_put(qspi->dev);
|
|
|
+ pm_runtime_disable(&pdev->dev);
|
|
|
+
|
|
|
+ spi_unregister_master(master);
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|