|
@@ -1981,32 +1981,19 @@ static int __init omap_hsmmc_probe(struct platform_device *pdev)
|
|
|
|
|
|
omap_hsmmc_conf_bus_power(host);
|
|
|
|
|
|
- /* Select DMA lines */
|
|
|
- switch (host->id) {
|
|
|
- case OMAP_MMC1_DEVID:
|
|
|
- host->dma_line_tx = OMAP24XX_DMA_MMC1_TX;
|
|
|
- host->dma_line_rx = OMAP24XX_DMA_MMC1_RX;
|
|
|
- break;
|
|
|
- case OMAP_MMC2_DEVID:
|
|
|
- host->dma_line_tx = OMAP24XX_DMA_MMC2_TX;
|
|
|
- host->dma_line_rx = OMAP24XX_DMA_MMC2_RX;
|
|
|
- break;
|
|
|
- case OMAP_MMC3_DEVID:
|
|
|
- host->dma_line_tx = OMAP34XX_DMA_MMC3_TX;
|
|
|
- host->dma_line_rx = OMAP34XX_DMA_MMC3_RX;
|
|
|
- break;
|
|
|
- case OMAP_MMC4_DEVID:
|
|
|
- host->dma_line_tx = OMAP44XX_DMA_MMC4_TX;
|
|
|
- host->dma_line_rx = OMAP44XX_DMA_MMC4_RX;
|
|
|
- break;
|
|
|
- case OMAP_MMC5_DEVID:
|
|
|
- host->dma_line_tx = OMAP44XX_DMA_MMC5_TX;
|
|
|
- host->dma_line_rx = OMAP44XX_DMA_MMC5_RX;
|
|
|
- break;
|
|
|
- default:
|
|
|
- dev_err(mmc_dev(host->mmc), "Invalid MMC id\n");
|
|
|
+ res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "tx");
|
|
|
+ if (!res) {
|
|
|
+ dev_err(mmc_dev(host->mmc), "cannot get DMA TX channel\n");
|
|
|
+ goto err_irq;
|
|
|
+ }
|
|
|
+ host->dma_line_tx = res->start;
|
|
|
+
|
|
|
+ res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "rx");
|
|
|
+ if (!res) {
|
|
|
+ dev_err(mmc_dev(host->mmc), "cannot get DMA RX channel\n");
|
|
|
goto err_irq;
|
|
|
}
|
|
|
+ host->dma_line_rx = res->start;
|
|
|
|
|
|
/* Request IRQ for MMC operations */
|
|
|
ret = request_irq(host->irq, omap_hsmmc_irq, 0,
|