Lines Matching refs:mmc

17 static ulong mmc_erase_t(struct mmc *mmc, ulong start, lbaint_t blkcnt)  in mmc_erase_t()  argument
23 if (mmc->high_capacity) { in mmc_erase_t()
26 end = (start + blkcnt - 1) * mmc->write_bl_len; in mmc_erase_t()
27 start *= mmc->write_bl_len; in mmc_erase_t()
30 if (IS_SD(mmc)) { in mmc_erase_t()
42 err = mmc_send_cmd(mmc, &cmd, NULL); in mmc_erase_t()
49 err = mmc_send_cmd(mmc, &cmd, NULL); in mmc_erase_t()
57 err = mmc_send_cmd(mmc, &cmd, NULL); in mmc_erase_t()
80 struct mmc *mmc = find_mmc_device(dev_num); in mmc_berase() local
84 if (!mmc) in mmc_berase()
97 err = div_u64_rem(start, mmc->erase_grp_size, &start_rem); in mmc_berase()
98 err = div_u64_rem(blkcnt, mmc->erase_grp_size, &blkcnt_rem); in mmc_berase()
103 mmc->erase_grp_size, start & ~(mmc->erase_grp_size - 1), in mmc_berase()
104 ((start + blkcnt + mmc->erase_grp_size) in mmc_berase()
105 & ~(mmc->erase_grp_size - 1)) - 1); in mmc_berase()
108 if (IS_SD(mmc) && mmc->ssr.au) { in mmc_berase()
109 blk_r = ((blkcnt - blk) > mmc->ssr.au) ? in mmc_berase()
110 mmc->ssr.au : (blkcnt - blk); in mmc_berase()
112 blk_r = ((blkcnt - blk) > mmc->erase_grp_size) ? in mmc_berase()
113 mmc->erase_grp_size : (blkcnt - blk); in mmc_berase()
115 err = mmc_erase_t(mmc, start + blk, blk_r); in mmc_berase()
122 if (mmc_send_status(mmc, timeout)) in mmc_berase()
129 static ulong mmc_write_blocks(struct mmc *mmc, lbaint_t start, in mmc_write_blocks() argument
136 if ((start + blkcnt) > mmc_get_blk_desc(mmc)->lba) { in mmc_write_blocks()
138 start + blkcnt, mmc_get_blk_desc(mmc)->lba); in mmc_write_blocks()
149 if (mmc->high_capacity) in mmc_write_blocks()
152 cmd.cmdarg = start * mmc->write_bl_len; in mmc_write_blocks()
158 data.blocksize = mmc->write_bl_len; in mmc_write_blocks()
161 if (mmc_send_cmd(mmc, &cmd, &data)) { in mmc_write_blocks()
169 if (!mmc_host_is_spi(mmc) && blkcnt > 1) { in mmc_write_blocks()
173 if (mmc_send_cmd(mmc, &cmd, NULL)) { in mmc_write_blocks()
180 if (mmc_send_status(mmc, timeout)) in mmc_write_blocks()
201 struct mmc *mmc = find_mmc_device(dev_num); in mmc_bwrite() local
202 if (!mmc) in mmc_bwrite()
209 if (mmc_set_blocklen(mmc, mmc->write_bl_len)) in mmc_bwrite()
213 cur = (blocks_todo > mmc->cfg->b_max) ? in mmc_bwrite()
214 mmc->cfg->b_max : blocks_todo; in mmc_bwrite()
215 if (mmc_write_blocks(mmc, start, cur, src) != cur) in mmc_bwrite()
219 src += cur * mmc->write_bl_len; in mmc_bwrite()