[PATCH v2 1/2] mci: drop unused parameter from mci_switch()
Uwe Kleine-König
u.kleine-koenig at pengutronix.de
Fri Jan 19 05:28:24 PST 2018
The SWITCH command has two purposes:
a) switch the command set
b) Write to the EXT_CSD register
If the access field (bits [25:24]) in the argument are b00, we're in
case a), otherwise in b). As mci_switch() always passes
MMC_SWITCH_MODE_WRITE_BYTE (0b3) in the access field, only case b) is
relevant here. According to the eMMC specification[1] the command set
field is ignored in case b) and so the respective parameter (that is
unused already now) can be dropped.
[1] Embedded Multi-Media Card (e•MMC) Electrical Standard (5.1),
February 2015; paragraph 6.6.1
Signed-off-by: Uwe Kleine-König <u.kleine-koenig at pengutronix.de>
---
commands/mmc_extcsd.c | 2 +-
drivers/mci/mci-core.c | 16 ++++++----------
include/mci.h | 3 +--
3 files changed, 8 insertions(+), 13 deletions(-)
diff --git a/commands/mmc_extcsd.c b/commands/mmc_extcsd.c
index 7a6d39075da0..acd23a466bcb 100644
--- a/commands/mmc_extcsd.c
+++ b/commands/mmc_extcsd.c
@@ -2357,7 +2357,7 @@ static void write_field(struct mci *mci, u8 *reg, u16 index, u8 value,
break;
}
- mci_switch(mci, 0, index, value);
+ mci_switch(mci, index, value);
out:
return;
diff --git a/drivers/mci/mci-core.c b/drivers/mci/mci-core.c
index 07911d43d703..3da96f42aaf9 100644
--- a/drivers/mci/mci-core.c
+++ b/drivers/mci/mci-core.c
@@ -396,8 +396,7 @@ int mci_send_ext_csd(struct mci *mci, char *ext_csd)
* @param value FIXME
* @return Transaction status (0 on success)
*/
-int mci_switch(struct mci *mci, unsigned set, unsigned index,
- unsigned value)
+int mci_switch(struct mci *mci, unsigned index, unsigned value)
{
struct mci_cmd cmd;
@@ -471,7 +470,7 @@ static int mmc_change_freq(struct mci *mci)
cardtype = mci->ext_csd[EXT_CSD_DEVICE_TYPE] & EXT_CSD_CARD_TYPE_MASK;
- err = mci_switch(mci, EXT_CSD_CMD_SET_NORMAL, EXT_CSD_HS_TIMING, 1);
+ err = mci_switch(mci, EXT_CSD_HS_TIMING, 1);
if (err) {
dev_dbg(&mci->dev, "MMC frequency changing failed: %d\n", err);
@@ -1044,9 +1043,7 @@ static int mci_startup_mmc(struct mci *mci)
* 4bit transfer mode. On success set the corresponding
* bus width on the host.
*/
- err = mci_switch(mci, EXT_CSD_CMD_SET_NORMAL,
- EXT_CSD_BUS_WIDTH,
- ext_csd_bits[idx]);
+ err = mci_switch(mci, EXT_CSD_BUS_WIDTH, ext_csd_bits[idx]);
if (err) {
if (idx == 0)
dev_warn(&mci->dev, "Changing MMC bus width failed: %d\n", err);
@@ -1253,8 +1250,7 @@ static int mci_blk_part_switch(struct mci_part *part)
part_config &= ~EXT_CSD_PART_CONFIG_ACC_MASK;
part_config |= part->part_cfg;
- ret = mci_switch(mci, EXT_CSD_CMD_SET_NORMAL,
- EXT_CSD_PARTITION_CONFIG, part_config);
+ ret = mci_switch(mci, EXT_CSD_PARTITION_CONFIG, part_config);
if (ret)
return ret;
@@ -1568,8 +1564,8 @@ static int mci_set_boot(struct param_d *param, void *priv)
mci->ext_csd_part_config &= ~(7 << 3);
mci->ext_csd_part_config |= mci->bootpart << 3;
- return mci_switch(mci, EXT_CSD_CMD_SET_NORMAL,
- EXT_CSD_PARTITION_CONFIG, mci->ext_csd_part_config);
+ return mci_switch(mci,
+ EXT_CSD_PARTITION_CONFIG, mci->ext_csd_part_config);
}
static const char *mci_boot_names[] = {
diff --git a/include/mci.h b/include/mci.h
index d3115e8cc68f..827eecd39f8d 100644
--- a/include/mci.h
+++ b/include/mci.h
@@ -477,8 +477,7 @@ void mci_of_parse(struct mci_host *host);
void mci_of_parse_node(struct mci_host *host, struct device_node *np);
int mci_detect_card(struct mci_host *);
int mci_send_ext_csd(struct mci *mci, char *ext_csd);
-int mci_switch(struct mci *mci, unsigned set, unsigned index,
- unsigned value);
+int mci_switch(struct mci *mci, unsigned index, unsigned value);
static inline int mmc_host_is_spi(struct mci_host *host)
{
--
2.11.0
More information about the barebox
mailing list