Lines Matching refs:ext_csd
118 if (card->ext_csd.erase_group_def & 1) in mmc_set_erase_size()
119 card->erase_size = card->ext_csd.hc_erase_size; in mmc_set_erase_size()
184 u8 card_type = card->ext_csd.raw_card_type; in mmc_select_card_type()
237 card->ext_csd.hs_max_dtr = hs_max_dtr; in mmc_select_card_type()
238 card->ext_csd.hs200_max_dtr = hs200_max_dtr; in mmc_select_card_type()
242 static void mmc_manage_enhanced_area(struct mmc_card *card, u8 *ext_csd) in mmc_manage_enhanced_area() argument
249 card->ext_csd.enhanced_area_offset = -EINVAL; in mmc_manage_enhanced_area()
250 card->ext_csd.enhanced_area_size = -EINVAL; in mmc_manage_enhanced_area()
257 if ((ext_csd[EXT_CSD_PARTITION_SUPPORT] & 0x2) && in mmc_manage_enhanced_area()
258 (ext_csd[EXT_CSD_PARTITION_ATTRIBUTE] & 0x1)) { in mmc_manage_enhanced_area()
259 if (card->ext_csd.partition_setting_completed) { in mmc_manage_enhanced_area()
261 ext_csd[EXT_CSD_HC_ERASE_GRP_SIZE]; in mmc_manage_enhanced_area()
263 ext_csd[EXT_CSD_HC_WP_GRP_SIZE]; in mmc_manage_enhanced_area()
268 card->ext_csd.enhanced_area_offset = in mmc_manage_enhanced_area()
269 (ext_csd[139] << 24) + (ext_csd[138] << 16) + in mmc_manage_enhanced_area()
270 (ext_csd[137] << 8) + ext_csd[136]; in mmc_manage_enhanced_area()
272 card->ext_csd.enhanced_area_offset <<= 9; in mmc_manage_enhanced_area()
276 card->ext_csd.enhanced_area_size = in mmc_manage_enhanced_area()
277 (ext_csd[142] << 16) + (ext_csd[141] << 8) + in mmc_manage_enhanced_area()
278 ext_csd[140]; in mmc_manage_enhanced_area()
279 card->ext_csd.enhanced_area_size *= in mmc_manage_enhanced_area()
281 card->ext_csd.enhanced_area_size <<= 9; in mmc_manage_enhanced_area()
289 static void mmc_manage_gp_partitions(struct mmc_card *card, u8 *ext_csd) in mmc_manage_gp_partitions() argument
300 if (ext_csd[EXT_CSD_PARTITION_SUPPORT] & in mmc_manage_gp_partitions()
303 ext_csd[EXT_CSD_HC_ERASE_GRP_SIZE]; in mmc_manage_gp_partitions()
305 ext_csd[EXT_CSD_HC_WP_GRP_SIZE]; in mmc_manage_gp_partitions()
308 if (!ext_csd[EXT_CSD_GP_SIZE_MULT + idx * 3] && in mmc_manage_gp_partitions()
309 !ext_csd[EXT_CSD_GP_SIZE_MULT + idx * 3 + 1] && in mmc_manage_gp_partitions()
310 !ext_csd[EXT_CSD_GP_SIZE_MULT + idx * 3 + 2]) in mmc_manage_gp_partitions()
312 if (card->ext_csd.partition_setting_completed == 0) { in mmc_manage_gp_partitions()
318 (ext_csd[EXT_CSD_GP_SIZE_MULT + idx * 3 + 2] in mmc_manage_gp_partitions()
320 (ext_csd[EXT_CSD_GP_SIZE_MULT + idx * 3 + 1] in mmc_manage_gp_partitions()
322 ext_csd[EXT_CSD_GP_SIZE_MULT + idx * 3]; in mmc_manage_gp_partitions()
339 static int mmc_decode_ext_csd(struct mmc_card *card, u8 *ext_csd) in mmc_decode_ext_csd() argument
347 card->ext_csd.raw_ext_csd_structure = ext_csd[EXT_CSD_STRUCTURE]; in mmc_decode_ext_csd()
349 if (card->ext_csd.raw_ext_csd_structure > 2) { in mmc_decode_ext_csd()
352 card->ext_csd.raw_ext_csd_structure); in mmc_decode_ext_csd()
368 card->ext_csd.rev = ext_csd[EXT_CSD_REV]; in mmc_decode_ext_csd()
370 card->ext_csd.raw_sectors[0] = ext_csd[EXT_CSD_SEC_CNT + 0]; in mmc_decode_ext_csd()
371 card->ext_csd.raw_sectors[1] = ext_csd[EXT_CSD_SEC_CNT + 1]; in mmc_decode_ext_csd()
372 card->ext_csd.raw_sectors[2] = ext_csd[EXT_CSD_SEC_CNT + 2]; in mmc_decode_ext_csd()
373 card->ext_csd.raw_sectors[3] = ext_csd[EXT_CSD_SEC_CNT + 3]; in mmc_decode_ext_csd()
374 if (card->ext_csd.rev >= 2) { in mmc_decode_ext_csd()
375 card->ext_csd.sectors = in mmc_decode_ext_csd()
376 ext_csd[EXT_CSD_SEC_CNT + 0] << 0 | in mmc_decode_ext_csd()
377 ext_csd[EXT_CSD_SEC_CNT + 1] << 8 | in mmc_decode_ext_csd()
378 ext_csd[EXT_CSD_SEC_CNT + 2] << 16 | in mmc_decode_ext_csd()
379 ext_csd[EXT_CSD_SEC_CNT + 3] << 24; in mmc_decode_ext_csd()
382 if (card->ext_csd.sectors > (2u * 1024 * 1024 * 1024) / 512) in mmc_decode_ext_csd()
386 card->ext_csd.raw_card_type = ext_csd[EXT_CSD_CARD_TYPE]; in mmc_decode_ext_csd()
389 card->ext_csd.raw_s_a_timeout = ext_csd[EXT_CSD_S_A_TIMEOUT]; in mmc_decode_ext_csd()
390 card->ext_csd.raw_erase_timeout_mult = in mmc_decode_ext_csd()
391 ext_csd[EXT_CSD_ERASE_TIMEOUT_MULT]; in mmc_decode_ext_csd()
392 card->ext_csd.raw_hc_erase_grp_size = in mmc_decode_ext_csd()
393 ext_csd[EXT_CSD_HC_ERASE_GRP_SIZE]; in mmc_decode_ext_csd()
394 if (card->ext_csd.rev >= 3) { in mmc_decode_ext_csd()
395 u8 sa_shift = ext_csd[EXT_CSD_S_A_TIMEOUT]; in mmc_decode_ext_csd()
396 card->ext_csd.part_config = ext_csd[EXT_CSD_PART_CONFIG]; in mmc_decode_ext_csd()
399 card->ext_csd.part_time = 10 * ext_csd[EXT_CSD_PART_SWITCH_TIME]; in mmc_decode_ext_csd()
401 if (card->ext_csd.part_time && in mmc_decode_ext_csd()
402 card->ext_csd.part_time < MMC_MIN_PART_SWITCH_TIME) in mmc_decode_ext_csd()
403 card->ext_csd.part_time = MMC_MIN_PART_SWITCH_TIME; in mmc_decode_ext_csd()
407 card->ext_csd.sa_timeout = in mmc_decode_ext_csd()
408 1 << ext_csd[EXT_CSD_S_A_TIMEOUT]; in mmc_decode_ext_csd()
409 card->ext_csd.erase_group_def = in mmc_decode_ext_csd()
410 ext_csd[EXT_CSD_ERASE_GROUP_DEF]; in mmc_decode_ext_csd()
411 card->ext_csd.hc_erase_timeout = 300 * in mmc_decode_ext_csd()
412 ext_csd[EXT_CSD_ERASE_TIMEOUT_MULT]; in mmc_decode_ext_csd()
413 card->ext_csd.hc_erase_size = in mmc_decode_ext_csd()
414 ext_csd[EXT_CSD_HC_ERASE_GRP_SIZE] << 10; in mmc_decode_ext_csd()
416 card->ext_csd.rel_sectors = ext_csd[EXT_CSD_REL_WR_SEC_C]; in mmc_decode_ext_csd()
422 if (ext_csd[EXT_CSD_BOOT_MULT] && mmc_boot_partition_access(card->host)) { in mmc_decode_ext_csd()
424 part_size = ext_csd[EXT_CSD_BOOT_MULT] << 17; in mmc_decode_ext_csd()
433 card->ext_csd.raw_hc_erase_gap_size = in mmc_decode_ext_csd()
434 ext_csd[EXT_CSD_HC_WP_GRP_SIZE]; in mmc_decode_ext_csd()
435 card->ext_csd.raw_sec_trim_mult = in mmc_decode_ext_csd()
436 ext_csd[EXT_CSD_SEC_TRIM_MULT]; in mmc_decode_ext_csd()
437 card->ext_csd.raw_sec_erase_mult = in mmc_decode_ext_csd()
438 ext_csd[EXT_CSD_SEC_ERASE_MULT]; in mmc_decode_ext_csd()
439 card->ext_csd.raw_sec_feature_support = in mmc_decode_ext_csd()
440 ext_csd[EXT_CSD_SEC_FEATURE_SUPPORT]; in mmc_decode_ext_csd()
441 card->ext_csd.raw_trim_mult = in mmc_decode_ext_csd()
442 ext_csd[EXT_CSD_TRIM_MULT]; in mmc_decode_ext_csd()
443 card->ext_csd.raw_partition_support = ext_csd[EXT_CSD_PARTITION_SUPPORT]; in mmc_decode_ext_csd()
444 if (card->ext_csd.rev >= 4) { in mmc_decode_ext_csd()
445 if (ext_csd[EXT_CSD_PARTITION_SETTING_COMPLETED] & in mmc_decode_ext_csd()
447 card->ext_csd.partition_setting_completed = 1; in mmc_decode_ext_csd()
449 card->ext_csd.partition_setting_completed = 0; in mmc_decode_ext_csd()
451 mmc_manage_enhanced_area(card, ext_csd); in mmc_decode_ext_csd()
453 mmc_manage_gp_partitions(card, ext_csd); in mmc_decode_ext_csd()
455 card->ext_csd.sec_trim_mult = in mmc_decode_ext_csd()
456 ext_csd[EXT_CSD_SEC_TRIM_MULT]; in mmc_decode_ext_csd()
457 card->ext_csd.sec_erase_mult = in mmc_decode_ext_csd()
458 ext_csd[EXT_CSD_SEC_ERASE_MULT]; in mmc_decode_ext_csd()
459 card->ext_csd.sec_feature_support = in mmc_decode_ext_csd()
460 ext_csd[EXT_CSD_SEC_FEATURE_SUPPORT]; in mmc_decode_ext_csd()
461 card->ext_csd.trim_timeout = 300 * in mmc_decode_ext_csd()
462 ext_csd[EXT_CSD_TRIM_MULT]; in mmc_decode_ext_csd()
469 card->ext_csd.boot_ro_lock = ext_csd[EXT_CSD_BOOT_WP]; in mmc_decode_ext_csd()
470 card->ext_csd.boot_ro_lockable = true; in mmc_decode_ext_csd()
473 card->ext_csd.raw_pwr_cl_52_195 = in mmc_decode_ext_csd()
474 ext_csd[EXT_CSD_PWR_CL_52_195]; in mmc_decode_ext_csd()
475 card->ext_csd.raw_pwr_cl_26_195 = in mmc_decode_ext_csd()
476 ext_csd[EXT_CSD_PWR_CL_26_195]; in mmc_decode_ext_csd()
477 card->ext_csd.raw_pwr_cl_52_360 = in mmc_decode_ext_csd()
478 ext_csd[EXT_CSD_PWR_CL_52_360]; in mmc_decode_ext_csd()
479 card->ext_csd.raw_pwr_cl_26_360 = in mmc_decode_ext_csd()
480 ext_csd[EXT_CSD_PWR_CL_26_360]; in mmc_decode_ext_csd()
481 card->ext_csd.raw_pwr_cl_200_195 = in mmc_decode_ext_csd()
482 ext_csd[EXT_CSD_PWR_CL_200_195]; in mmc_decode_ext_csd()
483 card->ext_csd.raw_pwr_cl_200_360 = in mmc_decode_ext_csd()
484 ext_csd[EXT_CSD_PWR_CL_200_360]; in mmc_decode_ext_csd()
485 card->ext_csd.raw_pwr_cl_ddr_52_195 = in mmc_decode_ext_csd()
486 ext_csd[EXT_CSD_PWR_CL_DDR_52_195]; in mmc_decode_ext_csd()
487 card->ext_csd.raw_pwr_cl_ddr_52_360 = in mmc_decode_ext_csd()
488 ext_csd[EXT_CSD_PWR_CL_DDR_52_360]; in mmc_decode_ext_csd()
489 card->ext_csd.raw_pwr_cl_ddr_200_360 = in mmc_decode_ext_csd()
490 ext_csd[EXT_CSD_PWR_CL_DDR_200_360]; in mmc_decode_ext_csd()
493 if (card->ext_csd.rev >= 5) { in mmc_decode_ext_csd()
499 if (ext_csd[EXT_CSD_BKOPS_SUPPORT] & 0x1) { in mmc_decode_ext_csd()
500 card->ext_csd.bkops = 1; in mmc_decode_ext_csd()
501 card->ext_csd.man_bkops_en = in mmc_decode_ext_csd()
502 (ext_csd[EXT_CSD_BKOPS_EN] & in mmc_decode_ext_csd()
504 card->ext_csd.raw_bkops_status = in mmc_decode_ext_csd()
505 ext_csd[EXT_CSD_BKOPS_STATUS]; in mmc_decode_ext_csd()
506 if (!card->ext_csd.man_bkops_en) in mmc_decode_ext_csd()
512 if (!broken_hpi && (ext_csd[EXT_CSD_HPI_FEATURES] & 0x1)) { in mmc_decode_ext_csd()
513 card->ext_csd.hpi = 1; in mmc_decode_ext_csd()
514 if (ext_csd[EXT_CSD_HPI_FEATURES] & 0x2) in mmc_decode_ext_csd()
515 card->ext_csd.hpi_cmd = MMC_STOP_TRANSMISSION; in mmc_decode_ext_csd()
517 card->ext_csd.hpi_cmd = MMC_SEND_STATUS; in mmc_decode_ext_csd()
522 card->ext_csd.out_of_int_time = in mmc_decode_ext_csd()
523 ext_csd[EXT_CSD_OUT_OF_INTERRUPT_TIME] * 10; in mmc_decode_ext_csd()
526 card->ext_csd.rel_param = ext_csd[EXT_CSD_WR_REL_PARAM]; in mmc_decode_ext_csd()
527 card->ext_csd.rst_n_function = ext_csd[EXT_CSD_RST_N_FUNCTION]; in mmc_decode_ext_csd()
532 card->ext_csd.raw_rpmb_size_mult = ext_csd[EXT_CSD_RPMB_MULT]; in mmc_decode_ext_csd()
533 if (ext_csd[EXT_CSD_RPMB_MULT] && mmc_host_cmd23(card->host)) { in mmc_decode_ext_csd()
534 mmc_part_add(card, ext_csd[EXT_CSD_RPMB_MULT] << 17, in mmc_decode_ext_csd()
541 card->ext_csd.raw_erased_mem_count = ext_csd[EXT_CSD_ERASED_MEM_CONT]; in mmc_decode_ext_csd()
542 if (ext_csd[EXT_CSD_ERASED_MEM_CONT]) in mmc_decode_ext_csd()
548 if (card->ext_csd.rev >= 6) { in mmc_decode_ext_csd()
549 card->ext_csd.feature_support |= MMC_DISCARD_FEATURE; in mmc_decode_ext_csd()
551 card->ext_csd.generic_cmd6_time = 10 * in mmc_decode_ext_csd()
552 ext_csd[EXT_CSD_GENERIC_CMD6_TIME]; in mmc_decode_ext_csd()
553 card->ext_csd.power_off_longtime = 10 * in mmc_decode_ext_csd()
554 ext_csd[EXT_CSD_POWER_OFF_LONG_TIME]; in mmc_decode_ext_csd()
556 card->ext_csd.cache_size = in mmc_decode_ext_csd()
557 ext_csd[EXT_CSD_CACHE_SIZE + 0] << 0 | in mmc_decode_ext_csd()
558 ext_csd[EXT_CSD_CACHE_SIZE + 1] << 8 | in mmc_decode_ext_csd()
559 ext_csd[EXT_CSD_CACHE_SIZE + 2] << 16 | in mmc_decode_ext_csd()
560 ext_csd[EXT_CSD_CACHE_SIZE + 3] << 24; in mmc_decode_ext_csd()
562 if (ext_csd[EXT_CSD_DATA_SECTOR_SIZE] == 1) in mmc_decode_ext_csd()
563 card->ext_csd.data_sector_size = 4096; in mmc_decode_ext_csd()
565 card->ext_csd.data_sector_size = 512; in mmc_decode_ext_csd()
567 if ((ext_csd[EXT_CSD_DATA_TAG_SUPPORT] & 1) && in mmc_decode_ext_csd()
568 (ext_csd[EXT_CSD_TAG_UNIT_SIZE] <= 8)) { in mmc_decode_ext_csd()
569 card->ext_csd.data_tag_unit_size = in mmc_decode_ext_csd()
570 ((unsigned int) 1 << ext_csd[EXT_CSD_TAG_UNIT_SIZE]) * in mmc_decode_ext_csd()
571 (card->ext_csd.data_sector_size); in mmc_decode_ext_csd()
573 card->ext_csd.data_tag_unit_size = 0; in mmc_decode_ext_csd()
576 card->ext_csd.max_packed_writes = in mmc_decode_ext_csd()
577 ext_csd[EXT_CSD_MAX_PACKED_WRITES]; in mmc_decode_ext_csd()
578 card->ext_csd.max_packed_reads = in mmc_decode_ext_csd()
579 ext_csd[EXT_CSD_MAX_PACKED_READS]; in mmc_decode_ext_csd()
581 card->ext_csd.data_sector_size = 512; in mmc_decode_ext_csd()
585 if (card->ext_csd.rev >= 7) { in mmc_decode_ext_csd()
586 memcpy(card->ext_csd.fwrev, &ext_csd[EXT_CSD_FIRMWARE_VERSION], in mmc_decode_ext_csd()
588 card->ext_csd.ffu_capable = in mmc_decode_ext_csd()
589 (ext_csd[EXT_CSD_SUPPORTED_MODE] & 0x1) && in mmc_decode_ext_csd()
590 !(ext_csd[EXT_CSD_FW_CONFIG] & 0x1); in mmc_decode_ext_csd()
598 u8 *ext_csd; in mmc_read_ext_csd() local
604 err = mmc_get_ext_csd(card, &ext_csd); in mmc_read_ext_csd()
629 err = mmc_decode_ext_csd(card, ext_csd); in mmc_read_ext_csd()
630 kfree(ext_csd); in mmc_read_ext_csd()
647 err = !((card->ext_csd.raw_partition_support == in mmc_compare_ext_csds()
649 (card->ext_csd.raw_erased_mem_count == in mmc_compare_ext_csds()
651 (card->ext_csd.rev == in mmc_compare_ext_csds()
653 (card->ext_csd.raw_ext_csd_structure == in mmc_compare_ext_csds()
655 (card->ext_csd.raw_card_type == in mmc_compare_ext_csds()
657 (card->ext_csd.raw_s_a_timeout == in mmc_compare_ext_csds()
659 (card->ext_csd.raw_hc_erase_gap_size == in mmc_compare_ext_csds()
661 (card->ext_csd.raw_erase_timeout_mult == in mmc_compare_ext_csds()
663 (card->ext_csd.raw_hc_erase_grp_size == in mmc_compare_ext_csds()
665 (card->ext_csd.raw_sec_trim_mult == in mmc_compare_ext_csds()
667 (card->ext_csd.raw_sec_erase_mult == in mmc_compare_ext_csds()
669 (card->ext_csd.raw_sec_feature_support == in mmc_compare_ext_csds()
671 (card->ext_csd.raw_trim_mult == in mmc_compare_ext_csds()
673 (card->ext_csd.raw_sectors[0] == in mmc_compare_ext_csds()
675 (card->ext_csd.raw_sectors[1] == in mmc_compare_ext_csds()
677 (card->ext_csd.raw_sectors[2] == in mmc_compare_ext_csds()
679 (card->ext_csd.raw_sectors[3] == in mmc_compare_ext_csds()
681 (card->ext_csd.raw_pwr_cl_52_195 == in mmc_compare_ext_csds()
683 (card->ext_csd.raw_pwr_cl_26_195 == in mmc_compare_ext_csds()
685 (card->ext_csd.raw_pwr_cl_52_360 == in mmc_compare_ext_csds()
687 (card->ext_csd.raw_pwr_cl_26_360 == in mmc_compare_ext_csds()
689 (card->ext_csd.raw_pwr_cl_200_195 == in mmc_compare_ext_csds()
691 (card->ext_csd.raw_pwr_cl_200_360 == in mmc_compare_ext_csds()
693 (card->ext_csd.raw_pwr_cl_ddr_52_195 == in mmc_compare_ext_csds()
695 (card->ext_csd.raw_pwr_cl_ddr_52_360 == in mmc_compare_ext_csds()
697 (card->ext_csd.raw_pwr_cl_ddr_200_360 == in mmc_compare_ext_csds()
714 MMC_DEV_ATTR(ffu_capable, "%d\n", card->ext_csd.ffu_capable);
722 card->ext_csd.enhanced_area_offset);
723 MMC_DEV_ATTR(enhanced_area_size, "%u\n", card->ext_csd.enhanced_area_size);
724 MMC_DEV_ATTR(raw_rpmb_size_mult, "%#x\n", card->ext_csd.raw_rpmb_size_mult);
725 MMC_DEV_ATTR(rel_sectors, "%#x\n", card->ext_csd.rel_sectors);
733 if (card->ext_csd.rev < 7) { in mmc_fwrev_show()
737 card->ext_csd.fwrev); in mmc_fwrev_show()
779 struct mmc_ext_csd *ext_csd = &card->ext_csd; in __mmc_select_powerclass() local
786 pwrclass_val = ext_csd->raw_pwr_cl_26_195; in __mmc_select_powerclass()
789 ext_csd->raw_pwr_cl_52_195 : in __mmc_select_powerclass()
790 ext_csd->raw_pwr_cl_ddr_52_195; in __mmc_select_powerclass()
792 pwrclass_val = ext_csd->raw_pwr_cl_200_195; in __mmc_select_powerclass()
804 pwrclass_val = ext_csd->raw_pwr_cl_26_360; in __mmc_select_powerclass()
807 ext_csd->raw_pwr_cl_52_360 : in __mmc_select_powerclass()
808 ext_csd->raw_pwr_cl_ddr_52_360; in __mmc_select_powerclass()
811 ext_csd->raw_pwr_cl_ddr_200_360 : in __mmc_select_powerclass()
812 ext_csd->raw_pwr_cl_200_360; in __mmc_select_powerclass()
832 card->ext_csd.generic_cmd6_time); in __mmc_select_powerclass()
877 max_dtr > card->ext_csd.hs200_max_dtr) in mmc_set_bus_speed()
878 max_dtr = card->ext_csd.hs200_max_dtr; in mmc_set_bus_speed()
879 else if (mmc_card_hs(card) && max_dtr > card->ext_csd.hs_max_dtr) in mmc_set_bus_speed()
880 max_dtr = card->ext_csd.hs_max_dtr; in mmc_set_bus_speed()
929 card->ext_csd.generic_cmd6_time); in mmc_select_bus_width()
967 card->ext_csd.generic_cmd6_time, in mmc_select_hs()
997 card->ext_csd.generic_cmd6_time); in mmc_select_hs_ddr()
1067 card->ext_csd.generic_cmd6_time, in mmc_select_hs400()
1078 card->ext_csd.generic_cmd6_time); in mmc_select_hs400()
1087 card->ext_csd.generic_cmd6_time, in mmc_select_hs400()
1131 card->ext_csd.generic_cmd6_time, in mmc_select_hs200()
1343 if (card->ext_csd.partition_setting_completed || in mmc_init_card()
1344 (card->ext_csd.rev >= 3 && (host->caps2 & MMC_CAP2_HC_ERASE_SZ))) { in mmc_init_card()
1347 card->ext_csd.generic_cmd6_time); in mmc_init_card()
1359 card->ext_csd.enhanced_area_offset = -EINVAL; in mmc_init_card()
1360 card->ext_csd.enhanced_area_size = -EINVAL; in mmc_init_card()
1362 card->ext_csd.erase_group_def = 1; in mmc_init_card()
1375 if (card->ext_csd.part_config & EXT_CSD_PART_CONFIG_ACC_MASK) { in mmc_init_card()
1376 card->ext_csd.part_config &= ~EXT_CSD_PART_CONFIG_ACC_MASK; in mmc_init_card()
1378 card->ext_csd.part_config, in mmc_init_card()
1379 card->ext_csd.part_time); in mmc_init_card()
1387 if (card->ext_csd.rev >= 6) { in mmc_init_card()
1391 card->ext_csd.generic_cmd6_time); in mmc_init_card()
1400 card->ext_csd.power_off_notification = EXT_CSD_POWER_ON; in mmc_init_card()
1436 if (card->ext_csd.hpi) { in mmc_init_card()
1439 card->ext_csd.generic_cmd6_time); in mmc_init_card()
1447 card->ext_csd.hpi_en = 1; in mmc_init_card()
1454 if (card->ext_csd.cache_size > 0) { in mmc_init_card()
1457 card->ext_csd.generic_cmd6_time); in mmc_init_card()
1467 card->ext_csd.cache_ctrl = 0; in mmc_init_card()
1470 card->ext_csd.cache_ctrl = 1; in mmc_init_card()
1478 if (card->ext_csd.max_packed_writes >= 3 && in mmc_init_card()
1479 card->ext_csd.max_packed_reads >= 5 && in mmc_init_card()
1484 card->ext_csd.generic_cmd6_time); in mmc_init_card()
1490 card->ext_csd.packed_event_en = 0; in mmc_init_card()
1493 card->ext_csd.packed_event_en = 1; in mmc_init_card()
1511 return (card && card->ext_csd.rev >= 3); in mmc_can_sleep()
1518 unsigned int timeout_ms = DIV_ROUND_UP(card->ext_csd.sa_timeout, 10000); in mmc_sleep()
1562 (card->ext_csd.power_off_notification == EXT_CSD_POWER_ON); in mmc_can_poweroff_notify()
1567 unsigned int timeout = card->ext_csd.generic_cmd6_time; in mmc_poweroff_notify()
1572 timeout = card->ext_csd.power_off_longtime; in mmc_poweroff_notify()
1582 card->ext_csd.power_off_notification = EXT_CSD_NO_POWER_NOTIFICATION; in mmc_poweroff_notify()
1807 rst_n_function = card->ext_csd.rst_n_function; in mmc_can_reset()