Message ID | 1443960253-4082-1-git-send-email-21cnbao@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 4 October 2015 at 14:04, Barry Song <21cnbao@gmail.com> wrote: > From: Weijun Yang <york.yang@csr.com> > > As SD Specifications Part1 Physical Layer Specification Version > 3.01 says, CMD19 tuning is available for unlocked cards in transfer > state of 1.8V signaling mode. The small difference between v3.00 > and 3.01 spec means that CMD19 tuning is also available for DDR50 > mode. > > Signed-off-by: Weijun Yang <york.yang@csr.com> > Signed-off-by: Barry Song <Baohua.Song@csr.com> Thanks, applied for next - although with some minor changes as described below. > --- > drivers/mmc/core/sd.c | 19 +++++++++++++++++-- > 1 file changed, 17 insertions(+), 2 deletions(-) > > diff --git a/drivers/mmc/core/sd.c b/drivers/mmc/core/sd.c > index 4e7366a..eaf8cb3 100644 > --- a/drivers/mmc/core/sd.c > +++ b/drivers/mmc/core/sd.c > @@ -628,9 +628,24 @@ static int mmc_sd_init_uhs_card(struct mmc_card *card) > * SDR104 mode SD-cards. Note that tuning is mandatory for SDR104. > */ > if (!mmc_host_is_spi(card->host) && > - (card->sd_bus_speed == UHS_SDR50_BUS_SPEED || > - card->sd_bus_speed == UHS_SDR104_BUS_SPEED)) > + (card->sd_bus_speed == UHS_SDR50_BUS_SPEED || > + card->sd_bus_speed == UHS_DDR50_BUS_SPEED || > + card->sd_bus_speed == UHS_SDR104_BUS_SPEED)) { > err = mmc_execute_tuning(card); > + > + /* > + * As SD Specifications Part1 Physical Layer Specification Version > + * 3.01 says, CMD19 tuning is available for unlocked cards in transfer > + * state of 1.8V signaling mode. The small difference between v3.00 > + * and 3.01 spec means that CMD19 tuning is also available for DDR50 > + * mode. > + */ Checkpatch warned about long lines, so I changed them. > + if (err && (card->sd_bus_speed == UHS_DDR50_BUS_SPEED)) { Removed a pair of unnecessary parentheses for this if statement. > + pr_warn("%s: ddr50 tuning failed\n", mmc_hostname(card->host)); > + err = 0; > + } > + } > + > out: > kfree(status); > > -- > 1.9.1 > Kind regards Uffe -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/mmc/core/sd.c b/drivers/mmc/core/sd.c index 4e7366a..eaf8cb3 100644 --- a/drivers/mmc/core/sd.c +++ b/drivers/mmc/core/sd.c @@ -628,9 +628,24 @@ static int mmc_sd_init_uhs_card(struct mmc_card *card) * SDR104 mode SD-cards. Note that tuning is mandatory for SDR104. */ if (!mmc_host_is_spi(card->host) && - (card->sd_bus_speed == UHS_SDR50_BUS_SPEED || - card->sd_bus_speed == UHS_SDR104_BUS_SPEED)) + (card->sd_bus_speed == UHS_SDR50_BUS_SPEED || + card->sd_bus_speed == UHS_DDR50_BUS_SPEED || + card->sd_bus_speed == UHS_SDR104_BUS_SPEED)) { err = mmc_execute_tuning(card); + + /* + * As SD Specifications Part1 Physical Layer Specification Version + * 3.01 says, CMD19 tuning is available for unlocked cards in transfer + * state of 1.8V signaling mode. The small difference between v3.00 + * and 3.01 spec means that CMD19 tuning is also available for DDR50 + * mode. + */ + if (err && (card->sd_bus_speed == UHS_DDR50_BUS_SPEED)) { + pr_warn("%s: ddr50 tuning failed\n", mmc_hostname(card->host)); + err = 0; + } + } + out: kfree(status);