mmc->max_seg_size = host->pdata->blk_settings->max_seg_size;
        } else {
                /* Useful defaults if platform data is unset. */
-#ifdef CONFIG_MMC_DW_IDMAC
-               mmc->max_segs = host->ring_size;
-               mmc->max_blk_size = 65536;
-               mmc->max_seg_size = DW_MCI_DESC_DATA_LENGTH;
-               mmc->max_req_size = mmc->max_seg_size * host->ring_size;
-               mmc->max_blk_count = mmc->max_req_size / 512;
-#else
-               mmc->max_segs = 64;
-               mmc->max_blk_size = 65536; /* BLKSIZ is 16 bits */
-               mmc->max_blk_count = 512;
-               mmc->max_req_size = mmc->max_blk_size * mmc->max_blk_count;
-               mmc->max_seg_size = mmc->max_req_size;
-#endif /* CONFIG_MMC_DW_IDMAC */
+               if (host->use_dma) {
+                       mmc->max_segs = host->ring_size;
+                       mmc->max_blk_size = 65536;
+                       mmc->max_seg_size = 0x1000;
+                       mmc->max_req_size = mmc->max_seg_size * host->ring_size;
+                       mmc->max_blk_count = mmc->max_req_size / 512;
+               } else {
+                       mmc->max_segs = 64;
+                       mmc->max_blk_size = 65536; /* BLKSIZ is 16 bits */
+                       mmc->max_blk_count = 512;
+                       mmc->max_req_size = mmc->max_blk_size *
+                                           mmc->max_blk_count;
+                       mmc->max_seg_size = mmc->max_req_size;
+               }
        }
 
        if (dw_mci_get_cd(mmc))