Hi! > commit 43b0b361b0170030603cf76f70b099f3323edcf3 upstream. > > Current code gets number of taps only once and keeps the value. This is > not correct, we need to obtain it every time before executing tuning, > so remove the outer if-block. I'd somehow assume number of tuning parameters would be fixed... Does the hardware really change it? Out of curiosity, why is it doing so? Best regards, Pavel
Hi Pavel, > Subject: Re: [PATCH 4.4.y-cip 63/83] mmc: tmio: always get number of taps > > Hi! > > > commit 43b0b361b0170030603cf76f70b099f3323edcf3 upstream. > > > > Current code gets number of taps only once and keeps the value. This > > is not correct, we need to obtain it every time before executing > > tuning, so remove the outer if-block. > > I'd somehow assume number of tuning parameters would be fixed... Does > the hardware really change it? Out of curiosity, why is it doing so? I guess it is for hs200 and hs400 tuning. Regds, Biju
diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index 35dbeb5..4764f96 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -819,16 +819,14 @@ static int tmio_mmc_execute_tuning(struct mmc_host *mmc, u32 opcode) struct tmio_mmc_host *host = mmc_priv(mmc); int i, ret = 0; - if (!host->tap_num) { - if (!host->init_tuning || !host->select_tuning) - /* Tuning is not supported */ - goto out; + if (!host->init_tuning || !host->select_tuning) + /* Tuning is not supported */ + goto out; - host->tap_num = host->init_tuning(host); - if (!host->tap_num) - /* Tuning is not supported */ - goto out; - } + host->tap_num = host->init_tuning(host); + if (!host->tap_num) + /* Tuning is not supported */ + goto out; if (host->tap_num * 2 >= sizeof(host->taps) * BITS_PER_BYTE) { dev_warn_once(&host->pdev->dev,