--- zzzz-none-000/linux-5.15.111/drivers/mmc/core/mmc.c 2023-05-11 14:00:40.000000000 +0000 +++ puma7-arm-6670-761/linux-5.15.111/drivers/mmc/core/mmc.c 2024-02-07 09:27:48.000000000 +0000 @@ -7,6 +7,13 @@ * MMCv4 support Copyright (C) 2006 Philip Langdale, All Rights Reserved. */ +/****************************************************************** + + Includes Intel Corporation's changes/modifications dated: 07/2011. + Changed/modified portions - Copyright(c) 2011-2017, Intel Corporation. + +******************************************************************/ + #include #include #include @@ -338,12 +345,27 @@ mmc_hostname(card->host)); break; } +#ifdef CONFIG_ARCH_GEN3 + if (card->ext_csd.rev == 4) { + /* obsoleted standard JESD84-A44 */ + part_size = + (ext_csd[EXT_CSD_GP_SIZE_MULT + idx * 3 + 2] + * 64) + + (ext_csd[EXT_CSD_GP_SIZE_MULT + idx * 3 + 1] + * 8) + + ext_csd[EXT_CSD_GP_SIZE_MULT + idx * 3]; + } else { + /* standard JESD84-A441 */ +#endif part_size = (ext_csd[EXT_CSD_GP_SIZE_MULT + idx * 3 + 2] << 16) + (ext_csd[EXT_CSD_GP_SIZE_MULT + idx * 3 + 1] << 8) + ext_csd[EXT_CSD_GP_SIZE_MULT + idx * 3]; +#ifdef CONFIG_ARCH_GEN3 + } +#endif part_size *= (hc_erase_grp_sz * hc_wp_grp_sz); mmc_part_add(card, part_size << 19, EXT_CSD_PART_CONFIG_ACC_GP0 + idx,