* Venkatraman S <[email protected]> [100310 06:08]:
> @@ -1400,14 +1471,23 @@ omap_hsmmc_prepare_data(struct omap_hsmmc_host
> *host, struct mmc_request *req)
>                                       | (req->data->blocks << 16));
>       set_data_timeout(host, req->data->timeout_ns, req->data->timeout_clks);
> 
> -     if (host->use_dma) {
> -             ret = omap_hsmmc_start_dma_transfer(host, req);
> -             if (ret != 0) {
> -                     dev_dbg(mmc_dev(host->mmc), "MMC start dma failure\n");
> +     if (host->dma_caps & DMA_TYPE_SDMA) {
> +             ret = omap_hsmmc_configure_sdma(host, req);
> +             if (ret)
>                       return ret;
> -             }
> +             host->dma_in_use = DMA_TYPE_SDMA;
>       }
> -     return 0;
> +     if ((host->dma_caps & DMA_TYPE_SDMA_DLOAD) &&
> +             host->data->sg_len > 4) {
> +             ret = omap_hsmmc_configure_sdma_sglist(host, req);
> +             if (ret)
> +                     return ret;
> +             host->dma_in_use = DMA_TYPE_SDMA_DLOAD;
> +
> +     }
> +     ret = omap_hsmmc_start_dma_transfer(host);
> +     return ret;
> +
>  }

Does the driver still work in PIO mode?

We need to have the drivers capable to fail over to PIO mode
as the DMA channels can run out.

Regards,

Tony
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to