|
@@ -486,8 +486,7 @@ int dw_spi_add_host(struct device *dev, struct dw_spi *dws)
|
|
|
dws->dma_addr = (dma_addr_t)(dws->paddr + 0x60);
|
|
|
snprintf(dws->name, sizeof(dws->name), "dw_spi%d", dws->bus_num);
|
|
|
|
|
|
- ret = devm_request_irq(dev, dws->irq, dw_spi_irq, IRQF_SHARED,
|
|
|
- dws->name, master);
|
|
|
+ ret = request_irq(dws->irq, dw_spi_irq, IRQF_SHARED, dws->name, master);
|
|
|
if (ret < 0) {
|
|
|
dev_err(dev, "can not get IRQ\n");
|
|
|
goto err_free_master;
|
|
@@ -532,6 +531,7 @@ err_dma_exit:
|
|
|
if (dws->dma_ops && dws->dma_ops->dma_exit)
|
|
|
dws->dma_ops->dma_exit(dws);
|
|
|
spi_enable_chip(dws, 0);
|
|
|
+ free_irq(dws->irq, master);
|
|
|
err_free_master:
|
|
|
spi_master_put(master);
|
|
|
return ret;
|
|
@@ -548,6 +548,8 @@ void dw_spi_remove_host(struct dw_spi *dws)
|
|
|
dws->dma_ops->dma_exit(dws);
|
|
|
|
|
|
spi_shutdown_chip(dws);
|
|
|
+
|
|
|
+ free_irq(dws->irq, dws->master);
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(dw_spi_remove_host);
|
|
|
|