From patchwork Tue Apr 14 16:14:10 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulf Hansson X-Patchwork-Id: 185418 Delivered-To: patches@linaro.org Received: by 2002:a92:3d9a:0:0:0:0:0 with SMTP id k26csp1601924ilf; Tue, 14 Apr 2020 09:14:46 -0700 (PDT) X-Received: by 2002:a05:651c:3c6:: with SMTP id f6mr533145ljp.229.1586880885934; Tue, 14 Apr 2020 09:14:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586880885; cv=none; d=google.com; s=arc-20160816; b=XHhGtVOTTnS/xyiR/r8ZXH+3ZIH8Nh5YCyA+cgGfuAVhTdMJNtfBqcmjANJ77B2PnL DlGmim/5vuuW1YQdpIjNxj8SAKSg7EHyd3MNlbSDGw1ErWKSi0E0g7oG3lDw3oBI3Rbr SiCo6BkmBvhp+6b2yQ+ftVuyce0dknL/9TI8K9zc0cym2KYLnSjAcXdom5L238o+uOcG w5RTms83qYLuXOFromsrTL4OVE9GXb12cK9104YUDXu9uDMnKiWhjmXSvMSKGCDdeksK 44S6KElT2BDovQCOQYAZHebgyZ7u8Son1WcRMVDQz9wvvpNp4NAD5EJcN4Hlck0iq9b4 KN4w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=kMaec8mWMGgXBuaiFP3tH4b1b1cDIYOxK4IXyRFu+Dw=; b=zOC8UdaqWjudG3KCn9Mgs+5ei+Oh/pRNcbfRqTeGywbuvAPZf7Duh9jLqh8c1FoK8a iK9XVVOG4DzVKM9UjA6hMRHQ3L9gjX1fhvGyUTQfVL4x/WvqL1DJnqpLFdmaiATEEYYm q8pb8dXEFKB5DCdm35sHoR8zFhwjwHOmZLsWoddmRr6Ivd/If8mgO7sIOPy0g4pTrpuW G5kQID4eVo5drwObm0kU3o/VOkDcywoL6dEVS1EmiZEm+JEizgcN0uem6eyP1UraUuRs S+w2dEK9ykdzAuGOvbWgu5am3mJ4daw3q1yFUbARkBuhUU0W9WTTrHCmp/YoJKRdgvUb yQ4w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ZkQKPfPW; spf=pass (google.com: domain of ulf.hansson@linaro.org designates 209.85.220.65 as permitted sender) smtp.mailfrom=ulf.hansson@linaro.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id p8sor2719263lfc.58.2020.04.14.09.14.45 for (Google Transport Security); Tue, 14 Apr 2020 09:14:45 -0700 (PDT) Received-SPF: pass (google.com: domain of ulf.hansson@linaro.org designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ZkQKPfPW; spf=pass (google.com: domain of ulf.hansson@linaro.org designates 209.85.220.65 as permitted sender) smtp.mailfrom=ulf.hansson@linaro.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=kMaec8mWMGgXBuaiFP3tH4b1b1cDIYOxK4IXyRFu+Dw=; b=ZkQKPfPWw39M+b18G+5yDS4CgY8qAJxK1czbQlkXUvwQ6ABr+9X9vRIJK7AfuEAQek DRoNqmdULa9cNVyVCt8SMU4hxy82qVDyplxE0uHZlQF0HbmnFaGnxQb0WGBGSahSk0Qo iw9lx8COygDkr92pF3A5llzXcoiqaYaxtyW1BiV6csj2Vmegn3hq3n+YDjnAHn60RiSQ mLbSA9p/ZW0kmJHPNpCD02J6gOaQTcvLpMW3tF7sgWsHV23DYPRNysdUjBNFcP+yuhbP sjpsPMQi7NMnw5Iei1A8cD6vKb2IZ8cIaGtX+jc+M2TvSEqN++mj6mga3n+p/3iGffRn AGYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=kMaec8mWMGgXBuaiFP3tH4b1b1cDIYOxK4IXyRFu+Dw=; b=nmSP7tlleljktRdDW39gZ5NtJ3Iek+tusJ/Vmj2XMomJPM52JoZneWwNhfIwupN9Rg YtTDLv5MQEkhMCQhzjR0S6mGpQeP9S3x9eNQmo1gAGyIJPwMWcT1ioaPAEUfhmOMieCS aDjV/rmZogDo8gDQqEMewaWM73fSHMywteJ4q0cFkar87q38ammlOs2HgLr5GcLE3imZ N0iW0n5PagF9SYBA/A7up9u6mHlZNsBCmPWeidWsimr3sc5SYiWsPQpJ+WG+QQeptAKP gxQ0sSmDJ26fuvf2ueGwockkqnmPq2kEG9O+ZFC0j+pjHO8MuX2Gnkn6un2TyQneIr2z daQA== X-Gm-Message-State: AGi0Pubn1nutTwyh3BOurXkE/Hj3+i18br7rfH076206glakvCXF0xn8 Q6XQkYp114Yrd1fzf6PgTLQqaU43 X-Google-Smtp-Source: APiQypKcHfUONHVLUePGtZy2gcEGlrLSGkNd3Y9zreb4CnGqewO95145PU1TnmyQ3HrJmkuYIMFgFg== X-Received: by 2002:a19:ca13:: with SMTP id a19mr359794lfg.68.1586880885559; Tue, 14 Apr 2020 09:14:45 -0700 (PDT) Return-Path: Received: from localhost.localdomain (h-98-128-181-131.NA.cust.bahnhof.se. [98.128.181.131]) by smtp.gmail.com with ESMTPSA id a26sm9330669ljn.22.2020.04.14.09.14.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Apr 2020 09:14:44 -0700 (PDT) From: Ulf Hansson To: linux-mmc@vger.kernel.org, Ulf Hansson Cc: Adrian Hunter , Linus Walleij , Rui Miguel Silva , Johan Hovold , Alex Elder , Greg Kroah-Hartman , =?utf-8?q?Jonathan_Neusch=C3=A4fer?= , Bruce Chang , Harald Welte , Alex Dubov , Sascha Sommer , Manivannan Sadhasivam , mirq-linux@rere.qmqm.pl, Jesper Nilsson , Lars Persson , Paul Cercueil , Ludovic Desroches , Nicolas Ferre Subject: [PATCH 16/19] mmc: via-sdmmc: Respect the cmd->busy_timeout from the mmc core Date: Tue, 14 Apr 2020 18:14:10 +0200 Message-Id: <20200414161413.3036-17-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200414161413.3036-1-ulf.hansson@linaro.org> References: <20200414161413.3036-1-ulf.hansson@linaro.org> MIME-Version: 1.0 Using a fixed 1s timeout for all commands (and data transfers) is a bit problematic. For some commands it means waiting longer than needed for the timer to expire, which may not a big issue, but still. For other commands, like for an erase (CMD38) that uses a R1B response, may require longer timeouts than 1s. In these cases, we may end up treating the command as it failed, while it just needed some more time to complete successfully. Fix the problem by respecting the cmd->busy_timeout, which is provided by the mmc core. Cc: Bruce Chang Cc: Harald Welte Signed-off-by: Ulf Hansson --- drivers/mmc/host/via-sdmmc.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) -- 2.20.1 diff --git a/drivers/mmc/host/via-sdmmc.c b/drivers/mmc/host/via-sdmmc.c index e48bddd95ce6..ef95bce50889 100644 --- a/drivers/mmc/host/via-sdmmc.c +++ b/drivers/mmc/host/via-sdmmc.c @@ -319,6 +319,8 @@ struct via_crdr_mmc_host { /* some devices need a very long delay for power to stabilize */ #define VIA_CRDR_QUIRK_300MS_PWRDELAY 0x0001 +#define VIA_CMD_TIMEOUT_MS 1000 + static const struct pci_device_id via_ids[] = { {PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_9530, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0,}, @@ -551,14 +553,17 @@ static void via_sdc_send_command(struct via_crdr_mmc_host *host, { void __iomem *addrbase; struct mmc_data *data; + unsigned int timeout_ms; u32 cmdctrl = 0; WARN_ON(host->cmd); data = cmd->data; - mod_timer(&host->timer, jiffies + HZ); host->cmd = cmd; + timeout_ms = cmd->busy_timeout ? cmd->busy_timeout : VIA_CMD_TIMEOUT_MS; + mod_timer(&host->timer, jiffies + msecs_to_jiffies(timeout_ms)); + /*Command index*/ cmdctrl = cmd->opcode << 8;