diff options
-rw-r--r-- | drivers/mci/mci-core.c | 19 | ||||
-rw-r--r-- | include/mci.h | 2 |
2 files changed, 7 insertions, 14 deletions
diff --git a/drivers/mci/mci-core.c b/drivers/mci/mci-core.c index 2829b8e1d6..67668d53f0 100644 --- a/drivers/mci/mci-core.c +++ b/drivers/mci/mci-core.c @@ -667,10 +667,6 @@ static void mci_set_clock(struct mci *mci, unsigned clock) if (clock < host->f_min) clock = host->f_min; - /* check against the limit at the card's side */ - if (mci->tran_speed != 0 && clock > mci->tran_speed) - clock = mci->tran_speed; - host->clock = clock; /* the new target frequency */ mci_set_ios(mci); } @@ -922,11 +918,8 @@ static int mci_startup_sd(struct mci *mci) } mci_set_bus_width(mci, MMC_BUS_WIDTH_4); } - /* if possible, speed up the transfer */ - if (mci_caps(mci) & MMC_CAP_SD_HIGHSPEED) - mci_set_clock(mci, 50000000); - else - mci_set_clock(mci, 25000000); + + mci_set_clock(mci, mci->tran_speed); return 0; } @@ -948,13 +941,13 @@ static int mci_startup_mmc(struct mci *mci) /* if possible, speed up the transfer */ if (mci_caps(mci) & MMC_CAP_MMC_HIGHSPEED) { if (mci->card_caps & MMC_CAP_MMC_HIGHSPEED_52MHZ) - mci_set_clock(mci, 52000000); + mci->tran_speed = 52000000; else - mci_set_clock(mci, 26000000); - } else { - mci_set_clock(mci, 20000000); + mci->tran_speed = 26000000; } + mci_set_clock(mci, mci->tran_speed); + /* * Unlike SD, MMC cards dont have a configuration register to notify * supported bus width. So bus test command should be run to identify diff --git a/include/mci.h b/include/mci.h index edb7c7f1da..1ca00c70f7 100644 --- a/include/mci.h +++ b/include/mci.h @@ -336,7 +336,7 @@ struct mci { unsigned csd[4]; /**< card's "card specific data register" */ unsigned cid[4]; /**< card's "card identification register" */ unsigned short rca; /* FIXME */ - unsigned tran_speed; /**< not yet used */ + unsigned tran_speed; /**< Maximum transfer speed */ /** currently used data block length for read accesses */ unsigned read_bl_len; /** currently used data block length for write accesses */ |