Lines Matching defs:csd

96 	struct mmc_csd csd;	/* csd decoded */
180 static void mmc_decode_csd_mmc(uint32_t *raw_csd, struct mmc_csd *csd);
181 static int mmc_decode_csd_sd(uint32_t *raw_csd, struct mmc_csd *csd);
831 if (mmcbr_get_mode(dev) != mode_mmc || ivar->csd.spec_vers < 4 ||
1179 mmc_decode_csd_sd(uint32_t *raw_csd, struct mmc_csd *csd)
1185 memset(csd, 0, sizeof(*csd));
1186 csd->csd_structure = v = mmc_get_bits(raw_csd, 128, 126, 2);
1190 csd->tacc = (exp[e] * mant[m] + 9) / 10;
1191 csd->nsac = mmc_get_bits(raw_csd, 128, 104, 8) * 100;
1194 csd->tran_speed = exp[e] * 10000 * mant[m];
1195 csd->ccc = mmc_get_bits(raw_csd, 128, 84, 12);
1196 csd->read_bl_len = 1 << mmc_get_bits(raw_csd, 128, 80, 4);
1197 csd->read_bl_partial = mmc_get_bits(raw_csd, 128, 79, 1);
1198 csd->write_blk_misalign = mmc_get_bits(raw_csd, 128, 78, 1);
1199 csd->read_blk_misalign = mmc_get_bits(raw_csd, 128, 77, 1);
1200 csd->dsr_imp = mmc_get_bits(raw_csd, 128, 76, 1);
1201 csd->vdd_r_curr_min =
1203 csd->vdd_r_curr_max =
1205 csd->vdd_w_curr_min =
1207 csd->vdd_w_curr_max =
1211 csd->capacity = ((1 + m) << (e + 2)) * csd->read_bl_len;
1212 csd->erase_blk_en = mmc_get_bits(raw_csd, 128, 46, 1);
1213 csd->erase_sector = mmc_get_bits(raw_csd, 128, 39, 7) + 1;
1214 csd->wp_grp_size = mmc_get_bits(raw_csd, 128, 32, 7);
1215 csd->wp_grp_enable = mmc_get_bits(raw_csd, 128, 31, 1);
1216 csd->r2w_factor = 1 << mmc_get_bits(raw_csd, 128, 26, 3);
1217 csd->write_bl_len = 1 << mmc_get_bits(raw_csd, 128, 22, 4);
1218 csd->write_bl_partial = mmc_get_bits(raw_csd, 128, 21, 1);
1223 csd->tacc = (exp[e] * mant[m] + 9) / 10;
1224 csd->nsac = mmc_get_bits(raw_csd, 128, 104, 8) * 100;
1227 csd->tran_speed = exp[e] * 10000 * mant[m];
1228 csd->ccc = mmc_get_bits(raw_csd, 128, 84, 12);
1229 csd->read_bl_len = 1 << mmc_get_bits(raw_csd, 128, 80, 4);
1230 csd->read_bl_partial = mmc_get_bits(raw_csd, 128, 79, 1);
1231 csd->write_blk_misalign = mmc_get_bits(raw_csd, 128, 78, 1);
1232 csd->read_blk_misalign = mmc_get_bits(raw_csd, 128, 77, 1);
1233 csd->dsr_imp = mmc_get_bits(raw_csd, 128, 76, 1);
1234 csd->capacity = ((uint64_t)mmc_get_bits(raw_csd, 128, 48, 22) +
1236 csd->erase_blk_en = mmc_get_bits(raw_csd, 128, 46, 1);
1237 csd->erase_sector = mmc_get_bits(raw_csd, 128, 39, 7) + 1;
1238 csd->wp_grp_size = mmc_get_bits(raw_csd, 128, 32, 7);
1239 csd->wp_grp_enable = mmc_get_bits(raw_csd, 128, 31, 1);
1240 csd->r2w_factor = 1 << mmc_get_bits(raw_csd, 128, 26, 3);
1241 csd->write_bl_len = 1 << mmc_get_bits(raw_csd, 128, 22, 4);
1242 csd->write_bl_partial = mmc_get_bits(raw_csd, 128, 21, 1);
1249 mmc_decode_csd_mmc(uint32_t *raw_csd, struct mmc_csd *csd)
1254 memset(csd, 0, sizeof(*csd));
1255 csd->csd_structure = mmc_get_bits(raw_csd, 128, 126, 2);
1256 csd->spec_vers = mmc_get_bits(raw_csd, 128, 122, 4);
1259 csd->tacc = exp[e] * mant[m] + 9 / 10;
1260 csd->nsac = mmc_get_bits(raw_csd, 128, 104, 8) * 100;
1263 csd->tran_speed = exp[e] * 10000 * mant[m];
1264 csd->ccc = mmc_get_bits(raw_csd, 128, 84, 12);
1265 csd->read_bl_len = 1 << mmc_get_bits(raw_csd, 128, 80, 4);
1266 csd->read_bl_partial = mmc_get_bits(raw_csd, 128, 79, 1);
1267 csd->write_blk_misalign = mmc_get_bits(raw_csd, 128, 78, 1);
1268 csd->read_blk_misalign = mmc_get_bits(raw_csd, 128, 77, 1);
1269 csd->dsr_imp = mmc_get_bits(raw_csd, 128, 76, 1);
1270 csd->vdd_r_curr_min = cur_min[mmc_get_bits(raw_csd, 128, 59, 3)];
1271 csd->vdd_r_curr_max = cur_max[mmc_get_bits(raw_csd, 128, 56, 3)];
1272 csd->vdd_w_curr_min = cur_min[mmc_get_bits(raw_csd, 128, 53, 3)];
1273 csd->vdd_w_curr_max = cur_max[mmc_get_bits(raw_csd, 128, 50, 3)];
1276 csd->capacity = ((1 + m) << (e + 2)) * csd->read_bl_len;
1277 csd->erase_blk_en = 0;
1278 csd->erase_sector = (mmc_get_bits(raw_csd, 128, 42, 5) + 1) *
1280 csd->wp_grp_size = mmc_get_bits(raw_csd, 128, 32, 5);
1281 csd->wp_grp_enable = mmc_get_bits(raw_csd, 128, 31, 1);
1282 csd->r2w_factor = 1 << mmc_get_bits(raw_csd, 128, 26, 3);
1283 csd->write_bl_len = 1 << mmc_get_bits(raw_csd, 128, 22, 4);
1284 csd->write_bl_partial = mmc_get_bits(raw_csd, 128, 21, 1);
1657 err = mmc_decode_csd_sd(ivar->raw_csd, &ivar->csd);
1662 ivar->sec_count = ivar->csd.capacity / MMC_SECTOR_SIZE;
1663 if (ivar->csd.csd_structure > 0)
1665 ivar->tran_speed = ivar->csd.tran_speed;
1666 ivar->erase_sector = ivar->csd.erase_sector *
1667 ivar->csd.write_bl_len / MMC_SECTOR_SIZE;
1698 (ivar->csd.ccc & (1 << 10))) {
1757 mmc_decode_csd_mmc(ivar->raw_csd, &ivar->csd);
1758 ivar->sec_count = ivar->csd.capacity / MMC_SECTOR_SIZE;
1759 ivar->tran_speed = ivar->csd.tran_speed;
1760 ivar->erase_sector = ivar->csd.erase_sector *
1761 ivar->csd.write_bl_len / MMC_SECTOR_SIZE;
1784 if (ivar->csd.spec_vers >= 4) {
1908 if (ivar->csd.read_bl_len != MMC_SECTOR_SIZE ||
1909 ivar->csd.write_bl_len != MMC_SECTOR_SIZE)
2472 *result = ivar->csd.spec_vers;
2475 *result = ivar->csd.dsr_imp;