Also remove erase_grp_size and write_bl_len from struct mmc as they are
not used anymore. On ARM, removing them saves about 100 bytes of code
space in SPL.

Signed-off-by: Jean-Jacques Hiblot <jjhib...@ti.com>
---

 cmd/mmc.c         |  8 ++++++++
 drivers/mmc/mmc.c | 16 ++++++++++++++--
 include/mmc.h     |  2 ++
 3 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/cmd/mmc.c b/cmd/mmc.c
index 9a95293..65601d8 100644
--- a/cmd/mmc.c
+++ b/cmd/mmc.c
@@ -45,8 +45,10 @@ static void print_mmcinfo(struct mmc *mmc)
        printf("Bus Width: %d-bit%s\n", mmc->bus_width,
                        mmc->ddr_mode ? " DDR" : "");
 
+#if CONFIG_IS_ENABLED(MMC_WRITE)
        puts("Erase Group Size: ");
        print_size(((u64)mmc->erase_grp_size) << 9, "\n");
+#endif
 
        if (!IS_SD(mmc) && mmc->version >= MMC_VERSION_4_41) {
                bool has_enh = (mmc->part_support & ENHNCD_SUPPORT) != 0;
@@ -302,6 +304,8 @@ static int do_mmc_read(cmd_tbl_t *cmdtp, int flag,
 
        return (n == cnt) ? CMD_RET_SUCCESS : CMD_RET_FAILURE;
 }
+
+#if CONFIG_IS_ENABLED(MMC_WRITE)
 static int do_mmc_write(cmd_tbl_t *cmdtp, int flag,
                        int argc, char * const argv[])
 {
@@ -360,6 +364,8 @@ static int do_mmc_erase(cmd_tbl_t *cmdtp, int flag,
 
        return (n == cnt) ? CMD_RET_SUCCESS : CMD_RET_FAILURE;
 }
+#endif
+
 static int do_mmc_rescan(cmd_tbl_t *cmdtp, int flag,
                         int argc, char * const argv[])
 {
@@ -792,8 +798,10 @@ static int do_mmc_bkops_enable(cmd_tbl_t *cmdtp, int flag,
 static cmd_tbl_t cmd_mmc[] = {
        U_BOOT_CMD_MKENT(info, 1, 0, do_mmcinfo, "", ""),
        U_BOOT_CMD_MKENT(read, 4, 1, do_mmc_read, "", ""),
+#if CONFIG_IS_ENABLED(MMC_WRITE)
        U_BOOT_CMD_MKENT(write, 4, 0, do_mmc_write, "", ""),
        U_BOOT_CMD_MKENT(erase, 3, 0, do_mmc_erase, "", ""),
+#endif
        U_BOOT_CMD_MKENT(rescan, 1, 1, do_mmc_rescan, "", ""),
        U_BOOT_CMD_MKENT(part, 1, 1, do_mmc_part, "", ""),
        U_BOOT_CMD_MKENT(dev, 3, 0, do_mmc_dev, "", ""),
diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
index f400e43..531c098 100644
--- a/drivers/mmc/mmc.c
+++ b/drivers/mmc/mmc.c
@@ -2048,9 +2048,11 @@ static int mmc_startup_v4(struct mmc *mmc)
        }
 
        if (ext_csd[EXT_CSD_ERASE_GROUP_DEF] & 0x01) {
+#if CONFIG_IS_ENABLED(MMC_WRITE)
                /* Read out group size from ext_csd */
                mmc->erase_grp_size =
                        ext_csd[EXT_CSD_HC_ERASE_GRP_SIZE] * 1024;
+#endif
                /*
                 * if high capacity and partition setting completed
                 * SEC_COUNT is valid even if it is smaller than 2 GiB
@@ -2064,7 +2066,9 @@ static int mmc_startup_v4(struct mmc *mmc)
                        capacity *= MMC_MAX_BLOCK_LEN;
                        mmc->capacity_user = capacity;
                }
-       } else {
+       }
+#if CONFIG_IS_ENABLED(MMC_WRITE)
+       else {
                /* Calculate the group size from the csd value. */
                int erase_gsz, erase_gmul;
 
@@ -2073,7 +2077,7 @@ static int mmc_startup_v4(struct mmc *mmc)
                mmc->erase_grp_size = (erase_gsz + 1)
                        * (erase_gmul + 1);
        }
-
+#endif
        mmc->hc_wp_grp_size = 1024
                * ext_csd[EXT_CSD_HC_ERASE_GRP_SIZE]
                * ext_csd[EXT_CSD_HC_WP_GRP_SIZE];
@@ -2204,11 +2208,13 @@ static int mmc_startup(struct mmc *mmc)
 
        mmc->dsr_imp = ((cmd.response[1] >> 12) & 0x1);
        mmc->read_bl_len = 1 << ((cmd.response[1] >> 16) & 0xf);
+#if CONFIG_IS_ENABLED(MMC_WRITE)
 
        if (IS_SD(mmc))
                mmc->write_bl_len = mmc->read_bl_len;
        else
                mmc->write_bl_len = 1 << ((cmd.response[3] >> 22) & 0xf);
+#endif
 
        if (mmc->high_capacity) {
                csize = (mmc->csd[1] & 0x3f) << 16
@@ -2230,8 +2236,10 @@ static int mmc_startup(struct mmc *mmc)
        if (mmc->read_bl_len > MMC_MAX_BLOCK_LEN)
                mmc->read_bl_len = MMC_MAX_BLOCK_LEN;
 
+#if CONFIG_IS_ENABLED(MMC_WRITE)
        if (mmc->write_bl_len > MMC_MAX_BLOCK_LEN)
                mmc->write_bl_len = MMC_MAX_BLOCK_LEN;
+#endif
 
        if ((mmc->dsr_imp) && (0xffffffff != mmc->dsr)) {
                cmd.cmdidx = MMC_CMD_SET_DSR;
@@ -2255,7 +2263,9 @@ static int mmc_startup(struct mmc *mmc)
        /*
         * For SD, its erase group is always one sector
         */
+#if CONFIG_IS_ENABLED(MMC_WRITE)
        mmc->erase_grp_size = 1;
+#endif
        mmc->part_config = MMCPART_NOAVAILABLE;
 
        err = mmc_startup_v4(mmc);
@@ -2286,7 +2296,9 @@ static int mmc_startup(struct mmc *mmc)
        /* Fix the block length for DDR mode */
        if (mmc->ddr_mode) {
                mmc->read_bl_len = MMC_MAX_BLOCK_LEN;
+#if CONFIG_IS_ENABLED(MMC_WRITE)
                mmc->write_bl_len = MMC_MAX_BLOCK_LEN;
+#endif
        }
 
        /* fill in device description */
diff --git a/include/mmc.h b/include/mmc.h
index f50c714..3abeb58 100644
--- a/include/mmc.h
+++ b/include/mmc.h
@@ -585,8 +585,10 @@ struct mmc {
        uint tran_speed;
        uint legacy_speed; /* speed for the legacy mode provided by the card */
        uint read_bl_len;
+#if CONFIG_IS_ENABLED(MMC_WRITE)
        uint write_bl_len;
        uint erase_grp_size;    /* in 512-byte sectors */
+#endif
        uint hc_wp_grp_size;    /* in 512-byte sectors */
 #if CONFIG_IS_ENABLED(MMC_WRITE)
        struct sd_ssr   ssr;    /* SD status register */
-- 
1.9.1

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to