Lines Matching refs:ext_csd

674 static int mmc_send_ext_csd(struct mmc *mmc, u8 *ext_csd)  in mmc_send_ext_csd()  argument
683 memcpy(ext_csd, mmc_ext_csd, 512); in mmc_send_ext_csd()
694 data.dest = (char *)ext_csd; in mmc_send_ext_csd()
700 memcpy(mmc_ext_csd, ext_csd, 512); in mmc_send_ext_csd()
708 memcpy(mmc_ecsd_base, ext_csd, 512); in mmc_send_ext_csd()
794 ALLOC_CACHE_ALIGN_BUFFER(u8, ext_csd, MMC_MAX_BLOCK_LEN); in mmc_select_bus_width()
803 err = mmc_send_ext_csd(mmc, ext_csd); in mmc_select_bus_width()
838 if ((ext_csd[EXT_CSD_PARTITIONING_SUPPORT] == in mmc_select_bus_width()
840 (ext_csd[EXT_CSD_HC_WP_GRP_SIZE] == in mmc_select_bus_width()
842 (ext_csd[EXT_CSD_REV] == test_csd[EXT_CSD_REV]) && in mmc_select_bus_width()
843 (ext_csd[EXT_CSD_HC_ERASE_GRP_SIZE] == in mmc_select_bus_width()
845 !memcmp(&ext_csd[EXT_CSD_SEC_CNT], in mmc_select_bus_width()
1123 static u32 mmc_select_card_type(struct mmc *mmc, u8 *ext_csd) argument
1128 card_type = ext_csd[EXT_CSD_CARD_TYPE];
1165 ext_csd[EXT_CSD_STROBE_SUPPORT] &&
1191 ALLOC_CACHE_ALIGN_BUFFER(u8, ext_csd, MMC_MAX_BLOCK_LEN);
1206 err = mmc_send_ext_csd(mmc, ext_csd);
1211 avail_type = mmc_select_card_type(mmc, ext_csd);
1311 ALLOC_CACHE_ALIGN_BUFFER(u8, ext_csd, MMC_MAX_BLOCK_LEN);
1370 err = mmc_send_ext_csd(mmc, ext_csd);
1375 (ext_csd[EXT_CSD_MAX_ENH_SIZE_MULT+2] << 16) +
1376 (ext_csd[EXT_CSD_MAX_ENH_SIZE_MULT+1] << 8) +
1377 ext_csd[EXT_CSD_MAX_ENH_SIZE_MULT];
1388 wr_rel_set = ext_csd[EXT_CSD_WR_REL_SET];
1404 if (wr_rel_set != ext_csd[EXT_CSD_WR_REL_SET] &&
1405 !(ext_csd[EXT_CSD_WR_REL_PARAM] & EXT_CSD_HS_CTRL_REL)) {
1411 if (ext_csd[EXT_CSD_PARTITION_SETTING] &
1421 if (!(ext_csd[EXT_CSD_ERASE_GROUP_DEF] & 0x01)) {
1428 ext_csd[EXT_CSD_ERASE_GROUP_DEF] = 1;
1432 ext_csd[EXT_CSD_HC_ERASE_GRP_SIZE] * 1024;
1472 if (wr_rel_set != ext_csd[EXT_CSD_WR_REL_SET]) {
1756 ALLOC_CACHE_ALIGN_BUFFER(u8, ext_csd, MMC_MAX_BLOCK_LEN);
1912 err = mmc_send_ext_csd(mmc, ext_csd);
1915 if (ext_csd[EXT_CSD_REV] >= 2) {
1921 capacity = ext_csd[EXT_CSD_SEC_CNT] << 0
1922 | ext_csd[EXT_CSD_SEC_CNT + 1] << 8
1923 | ext_csd[EXT_CSD_SEC_CNT + 2] << 16
1924 | ext_csd[EXT_CSD_SEC_CNT + 3] << 24;
1930 switch (ext_csd[EXT_CSD_REV]) {
1959 part_completed = !!(ext_csd[EXT_CSD_PARTITION_SETTING] &
1963 mmc->part_support = ext_csd[EXT_CSD_PARTITIONING_SUPPORT];
1964 if ((ext_csd[EXT_CSD_PARTITIONING_SUPPORT] & PART_SUPPORT) ||
1965 ext_csd[EXT_CSD_BOOT_MULT])
1966 mmc->part_config = ext_csd[EXT_CSD_PART_CONF];
1968 (ext_csd[EXT_CSD_PARTITIONING_SUPPORT] & ENHNCD_SUPPORT))
1969 mmc->part_attr = ext_csd[EXT_CSD_PARTITIONS_ATTRIBUTE];
1970 if (ext_csd[EXT_CSD_SEC_FEATURE_SUPPORT] & EXT_CSD_SEC_GB_CL_EN)
1973 mmc->capacity_boot = ext_csd[EXT_CSD_BOOT_MULT] << 17;
1975 mmc->capacity_rpmb = ext_csd[EXT_CSD_RPMB_MULT] << 17;
1979 uint mult = (ext_csd[idx + 2] << 16) +
1980 (ext_csd[idx + 1] << 8) + ext_csd[idx];
1987 ext_csd[EXT_CSD_HC_ERASE_GRP_SIZE];
1988 mmc->capacity_gp[i] *= ext_csd[EXT_CSD_HC_WP_GRP_SIZE];
1994 (ext_csd[EXT_CSD_ENH_SIZE_MULT+2] << 16) +
1995 (ext_csd[EXT_CSD_ENH_SIZE_MULT+1] << 8) +
1996 ext_csd[EXT_CSD_ENH_SIZE_MULT];
1997 mmc->enh_user_size *= ext_csd[EXT_CSD_HC_ERASE_GRP_SIZE];
1998 mmc->enh_user_size *= ext_csd[EXT_CSD_HC_WP_GRP_SIZE];
2001 (ext_csd[EXT_CSD_ENH_START_ADDR+3] << 24) +
2002 (ext_csd[EXT_CSD_ENH_START_ADDR+2] << 16) +
2003 (ext_csd[EXT_CSD_ENH_START_ADDR+1] << 8) +
2004 ext_csd[EXT_CSD_ENH_START_ADDR];
2016 if ((ext_csd[EXT_CSD_PARTITIONING_SUPPORT] & PART_SUPPORT) &&
2017 (ext_csd[EXT_CSD_PARTITIONS_ATTRIBUTE] & PART_ENH_ATTRIB))
2026 ext_csd[EXT_CSD_ERASE_GROUP_DEF] = 1;
2029 if (ext_csd[EXT_CSD_ERASE_GROUP_DEF] & 0x01) {
2032 ext_csd[EXT_CSD_HC_ERASE_GRP_SIZE] * 1024;
2039 capacity = (ext_csd[EXT_CSD_SEC_CNT]) |
2040 (ext_csd[EXT_CSD_SEC_CNT + 1] << 8) |
2041 (ext_csd[EXT_CSD_SEC_CNT + 2] << 16) |
2042 (ext_csd[EXT_CSD_SEC_CNT + 3] << 24);
2056 * ext_csd[EXT_CSD_HC_ERASE_GRP_SIZE]
2057 * ext_csd[EXT_CSD_HC_WP_GRP_SIZE];
2059 mmc->wr_rel_set = ext_csd[EXT_CSD_WR_REL_SET];
2061 mmc->raw_driver_strength = ext_csd[EXT_CSD_DRIVER_STRENGTH];
2473 ALLOC_CACHE_ALIGN_BUFFER(u8, ext_csd, MMC_MAX_BLOCK_LEN);
2475 err = mmc_send_ext_csd(mmc, ext_csd);
2481 if (!(ext_csd[EXT_CSD_BKOPS_SUPPORT] & 0x1)) {
2486 if (ext_csd[EXT_CSD_BKOPS_EN] & 0x1) {