From ad25dc3346a0608814a1349a724d5b16c63db519 Mon Sep 17 00:00:00 2001 From: Viresh Kumar Date: Wed, 10 Aug 2011 14:20:58 +0530 Subject: [PATCH] --- yaml --- r: 271172 b: refs/heads/master c: 3e3ea716270dc64810f624ad6a3672440b45d3d4 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/spi/spi-pl022.c | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 35efa06ff1b3..9041041a9cdb 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0379b2a33a8a03d4ad1036ef646419dbdf1ac15a +refs/heads/master: 3e3ea716270dc64810f624ad6a3672440b45d3d4 diff --git a/trunk/drivers/spi/spi-pl022.c b/trunk/drivers/spi/spi-pl022.c index 4e1a1e3b2a8c..c828dc607d99 100644 --- a/trunk/drivers/spi/spi-pl022.c +++ b/trunk/drivers/spi/spi-pl022.c @@ -2237,7 +2237,9 @@ pl022_probe(struct amba_device *adev, const struct amba_id *id) err_start_queue: err_init_queue: destroy_queue(pl022); - pl022_dma_remove(pl022); + if (platform_info->enable_dma) + pl022_dma_remove(pl022); + free_irq(adev->irq[0], pl022); pm_runtime_disable(&adev->dev); err_no_irq: @@ -2265,7 +2267,9 @@ pl022_remove(struct amba_device *adev) if (destroy_queue(pl022) != 0) dev_err(&adev->dev, "queue remove failed\n"); load_ssp_default_config(pl022); - pl022_dma_remove(pl022); + if (pl022->master_info->enable_dma) + pl022_dma_remove(pl022); + free_irq(adev->irq[0], pl022); clk_disable(pl022->clk); clk_put(pl022->clk);