spi/spi-pl022: Call pl022_dma_remove(pl022) only if enable_dma is true
authorViresh Kumar <viresh.kumar@st.com>
Wed, 10 Aug 2011 08:50:58 +0000 (14:20 +0530)
committerGrant Likely <grant.likely@secretlab.ca>
Wed, 21 Sep 2011 15:41:48 +0000 (09:41 -0600)
pl022_dma_remove() should be called only if enable_dma is true. There is no
point calling it when pl022_dma_probe() is not called, which again depends on
enable_dma.

Signed-off-by: Viresh Kumar <viresh.kumar@st.com>
Tested-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
drivers/spi/spi-pl022.c

index 4e1a1e3..c828dc6 100644 (file)
@@ -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);