Lines Matching refs:ext_csd
727 static int mmc_send_ext_csd(struct mmc *mmc, u8 *ext_csd) in mmc_send_ext_csd() argument
738 data.dest = (char *)ext_csd; in mmc_send_ext_csd()
891 u8 *ext_csd = mmc->ext_csd; in mmc_get_capabilities() local
903 if (!ext_csd) { in mmc_get_capabilities()
910 cardtype = ext_csd[EXT_CSD_CARD_TYPE]; in mmc_get_capabilities()
935 if (ext_csd[EXT_CSD_STROBE_SUPPORT] && in mmc_get_capabilities()
1010 ALLOC_CACHE_ALIGN_BUFFER(u8, ext_csd, MMC_MAX_BLOCK_LEN); in mmc_hwpart_config()
1069 err = mmc_send_ext_csd(mmc, ext_csd); in mmc_hwpart_config()
1074 (ext_csd[EXT_CSD_MAX_ENH_SIZE_MULT+2] << 16) + in mmc_hwpart_config()
1075 (ext_csd[EXT_CSD_MAX_ENH_SIZE_MULT+1] << 8) + in mmc_hwpart_config()
1076 ext_csd[EXT_CSD_MAX_ENH_SIZE_MULT]; in mmc_hwpart_config()
1087 wr_rel_set = ext_csd[EXT_CSD_WR_REL_SET]; in mmc_hwpart_config()
1103 if (wr_rel_set != ext_csd[EXT_CSD_WR_REL_SET] && in mmc_hwpart_config()
1104 !(ext_csd[EXT_CSD_WR_REL_PARAM] & EXT_CSD_HS_CTRL_REL)) { in mmc_hwpart_config()
1110 if (ext_csd[EXT_CSD_PARTITION_SETTING] & in mmc_hwpart_config()
1120 if (!(ext_csd[EXT_CSD_ERASE_GROUP_DEF] & 0x01)) { in mmc_hwpart_config()
1127 ext_csd[EXT_CSD_ERASE_GROUP_DEF] = 1; in mmc_hwpart_config()
1131 ext_csd[EXT_CSD_HC_ERASE_GRP_SIZE] * 1024; in mmc_hwpart_config()
1171 if (wr_rel_set != ext_csd[EXT_CSD_WR_REL_SET]) { in mmc_hwpart_config()
1794 const u8 *ext_csd = mmc->ext_csd; in mmc_read_and_compare_ext_csd() local
1805 if (ext_csd[EXT_CSD_PARTITIONING_SUPPORT] in mmc_read_and_compare_ext_csd()
1807 ext_csd[EXT_CSD_HC_WP_GRP_SIZE] in mmc_read_and_compare_ext_csd()
1809 ext_csd[EXT_CSD_REV] in mmc_read_and_compare_ext_csd()
1811 ext_csd[EXT_CSD_HC_ERASE_GRP_SIZE] in mmc_read_and_compare_ext_csd()
1813 memcmp(&ext_csd[EXT_CSD_SEC_CNT], in mmc_read_and_compare_ext_csd()
2045 if (!mmc->ext_csd) { in mmc_select_mode_and_width()
2180 u8 *ext_csd = ext_csd_bkup; in mmc_startup_v4() local
2185 if (!mmc->ext_csd) in mmc_startup_v4()
2188 err = mmc_send_ext_csd(mmc, ext_csd); in mmc_startup_v4()
2193 if (!mmc->ext_csd) in mmc_startup_v4()
2194 mmc->ext_csd = ext_csd; in mmc_startup_v4()
2196 ALLOC_CACHE_ALIGN_BUFFER(u8, ext_csd, MMC_MAX_BLOCK_LEN); in mmc_startup_v4()
2202 err = mmc_send_ext_csd(mmc, ext_csd); in mmc_startup_v4()
2207 if (!mmc->ext_csd) in mmc_startup_v4()
2208 mmc->ext_csd = malloc(MMC_MAX_BLOCK_LEN); in mmc_startup_v4()
2209 if (!mmc->ext_csd) in mmc_startup_v4()
2211 memcpy(mmc->ext_csd, ext_csd, MMC_MAX_BLOCK_LEN); in mmc_startup_v4()
2213 if (ext_csd[EXT_CSD_REV] >= ARRAY_SIZE(mmc_versions)) in mmc_startup_v4()
2216 mmc->version = mmc_versions[ext_csd[EXT_CSD_REV]]; in mmc_startup_v4()
2224 capacity = ext_csd[EXT_CSD_SEC_CNT] << 0 in mmc_startup_v4()
2225 | ext_csd[EXT_CSD_SEC_CNT + 1] << 8 in mmc_startup_v4()
2226 | ext_csd[EXT_CSD_SEC_CNT + 2] << 16 in mmc_startup_v4()
2227 | ext_csd[EXT_CSD_SEC_CNT + 3] << 24; in mmc_startup_v4()
2234 mmc->gen_cmd6_time = ext_csd[EXT_CSD_GENERIC_CMD6_TIME]; in mmc_startup_v4()
2242 part_completed = !!(ext_csd[EXT_CSD_PARTITION_SETTING] & in mmc_startup_v4()
2245 mmc->part_switch_time = ext_csd[EXT_CSD_PART_SWITCH_TIME]; in mmc_startup_v4()
2251 mmc->part_support = ext_csd[EXT_CSD_PARTITIONING_SUPPORT]; in mmc_startup_v4()
2252 if ((ext_csd[EXT_CSD_PARTITIONING_SUPPORT] & PART_SUPPORT) || in mmc_startup_v4()
2253 ext_csd[EXT_CSD_BOOT_MULT]) in mmc_startup_v4()
2254 mmc->part_config = ext_csd[EXT_CSD_PART_CONF]; in mmc_startup_v4()
2256 (ext_csd[EXT_CSD_PARTITIONING_SUPPORT] & ENHNCD_SUPPORT)) in mmc_startup_v4()
2257 mmc->part_attr = ext_csd[EXT_CSD_PARTITIONS_ATTRIBUTE]; in mmc_startup_v4()
2259 mmc->capacity_boot = ext_csd[EXT_CSD_BOOT_MULT] << 17; in mmc_startup_v4()
2261 mmc->capacity_rpmb = ext_csd[EXT_CSD_RPMB_MULT] << 17; in mmc_startup_v4()
2265 uint mult = (ext_csd[idx + 2] << 16) + in mmc_startup_v4()
2266 (ext_csd[idx + 1] << 8) + ext_csd[idx]; in mmc_startup_v4()
2273 ext_csd[EXT_CSD_HC_ERASE_GRP_SIZE]; in mmc_startup_v4()
2274 mmc->capacity_gp[i] *= ext_csd[EXT_CSD_HC_WP_GRP_SIZE]; in mmc_startup_v4()
2281 (ext_csd[EXT_CSD_ENH_SIZE_MULT + 2] << 16) + in mmc_startup_v4()
2282 (ext_csd[EXT_CSD_ENH_SIZE_MULT + 1] << 8) + in mmc_startup_v4()
2283 ext_csd[EXT_CSD_ENH_SIZE_MULT]; in mmc_startup_v4()
2284 mmc->enh_user_size *= ext_csd[EXT_CSD_HC_ERASE_GRP_SIZE]; in mmc_startup_v4()
2285 mmc->enh_user_size *= ext_csd[EXT_CSD_HC_WP_GRP_SIZE]; in mmc_startup_v4()
2288 (ext_csd[EXT_CSD_ENH_START_ADDR + 3] << 24) + in mmc_startup_v4()
2289 (ext_csd[EXT_CSD_ENH_START_ADDR + 2] << 16) + in mmc_startup_v4()
2290 (ext_csd[EXT_CSD_ENH_START_ADDR + 1] << 8) + in mmc_startup_v4()
2291 ext_csd[EXT_CSD_ENH_START_ADDR]; in mmc_startup_v4()
2304 if ((ext_csd[EXT_CSD_PARTITIONING_SUPPORT] & PART_SUPPORT) && in mmc_startup_v4()
2305 (ext_csd[EXT_CSD_PARTITIONS_ATTRIBUTE] & PART_ENH_ATTRIB)) in mmc_startup_v4()
2314 ext_csd[EXT_CSD_ERASE_GROUP_DEF] = 1; in mmc_startup_v4()
2317 if (ext_csd[EXT_CSD_ERASE_GROUP_DEF] & 0x01) { in mmc_startup_v4()
2321 ext_csd[EXT_CSD_HC_ERASE_GRP_SIZE] * 1024; in mmc_startup_v4()
2329 capacity = (ext_csd[EXT_CSD_SEC_CNT]) | in mmc_startup_v4()
2330 (ext_csd[EXT_CSD_SEC_CNT + 1] << 8) | in mmc_startup_v4()
2331 (ext_csd[EXT_CSD_SEC_CNT + 2] << 16) | in mmc_startup_v4()
2332 (ext_csd[EXT_CSD_SEC_CNT + 3] << 24); in mmc_startup_v4()
2350 * ext_csd[EXT_CSD_HC_ERASE_GRP_SIZE] in mmc_startup_v4()
2351 * ext_csd[EXT_CSD_HC_WP_GRP_SIZE]; in mmc_startup_v4()
2354 mmc->wr_rel_set = ext_csd[EXT_CSD_WR_REL_SET]; in mmc_startup_v4()
2358 if (mmc->ext_csd) { in mmc_startup_v4()
2360 free(mmc->ext_csd); in mmc_startup_v4()
2362 mmc->ext_csd = NULL; in mmc_startup_v4()
3044 ALLOC_CACHE_ALIGN_BUFFER(u8, ext_csd, MMC_MAX_BLOCK_LEN); in mmc_set_bkops_enable()
3046 err = mmc_send_ext_csd(mmc, ext_csd); in mmc_set_bkops_enable()
3052 if (!(ext_csd[EXT_CSD_BKOPS_SUPPORT] & 0x1)) { in mmc_set_bkops_enable()
3057 if (ext_csd[EXT_CSD_BKOPS_EN] & 0x1) { in mmc_set_bkops_enable()