static void HSMMCSDXferSetup(mmcsdCtrlInfo *ctrl, unsigned char rwFlag, void *ptr, unsigned int blkSize, unsigned int nBlks) { callbackOccured = 0; xferCompFlag = 0; if (rwFlag == 1) { HSMMCSDRxDmaConfig(ptr, blkSize, nBlks); } else { HSMMCSDTxDmaConfig(ptr, blkSize, nBlks); } ctrl->dmaEnable = 1; HSMMCSDBlkLenSet(ctrl->memBase, blkSize); }
static void HSMMCSDXferSetup(mmcsdCtrlInfo *ctrl, unsigned char rwFlag, void *ptr,unsigned int blkSize, unsigned int nBlks) { HSMMCSDIntrStatusClear(ctrl->memBase, HS_MMCSD_INTR_TRNFCOMP); if (rwFlag == 1) { HSMMCSDIntrStatusClear(ctrl->memBase, HS_MMCSD_INTR_BUFRDRDY); HSMMCSDIntrStatusEnable(ctrl->memBase, HS_MMCSD_INTR_BUFRDRDY); HSMMCSDIntrStatusDisable(ctrl->memBase, HS_MMCSD_INTR_BUFWRRDY); } else { HSMMCSDIntrStatusClear(ctrl->memBase, HS_MMCSD_INTR_BUFWRRDY); HSMMCSDIntrStatusEnable(ctrl->memBase, HS_MMCSD_INTR_BUFWRRDY); HSMMCSDIntrStatusDisable(ctrl->memBase, HS_MMCSD_INTR_BUFRDRDY); } HSMMCSDBlkLenSet(ctrl->memBase, blkSize); hsmmcsd_dataLen = (nBlks * blkSize); hsmmcsd_buffer = ptr; xferPend = 1; }