|
@@ -540,6 +540,7 @@ static int dw_mci_idmac_init(struct dw_mci *host)
|
|
|
(sizeof(struct idmac_desc_64addr) *
|
|
|
(i + 1))) >> 32;
|
|
|
/* Initialize reserved and buffer size fields to "0" */
|
|
|
+ p->des0 = 0;
|
|
|
p->des1 = 0;
|
|
|
p->des2 = 0;
|
|
|
p->des3 = 0;
|
|
@@ -562,6 +563,7 @@ static int dw_mci_idmac_init(struct dw_mci *host)
|
|
|
i++, p++) {
|
|
|
p->des3 = cpu_to_le32(host->sg_dma +
|
|
|
(sizeof(struct idmac_desc) * (i + 1)));
|
|
|
+ p->des0 = 0;
|
|
|
p->des1 = 0;
|
|
|
}
|
|
|
|
|
@@ -1777,8 +1779,8 @@ static bool dw_mci_reset(struct dw_mci *host)
|
|
|
}
|
|
|
|
|
|
if (host->use_dma == TRANS_MODE_IDMAC)
|
|
|
- /* It is also recommended that we reset and reprogram idmac */
|
|
|
- dw_mci_idmac_reset(host);
|
|
|
+ /* It is also required that we reinit idmac */
|
|
|
+ dw_mci_idmac_init(host);
|
|
|
|
|
|
ret = true;
|
|
|
|