From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753978AbdJIG5f (ORCPT ); Mon, 9 Oct 2017 02:57:35 -0400 Received: from lucky1.263xmail.com ([211.157.147.133]:41432 "EHLO lucky1.263xmail.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753879AbdJIG5c (ORCPT ); Mon, 9 Oct 2017 02:57:32 -0400 X-263anti-spam: KSV:0; X-MAIL-GRAY: 1 X-MAIL-DELIVERY: 0 X-KSVirus-check: 0 X-ABS-CHECKED: 4 X-RL-SENDER: shawn.lin@rock-chips.com X-FST-TO: linux-kernel@vger.kernel.org X-SENDER-IP: 58.22.7.114 X-LOGIN-NAME: shawn.lin@rock-chips.com X-UNIQUE-TAG: <0fe8a21256f4f0957f5a62001b9c13db> X-ATTACHMENT-NUM: 0 X-DNS-TYPE: 0 Cc: jh80.chung@samsung.com, ulf.hansson@linaro.org, shawn.lin@rock-chips.com, briannorris@chromium.org, amstan@chromium.org, xzy.xu@rock-chips.com, linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/3] mmc: dw_mmc: cancel the CTO timer after a voltage switch To: Douglas Anderson References: <20170927205631.31559-1-dianders@chromium.org> <20170927205631.31559-2-dianders@chromium.org> From: Shawn Lin Message-ID: Date: Mon, 9 Oct 2017 14:57:17 +0800 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 In-Reply-To: <20170927205631.31559-2-dianders@chromium.org> Content-Type: text/plain; charset=gbk; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2017/9/28 4:56, Douglas Anderson wrote: > When running with the commit 03de19212ea3 ("mmc: dw_mmc: introduce > timer for broken command transfer over scheme") I found this message > in the log: > Unexpected command timeout, state 7 > > It turns out that we weren't properly cancelling the new CTO timer in > the case that a voltage switch was done. Let's promote the cancel > into the dw_mci_cmd_interrupt() function to fix this. > Reviewed-by: Shawn Lin > Fixes: 03de19212ea3 ("mmc: dw_mmc: introduce timer for broken command transfer over scheme") > Signed-off-by: Douglas Anderson > --- > > drivers/mmc/host/dw_mmc.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c > index 860313bd952a..f5b2bb4b4d98 100644 > --- a/drivers/mmc/host/dw_mmc.c > +++ b/drivers/mmc/host/dw_mmc.c > @@ -2570,6 +2570,8 @@ static void dw_mci_write_data_pio(struct dw_mci *host) > > static void dw_mci_cmd_interrupt(struct dw_mci *host, u32 status) > { > + del_timer(&host->cto_timer); > + > if (!host->cmd_status) > host->cmd_status = status; > > @@ -2662,7 +2664,6 @@ static irqreturn_t dw_mci_interrupt(int irq, void *dev_id) > } > > if (pending & SDMMC_INT_CMD_DONE) { > - del_timer(&host->cto_timer); > mci_writel(host, RINTSTS, SDMMC_INT_CMD_DONE); > dw_mci_cmd_interrupt(host, pending); > } >