diff options
Diffstat (limited to 'drivers/mmc/host/sh_mobile_sdhi.c')
-rw-r--r-- | drivers/mmc/host/sh_mobile_sdhi.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c index b3654293017b..ce500f03df85 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/sh_mobile_sdhi.c | |||
@@ -92,7 +92,7 @@ static int __devinit sh_mobile_sdhi_probe(struct platform_device *pdev) | |||
92 | mmc_data->ocr_mask = p->tmio_ocr_mask; | 92 | mmc_data->ocr_mask = p->tmio_ocr_mask; |
93 | mmc_data->capabilities |= p->tmio_caps; | 93 | mmc_data->capabilities |= p->tmio_caps; |
94 | 94 | ||
95 | if (p->dma_slave_tx >= 0 && p->dma_slave_rx >= 0) { | 95 | if (p->dma_slave_tx > 0 && p->dma_slave_rx > 0) { |
96 | priv->param_tx.slave_id = p->dma_slave_tx; | 96 | priv->param_tx.slave_id = p->dma_slave_tx; |
97 | priv->param_rx.slave_id = p->dma_slave_rx; | 97 | priv->param_rx.slave_id = p->dma_slave_rx; |
98 | priv->dma_priv.chan_priv_tx = &priv->param_tx; | 98 | priv->dma_priv.chan_priv_tx = &priv->param_tx; |
@@ -165,13 +165,14 @@ static int sh_mobile_sdhi_remove(struct platform_device *pdev) | |||
165 | 165 | ||
166 | p->pdata = NULL; | 166 | p->pdata = NULL; |
167 | 167 | ||
168 | tmio_mmc_host_remove(host); | ||
169 | |||
168 | for (i = 0; i < 3; i++) { | 170 | for (i = 0; i < 3; i++) { |
169 | irq = platform_get_irq(pdev, i); | 171 | irq = platform_get_irq(pdev, i); |
170 | if (irq >= 0) | 172 | if (irq >= 0) |
171 | free_irq(irq, host); | 173 | free_irq(irq, host); |
172 | } | 174 | } |
173 | 175 | ||
174 | tmio_mmc_host_remove(host); | ||
175 | clk_disable(priv->clk); | 176 | clk_disable(priv->clk); |
176 | clk_put(priv->clk); | 177 | clk_put(priv->clk); |
177 | kfree(priv); | 178 | kfree(priv); |