From patchwork Tue Apr 14 16:13:55 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulf Hansson X-Patchwork-Id: 185403 Delivered-To: patches@linaro.org Received: by 2002:a92:3d9a:0:0:0:0:0 with SMTP id k26csp1601416ilf; Tue, 14 Apr 2020 09:14:20 -0700 (PDT) X-Received: by 2002:a2e:85c4:: with SMTP id h4mr596892ljj.112.1586880860089; Tue, 14 Apr 2020 09:14:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586880860; cv=none; d=google.com; s=arc-20160816; b=cQkaV9f+3mbQDWR0NstOIP66DAIniHokYaN3oc2ERYnPpeyYj0oI3vBK6LUZHOBWI4 eaBXRejT16Nm/IyMYT6Blhw9lmEIUNGROwAVrpG+eIV2hQsLjGAe4lKq8gM6Ygc3YqD3 o1qv3DJiYBQe8VBubUQJCw/rpNYfbPAS5ejK6PqUmRE8JJjbwGSE5s0LTl7dBOjmeU8a cn2Cqhx5su5VZz9vq0arx/OWVZwU/1jryIrqwy1e9moUhOaiYMhNmApPf6+s/A+fT06i ZpB7xu4EnjBIL1x+BmlBydePBYVILXm9rWB4E9EDc7CiRYoMgK91DjtpT4ILJIyUrTTh 1vTA== 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=fwu9S7UAM+VTYbloegyIHMb4QE63ILc3ZmogPOBkYSU=; b=FquD7oLacZkF0Tu4ToGrdfdgImci9FQa2MXB6Nf3plthkdKZ+UnCgHHepZcVY5inrU hoi6Sk0MLjmVkeKt3YjqsyYFG6UifGP02tQ9O+JXURzWUKHIypfMrM+6xdd1Tn8ODiC3 AjgtwCULmUWTig6CbjdoYpFlhGbsDnyKZkvAmm8i1gGETPueJIElASool1bSc0yCCchy IQslcXEWZ4T16EIpulzSuJ6KT9C3mRol8Yq8Y5K/LQrxPA3qdcIRVbI0298h76f+FN1F DjZWfBxiuqzEJX/v8vT6OaxKRydPJnB3BBgyzVcn3sHGURUUllLoMbNUJuer76vSat/p qR+A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="TEUP/ysJ"; 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 h6sor7887396ljl.36.2020.04.14.09.14.19 for (Google Transport Security); Tue, 14 Apr 2020 09:14:20 -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="TEUP/ysJ"; 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=fwu9S7UAM+VTYbloegyIHMb4QE63ILc3ZmogPOBkYSU=; b=TEUP/ysJDXAn4KxMntEmfuWp7e1ntkd972BMMHUAMu5RSVy9NFcLzJ/MNbN2sAhr9K z68Bs0twoY/mOuLSNUVJzJ6T3O897odoityS+fUX07CGspTf0xdXFoQRV/Rdg+sU1bAK XpT/snLZrvR1mU33DD9m0MZSoEBCsJ37ao2b0JENZmJOFWI74Lb5IDTYWSD3ECBwQpmX eta9GEbIYs9lcYyoJjvV/HTmqbjvRJiG3iYhgCJ2CuKykyA5KbvAHaojHmINJL/0hlJc XvzMZPk3tFXppWXMn6J1hPvgYoFDtmsZfURKfoZcFhtTNg4RYPJnzs1/vtHVyPTZeUrJ OkkA== 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=fwu9S7UAM+VTYbloegyIHMb4QE63ILc3ZmogPOBkYSU=; b=Rlp5R5Ygg0r2eOXuvON4KoTSjRVuqTDVJRcKHVxd5GPBCmN6jEb9qBqmWB5l9HiLBP obLbZyKf4cZvquCKVvflN1wY72fb7+smPT5pSvGoeeRgdxyh3h20bTG5hYihMjwLQx/o yNR2nTfBGwdunpupSUJUYbFPIiguh/w5ItaSwa5GqzFhvq+orhFiC76NbEYOE0WkHLQh A/GvfPzUNIg7LIGMzwYwvVt24WSxfsBgT481agR9l/dkamlTq3/4OGGfvVzMY+L2IJC/ MxoklsrhEu19XzPB9QZFypgsyfmZTc2RtgBharxk+5dwP6hxc+zDsKXdOpbZ92asCJBW m1gA== X-Gm-Message-State: AGi0PubFsO+KdMAjLWfdk8SdxYXt5aE18iAX8uI2UUap0AB9o0jZrvq/ bMYHK5yvA6+WvitFmfQXuUgghx8I X-Google-Smtp-Source: APiQypJM/eUdzwtHvKRnjzHusrgxtMlGcKRC7NKmQ0OWpE9gTPFZ6P//cvxf2cOs7EDedBN2qOKVPw== X-Received: by 2002:a2e:9713:: with SMTP id r19mr553910lji.89.1586880859671; Tue, 14 Apr 2020 09:14:19 -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.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Apr 2020 09:14:19 -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 01/19] mmc: atmel-mci: Keep timer enabled when queuing a next request Date: Tue, 14 Apr 2020 18:13:55 +0200 Message-Id: <20200414161413.3036-2-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 When atmci_request_end() is about to finish a request for one slot, there is a possibility that there is new request queued for another slot. If this turns out to be the case, the new request is started and the timer is re-programmed for it. Although, a few lines below in atmci_request_end(), this timer becomes deleted, likely corresponding to the other recently completed request. This looks wrong, so let's fix it. Cc: Ludovic Desroches Cc: Nicolas Ferre Signed-off-by: Ulf Hansson --- drivers/mmc/host/atmel-mci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- 2.20.1 Acked-by: Ludovic Desroches diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c index aeaaa5314924..0472df8391b5 100644 --- a/drivers/mmc/host/atmel-mci.c +++ b/drivers/mmc/host/atmel-mci.c @@ -1557,6 +1557,8 @@ static void atmci_request_end(struct atmel_mci *host, struct mmc_request *mrq) WARN_ON(host->cmd || host->data); + del_timer(&host->timer); + /* * Update the MMC clock rate if necessary. This may be * necessary if set_ios() is called when a different slot is @@ -1583,8 +1585,6 @@ static void atmci_request_end(struct atmel_mci *host, struct mmc_request *mrq) host->state = STATE_IDLE; } - del_timer(&host->timer); - spin_unlock(&host->lock); mmc_request_done(prev_mmc, mrq); spin_lock(&host->lock); From patchwork Tue Apr 14 16:13:56 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulf Hansson X-Patchwork-Id: 185404 Delivered-To: patches@linaro.org Received: by 2002:a92:3d9a:0:0:0:0:0 with SMTP id k26csp1601456ilf; Tue, 14 Apr 2020 09:14:21 -0700 (PDT) X-Received: by 2002:a05:651c:215:: with SMTP id y21mr556660ljn.87.1586880861654; Tue, 14 Apr 2020 09:14:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586880861; cv=none; d=google.com; s=arc-20160816; b=qpwToer3pn14aYhkLCBirIhfpnxMqZax0U19RoHzwirIIBhDMUFW2NgPT4y6+mrTat 06njsBd1RT4Kdxn8y+3Vu+SxFlzKQgt+SRRYxqj8tMqvF6WbywTBo1p3FtkkNvxVAw2e AVp4D2SxigAQrLgzTVMNdDcwht1mUpCQzGuJMybRVROCjCANJv2VbsFrc0aT4fxHlg+f /zFOPsLMJMuOXoEidiI8EtdLNo+j6xEBIZihDe2nuJ10ydk1aldSBLBA567y+PchlkBd L9eM7xn3e95CoHXV5PubchVixVxFLyuUMEfepYjkw/M2eFaFIe6CSMTyulFHqBIYzWHe I7fw== 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=7LduVD2uZS35fq7b3rWpwMCdk3E6T3OQ5w3znT1sZ0o=; b=V2VrUlmKDMG0KHb1kQU0JnwWYwsmiTMN5HXSMX+N4dd435SOyqEk9C3UI/pj1Odg+E cuo07kW33nJm4HvcFWXJK9bh9hU3HyNgD3gf52Kg1G7bLfCJPmZctQkOBp+U0BGg3Spc GZgPxqw3Gt7jsxCERFGSxtZq5UWs/AlOioA22NmNVANT5Vw+Xerb8dR05A9iaiZ5rVnE eDMDo2+ftIJcqeSck2DlneJ+Tux7hmDNd2cPhl0+T5fonL2JIx5XVRB2UvAvuKuM0Tlz Gg3EQxoO54cyHnN81JXU2Io0SxxZqpU+FQ4jUE0z0QV7jzjuOLa/+ywAj5RqM0Grh2Sd O9Ag== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ybNoaVLx; 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 j18sor7953391lja.0.2020.04.14.09.14.21 for (Google Transport Security); Tue, 14 Apr 2020 09:14:21 -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=ybNoaVLx; 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=7LduVD2uZS35fq7b3rWpwMCdk3E6T3OQ5w3znT1sZ0o=; b=ybNoaVLxsmcOKKwqgU+D19pNdmFWVntSm7VVsTsiO3lwWfS4JurMrNdeAZ2GrbhEe1 QETjMX/gguWOx+2iYkbixlWIVdMgjqxCyOg0JJY2MvLsd4bTHEi0K2I2b9l03sxGrnSc z1nXqYtPsd5MFWYWB18Brf2T8MeAzmlZgUZvsaAwirI5Miua992hGKAJzW9drNqxPfXJ JOljET2+mk2U94PVMnCKfFBH9n85M7QU3Jxcm6PQsBPyco8rQJlcs7TPnLeNWz0L1ulv TaaVUoWMN71z3U1r2FJHqZvjqXm/b4p8IoBHy1zzqJaR1ESYhOu6brNolBo2xLlZxO4e rNYg== 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=7LduVD2uZS35fq7b3rWpwMCdk3E6T3OQ5w3znT1sZ0o=; b=Zo3sw/vi5dxqnmOadDqE8cPITeAY5GLHk3MGiyD9E+Jjc3bdyC1eQPAptuesSJIETZ qqxatIrWCDzSqUoXX+oP2n6CNePSJuGgoWq19WS/KEk/cYCZLueue6ZPPKAB4pjwcXdX hHPGgiFvbyoZ2tNFFTGybaEhVzaGZDtha7YmLRC3zUU028hmTS0OjRGhirWvfeq+ZRF9 KpXvAJBYnl13XtnDYQljBKSstH51KUlAa/LHN2Ya3+UtiUiAVyJb3Aid0sDc2SY41fkU sNbWAqTTuwGFGlg9PuLMgE4ryujGFyPRjp0jx2eXh5/pTlxKAOZLM9pML8JAwDuMS/gO 1E1A== X-Gm-Message-State: AGi0PuYKUNDJJar8YcgEWq7gAA2VdORJiCdrpEiyR2VHIyC4O7BV5rx1 I9Tg9qfP6pDsC0BVcTGUAYT9X57m X-Google-Smtp-Source: APiQypKCPWSEYnixJRTEMXCdwuSakasGvOelofBOLCza141ICejNMneeXisEP2I4gmISHO2Rr1Zcsw== X-Received: by 2002:a2e:8e3a:: with SMTP id r26mr534954ljk.171.1586880861230; Tue, 14 Apr 2020 09:14:21 -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.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Apr 2020 09:14:20 -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 02/19] mmc: atmel-mci: Set the timer per command rather than per request Date: Tue, 14 Apr 2020 18:13:56 +0200 Message-Id: <20200414161413.3036-3-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 Setting the timer on a per request basis, is rather limiting as the timer really depends on what commands that is to be sent as part of the request. Therefore improve the behaviour by programming the timer per command basis instead. Cc: Ludovic Desroches Cc: Nicolas Ferre Signed-off-by: Ulf Hansson --- drivers/mmc/host/atmel-mci.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) -- 2.20.1 diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c index 0472df8391b5..7292970065b6 100644 --- a/drivers/mmc/host/atmel-mci.c +++ b/drivers/mmc/host/atmel-mci.c @@ -169,6 +169,7 @@ #define atmci_writel(port, reg, value) \ __raw_writel((value), (port)->regs + reg) +#define ATMCI_CMD_TIMEOUT_MS 2000 #define AUTOSUSPEND_DELAY 50 #define ATMCI_DATA_ERROR_FLAGS (ATMCI_DCRCE | ATMCI_DTOE | ATMCI_OVRE | ATMCI_UNRE) @@ -817,6 +818,9 @@ static void atmci_send_command(struct atmel_mci *host, atmci_writel(host, ATMCI_ARGR, cmd->arg); atmci_writel(host, ATMCI_CMDR, cmd_flags); + + mod_timer(&host->timer, + jiffies + msecs_to_jiffies(ATMCI_CMD_TIMEOUT_MS)); } static void atmci_send_stop_cmd(struct atmel_mci *host, struct mmc_data *data) @@ -1314,8 +1318,6 @@ static void atmci_start_request(struct atmel_mci *host, * prepared yet.) */ atmci_writel(host, ATMCI_IER, iflags); - - mod_timer(&host->timer, jiffies + msecs_to_jiffies(2000)); } static void atmci_queue_request(struct atmel_mci *host, From patchwork Tue Apr 14 16:13:57 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulf Hansson X-Patchwork-Id: 185405 Delivered-To: patches@linaro.org Received: by 2002:a92:3d9a:0:0:0:0:0 with SMTP id k26csp1601501ilf; Tue, 14 Apr 2020 09:14:23 -0700 (PDT) X-Received: by 2002:a2e:9907:: with SMTP id v7mr518889lji.199.1586880863273; Tue, 14 Apr 2020 09:14:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586880863; cv=none; d=google.com; s=arc-20160816; b=i+i+fNoKx6/u8TScvkukdaDuxIjY2HgcwB7V7SWSf7waXEKoGe4q7qVpPuz+aPRhxw GavyAOYMLqCmhoTlXMKc5VZ0bLo0h1+PHIZZgzRBjDqcAoMuv/6EjiD7S/pMrLnmYu/7 Xmqc2i0IFJM0ATkl3a1ktU0Q8o2FP6+PDh4UvrkoG0W+UAClYVywyeh3Psa7AxLdg45e sGPPKu2YR6SOLNqtzbUlt03qX+HqUvT1MFb8d4qz8XWKDbhhsl8sX6CUwT5jazlaodes UCCu2WiwklPtzEDZ3PXAdc8m14w96myumWtrHXs7Mnbo97WKcTKuckzCma7TqFbbkWKX fP8g== 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=/u7NC6yDRYNMvCAgPxU0HxDtYNDMqbE9FekEfbQcOQI=; b=Lv44J1wOClquie7Xk5gfm57G3wEfDZ9EMbW/cZFXqXUOZwTo0kh4h6qjZNWjB7K5cm ELXVBwRPHKTN/lbbeF0c9vQxWmi+mqilHPS70X7EwYxGx/x1tYTXP7gDHOs9DyXP3A/a 2wxiythpiQClGiSijf2NXEyFEuUIWHkUpgl7Nqitdn1E4b6EbBkofuZ7XQy9p+TQJtTX iX/hxNnj87UtXNUW81mIdBz/IkzoEMLaCKFft2NZApLBOAhb98Zz0dRjUiWZtjD+Fv2F 3pjYfV2d9jArUOmmaRyqOFHQTtl8UDjFVb9o3beUo8Asm3OQb/Yj+0lcMx0b+txLYNAA U6BA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Qe5pJo5d; 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 a19sor2557759ljb.25.2020.04.14.09.14.23 for (Google Transport Security); Tue, 14 Apr 2020 09:14:23 -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=Qe5pJo5d; 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=/u7NC6yDRYNMvCAgPxU0HxDtYNDMqbE9FekEfbQcOQI=; b=Qe5pJo5dEPudnBkoPikQMvE6hJ5ljLrOG38fGhfx5vrpBWxgRFNkeMDiieUT4RPMKa 5tTXHjKo6VeyWJDk8FlOCDwYNQzttV9GQEzosgU1ZSjFxvd+Dq26m5WuGJeOZ8f9NqzE jaqiLnetGzYTiXYEo1xZkCXVigQlaMmQ2J7s8IEL4zGBbBWp2DPjlI8o6u97IGuaJp/8 Oc5ZmJSfEV2qR74c1BtvuVO8zmNBb41B6VdWHFJOTInSFFij49C0Cu7s7+ATtWogKlIJ 3aXD5TmWUp01eerr7G4uhVPyPv73AFEUABXEBFz7G0RZj12RgibE/4NZFBiqSYvAv1Ru VKIA== 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=/u7NC6yDRYNMvCAgPxU0HxDtYNDMqbE9FekEfbQcOQI=; b=L2UVUDUqb0SvjJIE0hHUpSG50Ia+gM58UQLCdDf5bBpIySl2OjYbPuMRlOMLHjtPEE TATzSMmR32GFxhY+g7K4m6NHNgUq3bSGOYr3qMB/qWttUvQH54dTES54IIaLqv6sMlBi zH1J/cG0vTYcu/nG68Om4xdx2TGtOVEnGo0WpB+HtaMmzk/zG9wCVWU9pgie+iisDlun csKOEsiyFrx3yZqhxbu86W/LUMFAfo0emwQxg4ODp9TusfOs4H6qmVsmbow3eiND29Xh N5iBFnbSkHO1kpfVg/ZcV4WHBSgpDZdkTCjq0cltEeSd7dl5AwMBhzxidfvl56JHzq7J Wy+w== X-Gm-Message-State: AGi0Publou3992GVjTKZR8iBpHBwQXQsp9xMYL1ewoSDlnljvPL9X5ZI hDUNsqbBonEHMmbdzOk4aYHMKfpG X-Google-Smtp-Source: APiQypIgOtfZ87J/KQSZFiapD6CrLOavQOnvdrCDtYDXFD5vzNbytd1wC7vz/1FKmxXrpSQWSVJX1w== X-Received: by 2002:a2e:a179:: with SMTP id u25mr568229ljl.192.1586880862780; Tue, 14 Apr 2020 09:14:22 -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.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Apr 2020 09:14:22 -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 03/19] mmc: atmel-mci: Respect the cmd->busy_timeout from the mmc core Date: Tue, 14 Apr 2020 18:13:57 +0200 Message-Id: <20200414161413.3036-4-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 2s timeout for all commands 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 2s. 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: Ludovic Desroches Cc: Nicolas Ferre Signed-off-by: Ulf Hansson --- drivers/mmc/host/atmel-mci.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) -- 2.20.1 Acked-by: Ludovic Desroches diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c index 7292970065b6..5cb692687698 100644 --- a/drivers/mmc/host/atmel-mci.c +++ b/drivers/mmc/host/atmel-mci.c @@ -809,6 +809,9 @@ static u32 atmci_prepare_command(struct mmc_host *mmc, static void atmci_send_command(struct atmel_mci *host, struct mmc_command *cmd, u32 cmd_flags) { + unsigned int timeout_ms = cmd->busy_timeout ? cmd->busy_timeout : + ATMCI_CMD_TIMEOUT_MS; + WARN_ON(host->cmd); host->cmd = cmd; @@ -819,8 +822,7 @@ static void atmci_send_command(struct atmel_mci *host, atmci_writel(host, ATMCI_ARGR, cmd->arg); atmci_writel(host, ATMCI_CMDR, cmd_flags); - mod_timer(&host->timer, - jiffies + msecs_to_jiffies(ATMCI_CMD_TIMEOUT_MS)); + mod_timer(&host->timer, jiffies + msecs_to_jiffies(timeout_ms)); } static void atmci_send_stop_cmd(struct atmel_mci *host, struct mmc_data *data) From patchwork Tue Apr 14 16:13:58 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulf Hansson X-Patchwork-Id: 185406 Delivered-To: patches@linaro.org Received: by 2002:a92:3d9a:0:0:0:0:0 with SMTP id k26csp1601545ilf; Tue, 14 Apr 2020 09:14:25 -0700 (PDT) X-Received: by 2002:a19:f518:: with SMTP id j24mr330685lfb.205.1586880864893; Tue, 14 Apr 2020 09:14:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586880864; cv=none; d=google.com; s=arc-20160816; b=jubBdIV4MOu5UxHCAJt4YYeSpO5xQCnnhj6xFlFOL1Rq2TYa8jt7AkPM1ntCMpoHEg z1EyZDnKMoGO9R/in/d4VJd6CWP5JXPr0FL1SqeqQYvju6c7ZMntSUQm0zW5DDOE0Nnv ZlWNWbVrtrniChrAcSKgxyRHc1KDe910tTsjXcKuhU63wulV89wxUF0U8KnIaY5NA0EN P0GT+NDfKHb6eZxligfe7OBGuXleemUFfA2ML+AeI+nloAKA8bQD1/sQ6kwvHBQ0e2iQ aVCpi8bOZoFyB+iPNXlVq2jYa+S6ZSu4BXMxnFcKobL3IksSCp7fiXFCYv1v51W/i0w1 1t+Q== 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=AYdnh8axE7O5nxAM7j16STUfeW8l+S8DGrk3gV3Ki2w=; b=SzgbOwk3RUhV738ielKKmzkGJTLHGlI2iHsPin/aj8tBybzpT6EPlObNOQ4OO9eNsU MQikka/rDTixgrSEAL1ehZ72C/kG7oM5a/pfUxV9C+Bz8JVmdF/uUSTUpR98rxiSqLbk Dim7d5voYROYKhiDBFbTzdl92XjfKhM9mmAwZpqq9bS9DeWtJDo3Gm8cQGnqI+P5k8TT PsT9en+zUgfpTCksNozbGiIQvQl/qyE1vC4GQeroblTdb0gCLILYJ3UuAaAt6CKSO43I KbgfJfwbUg/wcFx6LiaFmRvaq9YNS7Po99NMWwAj4eIcH0ll098zdxcIbzPnfbuktwIx T//w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=FYSixSDX; 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 q9sor7989629ljb.17.2020.04.14.09.14.24 for (Google Transport Security); Tue, 14 Apr 2020 09:14:24 -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=FYSixSDX; 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=AYdnh8axE7O5nxAM7j16STUfeW8l+S8DGrk3gV3Ki2w=; b=FYSixSDXj+uVpRBQsmoBKTzaDrieN3wjrMbhC5q+4fYMmL0/CTBKEqebCgrrDsU3OU zPl2xwzZRdr1opCFuBqL1MOVlL7r6jndWmP4bsQNDAGy/fk3hiry8bXZgwoSp+IITSMv HrzYz57d4D+qfvswMF5sA8ZyFDwUAHUJr74vY03RvVP7h/BQ71dIZcauFmMSnmXUrbCz Fxs36SiY3EZO+qP6sAM8I6TPdZDYXk1/AM7DIhDRJwrwJuobTNOnKS+qN9LPsfrQGwUw iGqIKy7zqrtF1U13H/iS9Mi/nAfzrpcKbCSWyqrdKdgnTWpg75F6OxyzPpOoiQy9qNYl q7SA== 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=AYdnh8axE7O5nxAM7j16STUfeW8l+S8DGrk3gV3Ki2w=; b=qqx292PKV/coJGdvhkp7wGQ5dKTyfOTLO3XVzXWc3+BfiZjr8w4gQOo47okrpz3HJN 5zoNg/rELVt/z15VDYVDI6D8YTKsCLBRZwpxpv3W86Mu8nfnnsGww1QjbzuFKPw1IHYr AaDSQYgKvMkdNKDV6b8Xk+dLTAEyg3CPdOiebTO7m2oxOGdvMan+lNTI4Dz27PJEYQjQ PtgAzLKHyG+2n7zMrlqkdS4ZE/9IEG+BgSayz+vbvxCLxp0+1QdNEbiTMoIsLZKs/y4d nxX0DlMdw2fl5ysAjHXYYtTo3kOZUjJsbS9vHhcEL91XEyGWfUD03gdmP7qavfN5YJJK qi4A== X-Gm-Message-State: AGi0PuadpV9vPPwj/UJHpq2+qlPuUyGrwky2H27R3whsoJ2uS9WskKMI AakLJJN8yH8GDFR7w86BgtCNGMIR X-Google-Smtp-Source: APiQypL8YkNs8e6IfWiesvrfd+ebEKIwH++gg0sGm7nmkBjls88mayVolw3CRNdAwNLZSh7TJrLLoA== X-Received: by 2002:a2e:a303:: with SMTP id l3mr569214lje.166.1586880864266; Tue, 14 Apr 2020 09:14:24 -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.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Apr 2020 09:14:23 -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 04/19] mmc: jz4740: Inform the mmc core about the maximum busy timeout Date: Tue, 14 Apr 2020 18:13:58 +0200 Message-Id: <20200414161413.3036-5-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 Some commands uses R1B responses, which means the card may assert the DAT0 line to signal busy for a period of time, after it has received the command. The mmc core normally specifies the busy period for the command in the cmd->busy_timeout. Ideally the driver should respect it, but that requires quite some update of the code, so let's defer that to someone with the HW at hand. Instead, let's inform the mmc core about the maximum supported busy timeout in ->max_busy_timeout during ->probe(). This value corresponds to the fixed 5s timeout used by jz4740. In this way, we let the mmc core validate the needed timeout, which may lead to that it converts from a R1B into a R1 response and then use CMD13 to poll for busy completion. In other words, this change enables support for commands with longer busy periods than 5s, like erase (CMD38) for example. Cc: Paul Cercueil Signed-off-by: Ulf Hansson --- drivers/mmc/host/jz4740_mmc.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) -- 2.20.1 diff --git a/drivers/mmc/host/jz4740_mmc.c b/drivers/mmc/host/jz4740_mmc.c index fbae87d1f017..cba7a6fcd178 100644 --- a/drivers/mmc/host/jz4740_mmc.c +++ b/drivers/mmc/host/jz4740_mmc.c @@ -108,6 +108,7 @@ #define JZ_MMC_LPM_LOW_POWER_MODE_EN BIT(0) #define JZ_MMC_CLK_RATE 24000000 +#define JZ_MMC_REQ_TIMEOUT_MS 5000 enum jz4740_mmc_version { JZ_MMC_JZ4740, @@ -440,7 +441,8 @@ static unsigned int jz4740_mmc_poll_irq(struct jz4740_mmc_host *host, if (timeout == 0) { set_bit(0, &host->waiting); - mod_timer(&host->timeout_timer, jiffies + 5*HZ); + mod_timer(&host->timeout_timer, + jiffies + msecs_to_jiffies(JZ_MMC_REQ_TIMEOUT_MS)); jz4740_mmc_set_irq_enabled(host, irq, true); return true; } @@ -893,7 +895,8 @@ static void jz4740_mmc_request(struct mmc_host *mmc, struct mmc_request *req) host->state = JZ4740_MMC_STATE_READ_RESPONSE; set_bit(0, &host->waiting); - mod_timer(&host->timeout_timer, jiffies + 5*HZ); + mod_timer(&host->timeout_timer, + jiffies + msecs_to_jiffies(JZ_MMC_REQ_TIMEOUT_MS)); jz4740_mmc_send_command(host, req->cmd); } @@ -1023,6 +1026,12 @@ static int jz4740_mmc_probe(struct platform_device* pdev) mmc->f_min = mmc->f_max / 128; mmc->ocr_avail = MMC_VDD_32_33 | MMC_VDD_33_34; + /* + * We use a fixed timeout of 5s, hence inform the core about it. A + * future improvement should instead respect the cmd->busy_timeout. + */ + mmc->max_busy_timeout = JZ_MMC_REQ_TIMEOUT_MS; + mmc->max_blk_size = (1 << 10) - 1; mmc->max_blk_count = (1 << 15) - 1; mmc->max_req_size = mmc->max_blk_size * mmc->max_blk_count; From patchwork Tue Apr 14 16:13:59 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulf Hansson X-Patchwork-Id: 185407 Delivered-To: patches@linaro.org Received: by 2002:a92:3d9a:0:0:0:0:0 with SMTP id k26csp1601579ilf; Tue, 14 Apr 2020 09:14:26 -0700 (PDT) X-Received: by 2002:a2e:909a:: with SMTP id l26mr550342ljg.177.1586880866452; Tue, 14 Apr 2020 09:14:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586880866; cv=none; d=google.com; s=arc-20160816; b=PdDZCGzp6rrtuimLvRbBp0r53k5a/FB1dHwAgA3pzXOP5513HL2zNcyuaf1xCotTS+ xPOuR/zIlgagixrEQjBbOACmnAsmd5FJ2isji2/r7NoQ2kqNfQ/eFmFeq5UXhWjF1NRI AT/gYIV4BvPKlnxdoAPKpS75vcYU8duf++VvJi5t/U9BUvnc13E+zRBN7E3/LeXs6VeZ SAe1nPgWHBAWkLIwMl/7dzLMmuzYFeauNX7lOK90w/kJRQpgPlFQZYCFwWS7lXDNJjKx NvG1F7rKVwf77NJBszkz5PeQWpN6bWxXc3RuTIQxtIU6GprLw96La4Vo9SVz+0O+kf4a T6oA== 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=MbZ0bEn9Rkc/WddH3A2e/7d/+RZVhN7mNCvo/MSHe3k=; b=nh+K5m36wg07+ebd+f2sQQIveAdXrUOrrY6KZg8uLa5Ko7qH/H3BLSQ5RtrkxC/ngk QFIZoaRZyGUye/o/4CYDESjqC9d/RrcU+tvxLybWDU6NczyGj2bwfRJHaJVeXY8/vQIl 6ogwVBXFHenqdJ9Z+hBZdGWLfZFgLj1rDFR5t2ucsTdOOTrUEGILMJTQoOeFQrxwRO/I JW72AF2ltOtQcfmy+uITDzw22Zkz70RhXv8QyLa4HylwawxrU34kW5ygSp7w99MX7FAX eeSJVcq5JooIOzsPGn/JqFi4h+KxaX7C1lRmP8CntorcngY2wNKL+UpFoh4e4YcWlVKn v9AA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="ZEexuQi/"; 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 17sor4110172lfy.7.2020.04.14.09.14.26 for (Google Transport Security); Tue, 14 Apr 2020 09:14:26 -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="ZEexuQi/"; 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=MbZ0bEn9Rkc/WddH3A2e/7d/+RZVhN7mNCvo/MSHe3k=; b=ZEexuQi/A2O3CvayF+xs3mZjQ7ctNr77NL88nKPyhYIfba/s1GZuKnyt7YOYQLlhvF 14o/+QF0aB52arqna+S6vf5YYH2caKXTWSCH0jihMDUwbyl/01ttUld4onk1crr1CGgs yh2h6J9e8EU/xa+iHKQmOpeiUC1DYFvGQ1kJaw8XyxEuVDxqTyh7CIoZ7zpRbT4GAyPw IgmlxC1TiP/19sq1GYu+bsaV9/RKs2bmnh2IVLuOg/3ZwhUY7f9kmclduJOK46v6vMNS IGQcb2+kTu+mNHDWUsnsYm4ARypBCDB2n2cY03HJ72hq9nS8YkHHp7A7L/TCiwBIX5xL oHuw== 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=MbZ0bEn9Rkc/WddH3A2e/7d/+RZVhN7mNCvo/MSHe3k=; b=JPkpxLGTBMiWtFkU986Ngr2llDxjNOmf7N0BMlmrKu+ewFWHjT6AhvjqsI3NLRkw69 e6GO9w509k5qRQIoravHDKdn5Ul3IoXh7LgJzpyEEcPaja2FC4Fl1A0+QMBb1rQOBp5m 0Bc1kN13EktD6JTvsnMUKgTi1o0VhJ+NFmoaFKRG4d2aTIVlxkXX9E1hjfom6Nt/vhml 2qS56lqYZOjrJHP3WvexPgnnSUhdFsVriKtKttPjc362GJU1ohnPnSbu5xnppRpRT9T9 ZF/W/EONqvvHHhZ/4FBHqFfvqo8QTCHR/8D9n77BDeMmzkBqFkquzxuPF0iv5wwARXLa i2Ig== X-Gm-Message-State: AGi0PuamjKOlxtDnFShoOj3uBW37UEgkfS76P9X+3VYiVfcj7F/CBCHj dDn/hU2cxDbLLqH4AODCsiNKkPq+ X-Google-Smtp-Source: APiQypIxTTwRXx9V/9uIe1PK0wt899qbViA+d4WR7UWfvLYqgI6bQ3LbehyqfhP0/7toD588uaw9CA== X-Received: by 2002:a05:6512:3e2:: with SMTP id n2mr340858lfq.129.1586880865981; Tue, 14 Apr 2020 09:14:25 -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.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Apr 2020 09:14:25 -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 05/19] mmc: usdhi6rol0: Inform the mmc core about the maximum busy timeout Date: Tue, 14 Apr 2020 18:13:59 +0200 Message-Id: <20200414161413.3036-6-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 Some commands uses R1B responses, which means the card may assert the DAT0 line to signal busy for a period of time, after it has received the command. The mmc core normally specifies the busy period for the command in the cmd->busy_timeout. Ideally the driver should respect it, but that requires quite some update of the code, so let's defer that to someone with the HW at hand. Instead, let's inform the mmc core about the maximum supported busy timeout in ->max_busy_timeout during ->probe(). This value corresponds to the fixed 4s timeout used by usdhi6rol0. In this way, we let the mmc core validate the needed timeout, which may lead to that it converts from a R1B into a R1 response and then use CMD13 to poll for busy completion. In other words, this change enables support for commands with longer busy periods than 4s, like erase (CMD38) for example. Cc: Jesper Nilsson Cc: Lars Persson Signed-off-by: Ulf Hansson --- drivers/mmc/host/usdhi6rol0.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) -- 2.20.1 Acked-by: Jesper Nilsson diff --git a/drivers/mmc/host/usdhi6rol0.c b/drivers/mmc/host/usdhi6rol0.c index 9a0b1e4e405d..369b8dee2e3d 100644 --- a/drivers/mmc/host/usdhi6rol0.c +++ b/drivers/mmc/host/usdhi6rol0.c @@ -136,6 +136,8 @@ #define USDHI6_MIN_DMA 64 +#define USDHI6_REQ_TIMEOUT_MS 4000 + enum usdhi6_wait_for { USDHI6_WAIT_FOR_REQUEST, USDHI6_WAIT_FOR_CMD, @@ -1763,7 +1765,12 @@ static int usdhi6_probe(struct platform_device *pdev) host = mmc_priv(mmc); host->mmc = mmc; host->wait = USDHI6_WAIT_FOR_REQUEST; - host->timeout = msecs_to_jiffies(4000); + host->timeout = msecs_to_jiffies(USDHI6_REQ_TIMEOUT_MS); + /* + * We use a fixed timeout of 4s, hence inform the core about it. A + * future improvement should instead respect the cmd->busy_timeout. + */ + mmc->max_busy_timeout = USDHI6_REQ_TIMEOUT_MS; host->pinctrl = devm_pinctrl_get(&pdev->dev); if (IS_ERR(host->pinctrl)) { From patchwork Tue Apr 14 16:14:00 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Ulf Hansson X-Patchwork-Id: 185408 Delivered-To: patches@linaro.org Received: by 2002:a92:3d9a:0:0:0:0:0 with SMTP id k26csp1601603ilf; Tue, 14 Apr 2020 09:14:28 -0700 (PDT) X-Received: by 2002:a2e:9718:: with SMTP id r24mr499912lji.287.1586880867993; Tue, 14 Apr 2020 09:14:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586880867; cv=none; d=google.com; s=arc-20160816; b=U7CX1m0ClMaR+Ua8+/+rG3n0dWYUhNo65N3+z+1ugTHcsSTxoGT4JOcOS4MS1kvfvM RLhGRHZxicU+6Fdk1Ob5GGMUbePgBY+ozqDonDgZogBWl2ecj9yy8g4TgFohcqSKCODZ 6JHnP7PWSBHJAcXfX+XPHWWcU49F17zQx5ZRXD56RwC8jcUZwfSu9KI2dZ8FhcBjE/1P /cAV3xPCiikU77ZGw4OTGcEnqkphJ+9NM3KrjVM5+jkImKK49z7BaHY2rPJavSnplBOR P5WzOV/tm9Jl+eDRmbilg0VcKgg7OA3dSpl/M/3JAdMDpNPCs/j0l7z9zQo8LrECh8YY VuqQ== 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=XmKXGQtxsIOhznp9pNPhEFf64m8qqLbnWlsrQ/4SF4E=; b=QUG/WRBHexQH9lPdrCz8MwF7dTJnEZJsOOvJ6JmtCzRe9nvtEYYrqIP8F3ONpnLso0 +LX6CY3wQjZe81lUsOqf2GplN3RAj+YAafxB62rj2QnZg3UXXhSmeK0A1DQXoO+4dHnX VmxZfpx4mLe/JQYuT3PMckAHV1SlK/NjHuBRSa6lBk/coU7QD6yIJpXAANhjFVQW4Xw8 91eY/ToEo+SODSeTcDmQ/yX6umBmrNFLb/9lazT5+SzIr45Uh9SofTwkMC5+s+xmOB2R pQvSsY12Z6DnQDjbmKRlcxzsM3r4He0QVySozbGQ3uExNdBJ+eO3T3ymY3z7bvQrLDPZ 6uMw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ys2a2Rxv; 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 w16sor7900824ljh.11.2020.04.14.09.14.27 for (Google Transport Security); Tue, 14 Apr 2020 09:14:27 -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=ys2a2Rxv; 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=XmKXGQtxsIOhznp9pNPhEFf64m8qqLbnWlsrQ/4SF4E=; b=ys2a2Rxv1fHn6dNE3FKrh4UthQoW9bZjzaswrXjhQ4Iq/aceKq1zFPe1B/WUuYki0O kr5I47/MFXUgaCHkk3GwoT0mT6E0HIRhLmV5zHMDD+ddUsCupd17lfD0sjfhgsFLC4u+ Dmu1oWXhVQaCxIQ2eI4o7iNiI1dxXSoOSmxHxR2/9ZLla326g5CNJ5lzv+QBGs/lXZBZ hc+X82PFAdA5AS/cjVPWD4hmTDDm2TYADl1IXLe2Ji3zqrpZwHio32Zh3RT13j06sxpC 8yaj2g0cOf1nj4OCYp4iGx9bVm8KK3TmUHTolbyP0xP+TTTEoSyfL+iRMpUTcSa0Nd6U Z8Lg== 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=XmKXGQtxsIOhznp9pNPhEFf64m8qqLbnWlsrQ/4SF4E=; b=cAdONp9+QBC93vZPrXoUyU5kQVsPdMQHfnQoLQN5BZzgGcOcapf2fOfeiE1ezCD+tH SkdCUV9OBU09NTqS+QqsIA5Co9QV7kz9h6LqDaKlMBzJ/WEHJoV3cu7Jlk0m7/tlHukN b2zXDnpVZ2Bv5AMAvMmR84oRSeZIuzX0eNYLGO4k0bRsyRWgsfdAAUNzEiXW38zJ8BN3 hBBqdQWugQIxg5iY/6hM8SRKsc7Tz2p7CQ0Fzgs9OYe2JQqkrm/mklURrFdi1FgbRVE9 iLNKKzJWnAO5NKvz4DAVqUKnd7MXzvCegqYWG9zLqoitwc0+EchvrNpee7tqE60jS0Cq T4ZA== X-Gm-Message-State: AGi0Pua5dODINtLZEbBjIXOrQj0I8oF6XGh6Gf1MF3vpBZuECstXZDBT 5VGtAqiCT9qfjzCnlRxN8Dr7J8qg X-Google-Smtp-Source: APiQypIaSC7iIt+X71C9p8KMhHncniaeFLEwdearv2pXqObwPy8NQfjCkb14xmevkMJ2cFK7rA7FMg== X-Received: by 2002:a2e:2413:: with SMTP id k19mr587913ljk.134.1586880867557; Tue, 14 Apr 2020 09:14:27 -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.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Apr 2020 09:14:27 -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 06/19] mmc: cb710: Inform the mmc core about the maximum busy timeout Date: Tue, 14 Apr 2020 18:14:00 +0200 Message-Id: <20200414161413.3036-7-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 Some commands uses R1B responses, which means the card may assert the DAT0 line to signal busy for a period of time, after it has received the command. The mmc core normally specifies the busy period for the command in the cmd->busy_timeout. Ideally the driver should respect it, but that requires quite some update of the code, so let's defer that to someone with the HW at hand. Instead, let's inform the mmc core about the maximum supported busy timeout in ->max_busy_timeout during ->probe(). This value corresponds to the fixed ~2s timeout of the polling loop, implemented in cb710_wait_for_event(). In this way, we let the mmc core validate the needed timeout, which may lead to that it converts from a R1B into a R1 response and then use CMD13 to poll for busy completion. In other words, this change enables support for commands with longer busy periods than 2s, like erase (CMD38) for example. Cc: Michał Mirosław Signed-off-by: Ulf Hansson --- drivers/mmc/host/cb710-mmc.c | 8 ++++++++ 1 file changed, 8 insertions(+) -- 2.20.1 diff --git a/drivers/mmc/host/cb710-mmc.c b/drivers/mmc/host/cb710-mmc.c index e33270e40539..e84ed84ea4cc 100644 --- a/drivers/mmc/host/cb710-mmc.c +++ b/drivers/mmc/host/cb710-mmc.c @@ -10,6 +10,8 @@ #include #include "cb710-mmc.h" +#define CB710_MMC_REQ_TIMEOUT_MS 2000 + static const u8 cb710_clock_divider_log2[8] = { /* 1, 2, 4, 8, 16, 32, 128, 512 */ 0, 1, 2, 3, 4, 5, 7, 9 @@ -707,6 +709,12 @@ static int cb710_mmc_init(struct platform_device *pdev) mmc->f_min = val >> cb710_clock_divider_log2[CB710_MAX_DIVIDER_IDX]; mmc->ocr_avail = MMC_VDD_32_33|MMC_VDD_33_34; mmc->caps = MMC_CAP_4_BIT_DATA; + /* + * In cb710_wait_for_event() we use a fixed timeout of ~2s, hence let's + * inform the core about it. A future improvement should instead make + * use of the cmd->busy_timeout. + */ + mmc->max_busy_timeout = CB710_MMC_REQ_TIMEOUT_MS; reader = mmc_priv(mmc); From patchwork Tue Apr 14 16:14:01 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulf Hansson X-Patchwork-Id: 185409 Delivered-To: patches@linaro.org Received: by 2002:a92:3d9a:0:0:0:0:0 with SMTP id k26csp1601635ilf; Tue, 14 Apr 2020 09:14:29 -0700 (PDT) X-Received: by 2002:a19:cb41:: with SMTP id b62mr349788lfg.21.1586880869637; Tue, 14 Apr 2020 09:14:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586880869; cv=none; d=google.com; s=arc-20160816; b=zwHAd7Jc0xT+IR5MKsyP1WNxRvgRDiTw+iG6AswZuRsukY7Suk5qKTsDfC/Toog/+9 Pyzbn7qtAm0tLcq4bgWW8bk2AzHiaP2UEvEkEWwnrg7BdF0zvncrcEwLXkL1amuOODqk eFRRrF1vP5fguo68uZ8hjs0DBtTeZXCEFO0dIrRbt2ZwAeWYTbndkSnGQp/BeY9Y8yDl xd9m2r9DN1nD7+J5JQgoxdnOPCAR3pm+HlDxcN/vY2mAOZn9t8JfLCV2at43cc5VgzZV 9wMXAzPlSFlQCuoS2wOkOYl1VmL73Tc4kWmqwzPQezEe1RP1ykWxvduhKpDGGaPhHH5W G0ng== 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=Drk5vikO+eMqgoiRlkCCu1nIyTRzBQ4eNzUPfgIrlk0=; b=dmMUWXwKpZbwmzLHbekFUfjmJLG8n7oMfZHL7l9vZWkKQwnlZzK3NBoTwaTxQkKSnZ jWy4Ij+okV2v7eNe9gEgN5QLkp82FCe6rCeAwQbU5p6SCLkq0dBFgbTW4Zfh1glVfI4i pTWIUZ+0iwa8tZlykGm3foL5MZpDcV04oXxyQAQfxqpC8kj9DE9py6Tqr9FHbGfVl6xg MM1Z9zU9JR7N99Io2BaJVKZcs0mjtoIjw8sYGSRNhcBvJMaK9FW6Azow9t+Khq+SF3iY yFNfxg5HRuon41Rr/KGIuy3wIvrfoENhwhI5KD/DvfbHvyXk1jGax1893JDxujIVQTI/ Q77g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=f8tt1y6f; 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 n196sor4171019lfa.4.2020.04.14.09.14.29 for (Google Transport Security); Tue, 14 Apr 2020 09:14:29 -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=f8tt1y6f; 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=Drk5vikO+eMqgoiRlkCCu1nIyTRzBQ4eNzUPfgIrlk0=; b=f8tt1y6fsUG4FuFOTOxcmCUl1y8XY4OykCcWGg3sdeQ3pDiqvmiZ7kVd2xkOinMQX/ Lr5HBkGlDH2aWz/Biy5r5L/ia7J1Hr1kPq7pZswKNjxGgVYq5JV7KgijmMcbQqt7Xr9J WKx52zGAU2O3ULVisvpbNXtcsPHWX76fGbfOgKw1tOvsqQbvM32ZPAZs/7ir4cqv9bfx OILu4jihPtYoWNQxbW7GhW2Poh53TEXuvzqGvV+7NfTJK6o4MlkbamvHA/KtCwhz5exH Bf7eE7DrkKIxqD/fk2qUAdye4LYKJsvQsR5mlGn/ZPnX129uX/GURaKVEKYNePDO5mxF 8X3Q== 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=Drk5vikO+eMqgoiRlkCCu1nIyTRzBQ4eNzUPfgIrlk0=; b=dBF4H60OTLlV5JI73lQxvhvWr+ABlvmcjGWH+FBZkUJgB/hNsoxcuMMCep9bZapgsk 7ZP9+zFJMPFjsVO2XoSm1W5CWO+1EYwxJ+Hu+3Eea/E9OQ2Td0YEtatAtHRb0gxbkYGC xdcY50TRt4t6B/YXkNDS7BglUZKCEUNjEjVz56rHRlLIkMuw/2iPfndwyXJR8dCzpypK FwH1gFD4KkgmdCiXa7K7s5X+7Mf0Za8IJ9FLeqGdEwArAyQeLMiqfSAr2Xwr1CAgnCmO Dpg0GejE22ZMg2dmwO5htXRO4dtwCI3D0nv/+Fxd3ngrE0IRNVQz+cMaVtJa7UCvTN1l gT3Q== X-Gm-Message-State: AGi0PuYNLJ6qmepxG2tnZwslX82sPX/ILXA9vhCIz6AQAw4qOw8rQY7z yxLFYArc6qBL2xVAeP/G8w1AKqpg X-Google-Smtp-Source: APiQypJgAn6RWPcdZxUy7YdttREG6dpFC9F1so2iARfkwl8BaVEyPKJpOcK0U7i9LQV4UmYygU+KxQ== X-Received: by 2002:ac2:46ea:: with SMTP id q10mr370834lfo.128.1586880869221; Tue, 14 Apr 2020 09:14:29 -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.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Apr 2020 09:14:28 -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 07/19] mmc: owl-mmc: Respect the cmd->busy_timeout from the mmc core Date: Tue, 14 Apr 2020 18:14:01 +0200 Message-Id: <20200414161413.3036-8-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 For commands that doesn't involve to prepare a data transfer, owl-mmc is using a fixed 30s response timeout. This is a bit problematic. For some commands it means waiting longer than needed for the completion 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 30s. 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: Manivannan Sadhasivam Signed-off-by: Ulf Hansson --- drivers/mmc/host/owl-mmc.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) -- 2.20.1 diff --git a/drivers/mmc/host/owl-mmc.c b/drivers/mmc/host/owl-mmc.c index 01ffe51f413d..5e20c099fe03 100644 --- a/drivers/mmc/host/owl-mmc.c +++ b/drivers/mmc/host/owl-mmc.c @@ -92,6 +92,8 @@ #define OWL_SD_STATE_RC16ER BIT(1) #define OWL_SD_STATE_CRC7ER BIT(0) +#define OWL_CMD_TIMEOUT_MS 30000 + struct owl_mmc_host { struct device *dev; struct reset_control *reset; @@ -172,6 +174,7 @@ static void owl_mmc_send_cmd(struct owl_mmc_host *owl_host, struct mmc_command *cmd, struct mmc_data *data) { + unsigned long timeout; u32 mode, state, resp[2]; u32 cmd_rsp_mask = 0; @@ -239,7 +242,10 @@ static void owl_mmc_send_cmd(struct owl_mmc_host *owl_host, if (data) return; - if (!wait_for_completion_timeout(&owl_host->sdc_complete, 30 * HZ)) { + timeout = msecs_to_jiffies(cmd->busy_timeout ? cmd->busy_timeout : + OWL_CMD_TIMEOUT_MS); + + if (!wait_for_completion_timeout(&owl_host->sdc_complete, timeout)) { dev_err(owl_host->dev, "CMD interrupt timeout\n"); cmd->error = -ETIMEDOUT; return; From patchwork Tue Apr 14 16:14:02 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulf Hansson X-Patchwork-Id: 185410 Delivered-To: patches@linaro.org Received: by 2002:a92:3d9a:0:0:0:0:0 with SMTP id k26csp1601671ilf; Tue, 14 Apr 2020 09:14:31 -0700 (PDT) X-Received: by 2002:a2e:3507:: with SMTP id z7mr575744ljz.111.1586880871798; Tue, 14 Apr 2020 09:14:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586880871; cv=none; d=google.com; s=arc-20160816; b=iON2zM0wVq2RddTWYyF6I2sowszIo8rIcdkivfT3jCNifmjyNhoKYv1Nfprs7v/+L6 QwtKzxHes8QTjoEVlzFC9en6hPdc0s2651oFD0Cj9gYzuMCcA1oqPhORZ1XiXmV1bTh4 f2H9+y/Pti+0C7zplombdr6YtmEEutYv9BLRMyfnZq+dmpU/FE1ZOR/IIQEYpKxEuy2n ZN/h2cSN9SQY4/pWBCiW5UWczQzguo/LQW5fc1nBgO5kMtJSHh6llqaP81QJjqD38wU2 UnlymteRarG18hgJc4JtGpH8Pbyj1U3MnikZoIxtOHAAhxOJZ6gc41BKpGn/jqGOXTp5 S0Wg== 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=9QnWaA+YV/c9Li2yPT2LBVJasT99G3qkQ/TJy+CeVPw=; b=eyyzBTnKPPDwfj52J0jZhjMdTzulPOBSxFkjKMp5phXleSvLTb0KSvXJXOnml1u2t2 Gyv1Mi+JdU+z0OuNtIijiIDSl5Xt97fCfcAxvOwvc3wgf6eW6YG9B4hEWOgaQhYy4K11 War3dGdnZ5/aE+pNEdIpqBOFvZ3jCZUIuZ8skqnuaENW9I57chUGlYtrpEPdXyo9KF66 01zoPMjHVN5HtJCKfSW+Xd8Omenuv2oGZZF902x7r7XPt3ol8MhUXLtXC7xmYgSCFSd8 v4KsDawSmyiGJ5z6DuAGJU9nj2z1YIC7LYquGOpG5WCN6Z5BJ68dIB3MOvQEhZaa6+L/ Sevw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=mhB60q8X; 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 v15sor3143584lfg.2.2020.04.14.09.14.31 for (Google Transport Security); Tue, 14 Apr 2020 09:14:31 -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=mhB60q8X; 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=9QnWaA+YV/c9Li2yPT2LBVJasT99G3qkQ/TJy+CeVPw=; b=mhB60q8XHmKslX9V/PSmnWFU41gKBr1Uwkl54rU2Nh8oLbk4Me9Zansiaoh4oKKls4 oYDbWj3VZ5492bw6NgtSYyse7daOzDzfKmSjJ0Ykrikxz2YKTpS1UJQHf3ao92/AOack b1ol2JOc6xG2+TQvluwsX4793IpLo4k39L7AKgFDSqyBf3zZUPJKh7jF+QyBa0NCe46U Lr5wsf/fFkwvIR4xZAwWjZ0Jyn6w9iLJthjpPsTzRaXsE8o7AEjAKiXLLFRx9+pum3zE UspWncBdmJgBTpZHgexGOBdWKaNOGg7jyO01SXDGw6u57XILEDP1jorSiosRdABHr+HS J/rQ== 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=9QnWaA+YV/c9Li2yPT2LBVJasT99G3qkQ/TJy+CeVPw=; b=I2oBAGUq3Com2MccEDltWojSSkLoRT9dTN2MTiTtpM3ycAliW4oRskbKuqQ6GKYU2r SkFAOrpPUqUwvnkQaP+QoO2bjKcugyMNHsQIsg0wMGKs1XAP2KMW99leM4iFD2bNu1Ir TDlhZTp/488cLYGbt/JVphpqqOwPybpNOPtpHsIjQ24iWT8AwMGMOVN37fJOI6liH8Wy TZ7PUoMOK6HR2Tbxdrl+3wFx2T4KvHy5ksaCrTru/ifWsHvDL99nGBXbABWQcCDbfb8/ UCoUP0a43O/aCkYlIKaFKuyc4+PGJxNV6dYZu3D5mxgUH5ZrNU7jEK2eu3lsvmWPkRLk 9bRQ== X-Gm-Message-State: AGi0Pub557YZBxIvnspQMy/xWsFnOXh2r/xE6WKcTQtmMn8hr1npb/9T bOsBVyhJnQyxt1KAu1UEbsrmDVBw X-Google-Smtp-Source: APiQypIPuqtPsAl6LcmL52VbxsBmm8/BLz+8CoOBvDh6Wmj9fQVDtl72gpelIUiST9FPwmaJBPaJ0Q== X-Received: by 2002:a19:c64b:: with SMTP id w72mr357854lff.82.1586880871411; Tue, 14 Apr 2020 09:14:31 -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.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Apr 2020 09:14:30 -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 08/19] mmc: sdricoh_cs: Drop unused defines Date: Tue, 14 Apr 2020 18:14:02 +0200 Message-Id: <20200414161413.3036-9-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 Cc: Sascha Sommer Signed-off-by: Ulf Hansson --- drivers/mmc/host/sdricoh_cs.c | 2 -- 1 file changed, 2 deletions(-) -- 2.20.1 diff --git a/drivers/mmc/host/sdricoh_cs.c b/drivers/mmc/host/sdricoh_cs.c index a38b8b2a4e5c..1fc4db713ef5 100644 --- a/drivers/mmc/host/sdricoh_cs.c +++ b/drivers/mmc/host/sdricoh_cs.c @@ -57,10 +57,8 @@ static unsigned int switchlocked; #define STATUS_BUSY 0x40000000 /* timeouts */ -#define INIT_TIMEOUT 100 #define CMD_TIMEOUT 100000 #define TRANSFER_TIMEOUT 100000 -#define BUSY_TIMEOUT 32767 /* list of supported pcmcia devices */ static const struct pcmcia_device_id pcmcia_ids[] = { From patchwork Tue Apr 14 16:14:03 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulf Hansson X-Patchwork-Id: 185411 Delivered-To: patches@linaro.org Received: by 2002:a92:3d9a:0:0:0:0:0 with SMTP id k26csp1601693ilf; Tue, 14 Apr 2020 09:14:33 -0700 (PDT) X-Received: by 2002:a2e:9ac9:: with SMTP id p9mr569518ljj.222.1586880873482; Tue, 14 Apr 2020 09:14:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586880873; cv=none; d=google.com; s=arc-20160816; b=Soj7L4UuTJDcxDrJ9eXlVPZnrvalcwkCXKG18snev1Ot+CMqFyMp/JaFimV+iOFEtn Dm0IU5CmTKwAoQmQHvKe8xEvIbRAIBilITJcCbCMaxhwxgurZ5QVjqPUcSPqPfb7B0Ul t+6iHbJV9rwK6aa4kFW+6lr643JKXxfYuzoFqgX6nBMC4Nc79GC/R3d2v9nUb6rdne9C vwa66PTT/Mxa/U9upMM/Q3ZY6iPAgi2/gdXOxCC55D6D13cOZKuN0RHHm93+1D4vcy/9 wW0DlW3PNU1WEtyEBz3zI1DhfmVxYnOq1dUkxy34SLd6KNi2UsdorvidVBAe38mm8iDC P9aQ== 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=ssNZhCk/W8aH/W/Y1Y0b51fjc3318cXifEh7iCUNpWY=; b=Z6/WiEqDI5bDU+Vw9WyOCqLLC3EsbnrrEljC4yLjL76VGdniWwNFuhNx4ngrbPrnCO Rl6s/jg8WBWVQ1MjTQxGZA2OIiMTMvwj/p7sAHxzBaHk9XrX9Z62PTZg7RB9pqCO3OaQ JYSR+YB0EuabGFj5HHp0fANagMtueT+QaSHKSsYd467+Ayo7i3evMRhyDG9VSjnM5IEO vHZwTb9ihDu/9lhRUO7ZDXk+G8AvDOugahN4iTPs0Ek73Xw5MnGJ7wcWSmA9VfugPoD8 o7/WLbcT2vAEE7iRWeDuV/JFqnzKQV38qZyfCLcvaIz6JOR6ztCXUpr2SXcDjle91VU0 wn3g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=byorq+Hh; 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 c5sor7994736ljk.42.2020.04.14.09.14.33 for (Google Transport Security); Tue, 14 Apr 2020 09:14:33 -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=byorq+Hh; 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=ssNZhCk/W8aH/W/Y1Y0b51fjc3318cXifEh7iCUNpWY=; b=byorq+HhD6RQw+ZVbfQkdf7A1wS+BcXsygsl7i9QF9TOlHQ3zVlW7O7peLFC+yyRaH /Tr0pk50Ycv4olUb+202GQ7VDfagVPqO7zamNCITsZindq9hJUTo1GTrYbH/CMT1fM4y X5TiYxYkHyQdfmsjdU415XSKMcgxMtsuEo1yaHx74sLntpupNNhDM15glIJTadLLG/hn YoYw9B+w3tOonSaT+7t8BxtH2m72Ud9ndILWTddmhZv6eBrBVRwt5IEiWYHprdX1srat quCAItruFljqp/+0+tocFBvRz1Fxan3udC+uHh94IpSwc+ztS4nyhWScR82laVbSg2tb D3/g== 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=ssNZhCk/W8aH/W/Y1Y0b51fjc3318cXifEh7iCUNpWY=; b=sVV16od/DRFbY2U1BcOxO4FIGfJuQcbBAyiDhs60MTRHM2/CLSfJiyRaxZNvp6Bscz It8X8hFRgQIrWbresAlfmxmZLo+IM7uh+IpA8SN+J4IvUOTtIOJ66ppG6hZm3/BShIdq BrmXyQeN5pHa96QjJG/wxXWVxkYhYGt27USAQr+bomCax6+uyPK+Lq6c4XZtKBivcH1V eTU0jX/hS3FgfGTDkLTJmUWCqB74Ra0UnWeRpcuXBEEaQHVosGiUAXjygjDLR56L1oxi 9vpDBQApBIoqj1N7GNFRNySfog+kQ5daOayHf04pmuuASr7+XT6JWQQEjiflc9xDMNby DyxQ== X-Gm-Message-State: AGi0Pub+h2ZGle6ks8Z+XsytDTbzlQX5nLhPHctZwTbsVR/ltxGpl/Ka nRZjv3ayCuOY1zq7Sh4DwtzDBRtk X-Google-Smtp-Source: APiQypK+UzFr/X/xwT3LC57UysC+HMAIQ0E8wkILiPjrXHpb2krTr+eX8VeYjT+17rMTHwOOInINFA== X-Received: by 2002:a2e:9a0d:: with SMTP id o13mr541104lji.142.1586880873076; Tue, 14 Apr 2020 09:14:33 -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.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Apr 2020 09:14:32 -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 09/19] mmc: sdricoh_cs: Use MMC_APP_CMD rather than a hardcoded number Date: Tue, 14 Apr 2020 18:14:03 +0200 Message-Id: <20200414161413.3036-10-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 Cc: Sascha Sommer Signed-off-by: Ulf Hansson --- drivers/mmc/host/sdricoh_cs.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) -- 2.20.1 diff --git a/drivers/mmc/host/sdricoh_cs.c b/drivers/mmc/host/sdricoh_cs.c index 1fc4db713ef5..a41c0660abbf 100644 --- a/drivers/mmc/host/sdricoh_cs.c +++ b/drivers/mmc/host/sdricoh_cs.c @@ -22,6 +22,7 @@ #include #include +#include #define DRIVER_NAME "sdricoh_cs" @@ -261,7 +262,7 @@ static void sdricoh_request(struct mmc_host *mmc, struct mmc_request *mrq) if (host->app_cmd) { opcode |= 64; host->app_cmd = 0; - } else if (opcode == 55) + } else if (opcode == MMC_APP_CMD) host->app_cmd = 1; /* read/write commands seem to require this */ From patchwork Tue Apr 14 16:14:04 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulf Hansson X-Patchwork-Id: 185412 Delivered-To: patches@linaro.org Received: by 2002:a92:3d9a:0:0:0:0:0 with SMTP id k26csp1601716ilf; Tue, 14 Apr 2020 09:14:35 -0700 (PDT) X-Received: by 2002:a2e:8ed9:: with SMTP id e25mr514046ljl.219.1586880875025; Tue, 14 Apr 2020 09:14:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586880875; cv=none; d=google.com; s=arc-20160816; b=AM8T5azhGTBrlf/0AnBgwdGoLJnwFXkKY7zACcfBeNkSdB5lNUv9XlLjVyniIkHl1C vngOn8Or1dhpdITNbyYqfN7NifXu+yEHHSJnbbwUeBZR+HinRE6uIP91SdDsyGChGmmt be61KExaIINfEFHJ6ev94vKotheFDRwbK5wfzsHTx9ykR0AUtvlAdzz/0vsUS0N4XmZt Cuu2DOsgWgVjZZVMiVMXkvHjbiBLkSdX0fTz7suxDfrHD+Ke3aDWCYjyuMPc3qEpWdgj gdi9wW0jDAQrQ1pzv/AuKup+UO2uLhBHwtL4VYUdaTrelx3oVBZHwAmPAkXRFmk2uQRV AMvw== 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=80KaipN4E9vrj55eH79AaG72UG5XrIIdifniUA7tIgQ=; b=O68joXrOGw9J0WfIHwKCRFRFOEU0k2KOLjYbaE3PnUXddttFYQn8z1wpV7QY6RTvXi ng99Ly0tDdT9wmlMzcj7C1xuLbvv49GTkTZnzrGf1RSsChovQCtX1v7LbxH8dD9SVE2Q msh+eIaouHi8BLHdQ3/E9A/rH02mpxxd4+8xIrl2AvmfC6UuTUaCpH4Uir7aVa9NNq7Y qxc2Wu4jjh+oeGsm4EZnfpskgOmQpIjUXVcS2OALCmRVJ+pRxF02us49sGBnBmrKYen5 dM7L/9YvT76wH2F9v2h8JN/TpKLbd6GOmhxaVt7FB+AQFCe6lKb674rJ2oUFVRtBEP0h Iv2w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=zjda40N9; 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 a6sor4097845lfo.21.2020.04.14.09.14.34 for (Google Transport Security); Tue, 14 Apr 2020 09:14:34 -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=zjda40N9; 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=80KaipN4E9vrj55eH79AaG72UG5XrIIdifniUA7tIgQ=; b=zjda40N94dMtZ05lDEBld1dw0zmn8kOXTcFruxfBvztIxnN3/i0t9iyLcIdEHWEMeT LIHVtPtiuW3LjC4Hji3TPIU01Nc4MMVy1huwdKkweZa1chhPnUInVOfIreIwnRkno6oI w0W0yqPBCq1zWSYWDKcUBYQOSSpv/rhtGq+Bknf1CXDbbOTyicGDstNXVD9y4PzXSHon +w3FrYUNvasodr5remaYOXk6xpRe1v5KyMpJwg+SPHxnjKHbd2lrM2i7jhxu6XKjNAw8 r/bWx1Q0Z5bxEyambleM/Tq+/vY+xC6yrxuv6BTnDVnTLpGPujv9D9Ee4QhmDvyMNsdy G5xg== 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=80KaipN4E9vrj55eH79AaG72UG5XrIIdifniUA7tIgQ=; b=h8bL8XdIEAU/u8dqAetCbQlY00aE2KXB81dffJh5OqHKtpaXETqE1lOozxYc7bc/wY CjhYIURoqoeEuZAO2kcTqIS6kQGIIvYTRyWd7HkTwFvUThS7HJpvrralZ8FP904asmWV 97NUWg9rPnHkLTVhykKe/3w/Ve9FQxXYcYRFEOA9ywkWE3rAZpCSgPg6LBHfWhY4bq72 tdRzZRJkiIh+vaywexuL975s7HLM7oa1vfVGP+eueU+2TSZpa2oV9M6yWcVv8BccKxv7 jA+IYPBqHz0aOZNDlRa1oy1xY/sSpWR/U+WRgoO/umE9JgyGkT2fQHXIKRhXmcupolfp YfGQ== X-Gm-Message-State: AGi0PuZ4ZP3p/a4G/cbnKDytM5wPbmcMZT3DMx2EVetw/XWwI2lj0Abq 4P+zO7a0YV8ui7PK/Pkw9wJcAhrL X-Google-Smtp-Source: APiQypKrhjdd2yd3xyPYdZQTdhlyhXKzzJglPXxGZ8H0YJAaXPYdcgoGYo2D4jnefw8dyN9f9FYD6w== X-Received: by 2002:a19:dc05:: with SMTP id t5mr332133lfg.73.1586880874527; Tue, 14 Apr 2020 09:14:34 -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.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Apr 2020 09:14:33 -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 10/19] mmc: sdricoh_cs: Move MMC_APP_CMD handling to sdricoh_mmc_cmd() Date: Tue, 14 Apr 2020 18:14:04 +0200 Message-Id: <20200414161413.3036-11-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 Move MMC_APP_CMD specific handling to be managed by sdricoh_mmc_cmd(), as this makes the code a bit cleaner. Cc: Sascha Sommer Signed-off-by: Ulf Hansson --- drivers/mmc/host/sdricoh_cs.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) -- 2.20.1 diff --git a/drivers/mmc/host/sdricoh_cs.c b/drivers/mmc/host/sdricoh_cs.c index a41c0660abbf..e7d74db95b57 100644 --- a/drivers/mmc/host/sdricoh_cs.c +++ b/drivers/mmc/host/sdricoh_cs.c @@ -149,16 +149,25 @@ static int sdricoh_query_status(struct sdricoh_host *host, unsigned int wanted, } -static int sdricoh_mmc_cmd(struct sdricoh_host *host, unsigned char opcode, - unsigned int arg) +static int sdricoh_mmc_cmd(struct sdricoh_host *host, struct mmc_command *cmd) { unsigned int status; int result = 0; unsigned int loop = 0; + unsigned char opcode = cmd->opcode; + /* reset status reg? */ sdricoh_writel(host, R21C_STATUS, 0x18); + + /* MMC_APP_CMDs need some special handling */ + if (host->app_cmd) { + opcode |= 64; + host->app_cmd = 0; + } else if (opcode == MMC_APP_CMD) + host->app_cmd = 1; + /* fill parameters */ - sdricoh_writel(host, R204_CMD_ARG, arg); + sdricoh_writel(host, R204_CMD_ARG, cmd->arg); sdricoh_writel(host, R200_CMD, (0x10000 << 8) | opcode); /* wait for command completion */ if (opcode) { @@ -250,28 +259,20 @@ static void sdricoh_request(struct mmc_host *mmc, struct mmc_request *mrq) struct mmc_command *cmd = mrq->cmd; struct mmc_data *data = cmd->data; struct device *dev = host->dev; - unsigned char opcode = cmd->opcode; int i; dev_dbg(dev, "=============================\n"); - dev_dbg(dev, "sdricoh_request opcode=%i\n", opcode); + dev_dbg(dev, "sdricoh_request opcode=%i\n", cmd->opcode); sdricoh_writel(host, R21C_STATUS, 0x18); - /* MMC_APP_CMDs need some special handling */ - if (host->app_cmd) { - opcode |= 64; - host->app_cmd = 0; - } else if (opcode == MMC_APP_CMD) - host->app_cmd = 1; - /* read/write commands seem to require this */ if (data) { sdricoh_writew(host, R226_BLOCKSIZE, data->blksz); sdricoh_writel(host, R208_DATAIO, 0); } - cmd->error = sdricoh_mmc_cmd(host, opcode, cmd->arg); + cmd->error = sdricoh_mmc_cmd(host, cmd); /* read response buffer */ if (cmd->flags & MMC_RSP_PRESENT) { From patchwork Tue Apr 14 16:14:05 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulf Hansson X-Patchwork-Id: 185413 Delivered-To: patches@linaro.org Received: by 2002:a92:3d9a:0:0:0:0:0 with SMTP id k26csp1601744ilf; Tue, 14 Apr 2020 09:14:37 -0700 (PDT) X-Received: by 2002:ac2:58f6:: with SMTP id v22mr346822lfo.146.1586880876884; Tue, 14 Apr 2020 09:14:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586880876; cv=none; d=google.com; s=arc-20160816; b=ooQLyH0VrQ/oqv5uoalEgT2tADTb//vMz0kw+vgKg7fuYJFyx2LeVR54gpWfJNxydL aR4GFWlDkUE7Vnr3zdgJvSZJeHZFWr4HCS3961DfpUYIWORv8Y9AnaG15txg+/0iiKd6 zjKUpZh3TZ41MzijK+p31h/YCfi2PPFDdjrX+DGsahoD5q3NvZx/N1nUmH/gw8Ii2Ano B2VAWkL/ry73piML9ecAn8ffSX+J91HQQ6zmU7YRDxHO5tsCDM60na50xSOIqwLh0pmx AuOZiBdwvlwwSIWqoH6UmgjMw8Gi1+x4gya7RMAA1AABGMCYeZ3hPNlnEReR3Jxghsly ihnA== 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=dn6VxHUGEp0h+lDNMYkyjs+eaTbjGnRrBr6whuUgNLQ=; b=SPBLtIFu1E+UonOx4GT/+KehSFK8tDIeRRczt/1sbaZ7cW283Nkrs5AJb71K4kH7fB ORyFkG+RfjedmnOqzPejpAZ/h5p6R0rbtajeiCDT6s9wyn1dJqfvnjYLEHiJmIduDVa0 lyVbYG62exOIkDfCLmkUpPVtM4F+cD1qsu/eGFlIxr1nEBoP2RZYe7rHA1sUIxmINkUE 5BfPMuWXtvtBbq0S4opXMq6ALNEV6hF5I+GKhcvs5gNB7A0K3leSjRXgUffF/YUz2Kdm cj8AFkj3D6IXwJSdllk0Bf1iz6avExBVPoton7zfqBSy7eVOqYkAGAhaqVVELVH+oGcc l/Fg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=buxlIUSI; 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 y23sor4156235lff.23.2020.04.14.09.14.36 for (Google Transport Security); Tue, 14 Apr 2020 09:14:36 -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=buxlIUSI; 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=dn6VxHUGEp0h+lDNMYkyjs+eaTbjGnRrBr6whuUgNLQ=; b=buxlIUSIrT5D15k/542DUXpz3fkzEN7p3nMlmm4+M9/tfJXHRqSt4i808UTYsF4ecC b1iA3PBYRCEHvf8U9R5IJeFK+t77fe1e2XXP9XHyi41wic7CobmwoG2BKB2lCjL1eQmF x4dhYhNI7Xg4mouw8mLpSdPYMz5nEAsWQfH3zTU6rsufrLnAQzey4+Lc92abqlBFlaoL jDuNvlwK2tP9ecPGtAZBgzsL6dmm+/v59kxJw2+/I+USS4Kg/gg1kF7pe50/w3hTfeug qF91C+pBuw1yRFAcOBrVctk22aqzDLKH8i/BP0476eHlxNmqMUDn9yLQQIsGNnVGIVRW jIBg== 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=dn6VxHUGEp0h+lDNMYkyjs+eaTbjGnRrBr6whuUgNLQ=; b=SCQimpvcupQtnImVdD9B3hZYs01SSa9D8qIc0P+CDgDj1GDupsWwnvXLlw4u4zG2Sb BfW98o1l12p6Bd+YigOaV+OdvOBzRhLqpfdGp93XlqgQDGl6Q3MgUdX0dF3N6S2kW0id 2l7OB+AtfM2iaR8vySKVLiMd5+hjIhnUh8nsjjat/pNE65D8DqKc1Otpq9eykzo3K8nK yl3Ut0l5oUkTPZMOq5HX42O/MRqwGp6VWKZSat2I2i8WLKQpGbNaf/LQCeMrCvQYFX6y yUONvO1sT6M/lB508YYBDq2ouCE9F/wr8emfw4hJAooFD5zVNlQQ0lHzAkZKtmfvPwep wong== X-Gm-Message-State: AGi0PuYjPXo1jiPdulyRhrQMFV68tU2X0Czn6awDY/uzMeIHR9uWQs3c qgXCqOFhzcbrnjtpVOFkGlMs3Kox X-Google-Smtp-Source: APiQypKJTgim6xv0zsXWcwFDb65pajvh4mKxX6sFBD2V6xhmJiRhFw0cmT67s7GB4L7mKrTfgH0m5w== X-Received: by 2002:a19:dcc:: with SMTP id 195mr325522lfn.193.1586880876481; Tue, 14 Apr 2020 09:14:36 -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.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Apr 2020 09:14:35 -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 11/19] mmc: sdricoh_cs: Drop redundant in-parameter to sdricoh_query_status() Date: Tue, 14 Apr 2020 18:14:05 +0200 Message-Id: <20200414161413.3036-12-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 The in-parameter timeout is always set to TRANSFER_TIMEOUT by the callers of sdricoh_query_status(), hence let's drop it. Cc: Sascha Sommer Signed-off-by: Ulf Hansson --- drivers/mmc/host/sdricoh_cs.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) -- 2.20.1 diff --git a/drivers/mmc/host/sdricoh_cs.c b/drivers/mmc/host/sdricoh_cs.c index e7d74db95b57..97ef7d71375a 100644 --- a/drivers/mmc/host/sdricoh_cs.c +++ b/drivers/mmc/host/sdricoh_cs.c @@ -123,11 +123,13 @@ static inline unsigned int sdricoh_readb(struct sdricoh_host *host, return value; } -static int sdricoh_query_status(struct sdricoh_host *host, unsigned int wanted, - unsigned int timeout){ +static int sdricoh_query_status(struct sdricoh_host *host, unsigned int wanted) +{ unsigned int loop; unsigned int status = 0; + unsigned int timeout = TRANSFER_TIMEOUT; struct device *dev = host->dev; + for (loop = 0; loop < timeout; loop++) { status = sdricoh_readl(host, R21C_STATUS); sdricoh_writel(host, R2E4_STATUS_RESP, status); @@ -215,8 +217,7 @@ static int sdricoh_blockio(struct sdricoh_host *host, int read, u32 data = 0; /* wait until the data is available */ if (read) { - if (sdricoh_query_status(host, STATUS_READY_TO_READ, - TRANSFER_TIMEOUT)) + if (sdricoh_query_status(host, STATUS_READY_TO_READ)) return -ETIMEDOUT; sdricoh_writel(host, R21C_STATUS, 0x18); /* read data */ @@ -232,8 +233,7 @@ static int sdricoh_blockio(struct sdricoh_host *host, int read, } } } else { - if (sdricoh_query_status(host, STATUS_READY_TO_WRITE, - TRANSFER_TIMEOUT)) + if (sdricoh_query_status(host, STATUS_READY_TO_WRITE)) return -ETIMEDOUT; sdricoh_writel(host, R21C_STATUS, 0x18); /* write data */ @@ -323,8 +323,7 @@ static void sdricoh_request(struct mmc_host *mmc, struct mmc_request *mrq) sdricoh_writel(host, R208_DATAIO, 1); - if (sdricoh_query_status(host, STATUS_TRANSFER_FINISHED, - TRANSFER_TIMEOUT)) { + if (sdricoh_query_status(host, STATUS_TRANSFER_FINISHED)) { dev_err(dev, "sdricoh_request: transfer end error\n"); cmd->error = -EINVAL; } From patchwork Tue Apr 14 16:14:06 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulf Hansson X-Patchwork-Id: 185414 Delivered-To: patches@linaro.org Received: by 2002:a92:3d9a:0:0:0:0:0 with SMTP id k26csp1601784ilf; Tue, 14 Apr 2020 09:14:39 -0700 (PDT) X-Received: by 2002:a19:5217:: with SMTP id m23mr361872lfb.202.1586880878877; Tue, 14 Apr 2020 09:14:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586880878; cv=none; d=google.com; s=arc-20160816; b=Q2i9ejub5EQvfcyZyQLbkwmfE2yeLpqYAgP2cMtXRIJdQl2Qww3TsOoNynsSfKjKIf PzaH5v/XebChtwGS+lHw0vVuUBChLTm4O3k8QOcycQWLPQ11VUVyINOcpcWdQ0jlBT0B x8DtqhV6qlVkadLI6Cmm+xKA2jpBicxkQEwZ4kIZ6eMSk6VPYMNERts0oWi8AQRV4eoB fmFa+gCo99U20eW3doESptjnkjvv/Y4iLDcLlxGGZd2J/9/UQnkpBdnvqjlbCDDLxtfy fxZKuuWWtShxsjX1iNbwaJ9caLO5xNGc3rvsyws8+iyM4i+4v0tJPSOTmKaJwhsYpa3a uHqg== 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=Dl5IYIZsM+xCsV4Ecpy9SUMpLQO9Iofc7JQPlPyzfk4=; b=RCp/JFYYg4Nx2pdD3dre1P0xlFQDyvxbJnnUymqGPJmRqEMrQqQKoNY2uSH/KkVTsi mUd3HL7Vz80QxpslCDrb37mR2PdpCUCeQ6pGej9T2m6brtQtXXK2nA7FE6lIM8cZpFZo WhC5VBW02PN+aDWI8QBNwiCiH/35oogMwNlx0cQG0L21nyTBj9JZGpt0I4cuK88g0Yfq OHbIkh9FpP3ORTY2veylILRsjyjWLChS95jPH5ZyF19zZkjfO12u//wiyq5A59JPxUpE Eh5cVVNJm0qDHymiVcBBymmPp5Vh5SJFQ4pA0b0SRfircKVxOL/PVZy5qVHLar1oh+tI W0/A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=DryjMEKr; 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 t9sor7834371ljc.45.2020.04.14.09.14.38 for (Google Transport Security); Tue, 14 Apr 2020 09:14:38 -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=DryjMEKr; 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=Dl5IYIZsM+xCsV4Ecpy9SUMpLQO9Iofc7JQPlPyzfk4=; b=DryjMEKrVO5cGSgi2YFVMImFkP1YSPCxmWdaNk+r4GvhQkI/mnECJV5s3T9HjkHZlG bJZPSKCUL9mZno5IxN3xnEZhzAks9v4jyto1e6ZQos13mqoLpDdSTZbpixnpdo8QU99v O7HFKT6wTQFvuv9CrIONrD5U+5KNUAP+tLexQyZfqrR3GgC0PN2YUn0ho4cmf6O9Cabe uiNuknLBHu1mgjFhwwGYWppr/vwlgxpBKbuKoGiKP51hoo3gOycSfrD3yrSmETTIv/Zu moyijH48Y0Hkhh53qyoRYZjZv6GE10R240TStiZ4mUfcxTZMctCBRgMUje93aoxMsU90 b7Aw== 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=Dl5IYIZsM+xCsV4Ecpy9SUMpLQO9Iofc7JQPlPyzfk4=; b=Wjk7nhsJfJvn86e1MUhE0Eggr6Xpm/V26lP6hH8Hedh2s1K3nvfpmsfV0uKFmwXDwv 0Cl3JLwl7uabA2/xVog8rJN4MpeA8PSchmD36t84mW8iWY938oHCSRkSsTGISxccdJRO twtmytmcDOYmC7YzzAS8jdQxIebfM90sx2YfJdQz//mrrDeg0kpqq4/qu+o6i8jElUrG oQQijrH4fC4o7xIlOZyIwnLO/MF5Z2uQe2QUdVt5EwIA4tdOcq5cj9kiiuF68t614d3s jdzyhVChebBVKK8meys1uS1dEEG5/cpxGlYuz1oNjb6Iri81+MDujEO4zixJp9/b5fiH xjIg== X-Gm-Message-State: AGi0PuabIjblk13pkklqASDPHYxw4frW+fVWql++7/k4AhQheIKICZ5F eO4pwZadX1Cs4sJjZqCCAV0xd7Xr X-Google-Smtp-Source: APiQypICI5S6iE4gdXMXAr+FOW4UXprBZW6+RBHUTF9xmN/eKtOI8iHHcHKeYxC0pVba8L5j8x8u0Q== X-Received: by 2002:a2e:b8c7:: with SMTP id s7mr582589ljp.212.1586880878482; Tue, 14 Apr 2020 09:14:38 -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.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Apr 2020 09:14:37 -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 12/19] mmc: sdricoh_cs: Throttle polling rate for data transfers Date: Tue, 14 Apr 2020 18:14:06 +0200 Message-Id: <20200414161413.3036-13-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 Rather than to poll in a busy-loop, let's convert into using readl_poll_timeout() and insert a small delay between each polling attempts. In particular, this avoids hogging the CPU. Additionally, to convert to readl_poll_timeout() we also need to switch from using a specific number of polling attempts, into a specific timeout in us instead. The previous 100000 attempts, is translated into a total timeout of total 1s, as that seemed like reasonable value to pick. Cc: Sascha Sommer Signed-off-by: Ulf Hansson --- drivers/mmc/host/sdricoh_cs.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) -- 2.20.1 diff --git a/drivers/mmc/host/sdricoh_cs.c b/drivers/mmc/host/sdricoh_cs.c index 97ef7d71375a..7e407fb6dab8 100644 --- a/drivers/mmc/host/sdricoh_cs.c +++ b/drivers/mmc/host/sdricoh_cs.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include @@ -59,7 +60,7 @@ static unsigned int switchlocked; /* timeouts */ #define CMD_TIMEOUT 100000 -#define TRANSFER_TIMEOUT 100000 +#define SDRICOH_DATA_TIMEOUT_US 1000000 /* list of supported pcmcia devices */ static const struct pcmcia_device_id pcmcia_ids[] = { @@ -123,21 +124,23 @@ static inline unsigned int sdricoh_readb(struct sdricoh_host *host, return value; } +static bool sdricoh_status_ok(struct sdricoh_host *host, unsigned int status, + unsigned int wanted) +{ + sdricoh_writel(host, R2E4_STATUS_RESP, status); + return status & wanted; +} + static int sdricoh_query_status(struct sdricoh_host *host, unsigned int wanted) { - unsigned int loop; + int ret; unsigned int status = 0; - unsigned int timeout = TRANSFER_TIMEOUT; struct device *dev = host->dev; - for (loop = 0; loop < timeout; loop++) { - status = sdricoh_readl(host, R21C_STATUS); - sdricoh_writel(host, R2E4_STATUS_RESP, status); - if (status & wanted) - break; - } - - if (loop == timeout) { + ret = readl_poll_timeout(host->iobase + R21C_STATUS, status, + sdricoh_status_ok(host, status, wanted), + 32, SDRICOH_DATA_TIMEOUT_US); + if (ret) { dev_err(dev, "query_status: timeout waiting for %x\n", wanted); return -ETIMEDOUT; } From patchwork Tue Apr 14 16:14:07 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulf Hansson X-Patchwork-Id: 185415 Delivered-To: patches@linaro.org Received: by 2002:a92:3d9a:0:0:0:0:0 with SMTP id k26csp1601806ilf; Tue, 14 Apr 2020 09:14:40 -0700 (PDT) X-Received: by 2002:a2e:854e:: with SMTP id u14mr542329ljj.182.1586880880488; Tue, 14 Apr 2020 09:14:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586880880; cv=none; d=google.com; s=arc-20160816; b=k0NebV58OZd3aKa6zjxRkvkcctZCR/MDjcfWETx268qfRyN/xDIpAzbVXONsuiL66j Wzs8QZZiyEO6SjMI4JnCJZAPOsGpnby0GvjBIZEVGOrlUTJQwQ9Ff+966/c6gzmUQrM7 fdAatlFVIIvPm5qufEvKvTau8Mp6sLek0d3T8lza2ABIX4Elykmj5LjN5SEH7bEobvkA +RAfTI1S1v+lrorWmLalg0CPyBQJ18R/uV1TzNTPAQoaoHw9onQoDcV9gaZRaDIBeCr9 1c6wqqK2fhxU/AaDiOMWcNb1iMkL1C4grKPMj0ay9U3SGZCEy6LiIP35n7H9KqfKA9GG Xn6A== 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=2fc7WtOqZOvMpJU85RcRGqqZ+8XJc5IQ4CJNIRP5fnM=; b=AHxG31bOY/tA/qzIB60H9ysBQDBCPS2i+fSlgYA5yjGV+En0SuebC7++gG/sHl9gCj gb2E2ZG+/USeGxOfsmvAm4em2D018B3l7uWg2UfChHKzPYIU/ANniT5XUO1yYlO5XE6N 4pnbKKwVAKBoYCsLHmDJZJhF9VlD84pCHN3q3e4m3tACEBNjw0G8+j/gjIAwfY4kfskT Qj+FPv/vJvmvxG2ZwJ3B+NcJ+gNFSKdqZdL2rE9b0L9ED1PYqVvVgIG4W+f7Hkovd++S 9JRCSHN8opzdXVo50q59wkQXYauqVXTTMIEkvjra5JkLW4Koh0N0NMzzwBgY/Ven5imQ PV8Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=pOF2huuq; 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 c5sor7994994ljk.42.2020.04.14.09.14.40 for (Google Transport Security); Tue, 14 Apr 2020 09:14:40 -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=pOF2huuq; 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=2fc7WtOqZOvMpJU85RcRGqqZ+8XJc5IQ4CJNIRP5fnM=; b=pOF2huuqut38BoNJgj0iOYHBXyCNVmoo9Yvh5FawG3zltJ7ZPfJZswslJFAnENYA7I K77MbbC9Gi1SC5G5YVdIRTlOr2zirST1v410eFUzxYy17hn1x2HqOHhbjwVGjJR0Yqbk hBTyl3BG4QEEkY2qRK+s0uubn2UtmOXJt2Q2sTNOSgCs3QmyuwYEfP70KFEDyJ1Wlowy ojbQWIDSi8aa2W7HCCo7Ev0yE4FkG8iQ/+l3jWNhSKoezJ2t2IQ8cwQ7zoMpChk8JnVj CIt8FqrJU+d4afqIhJQBMtlycUzfc2gIuHm389R2Z4N30MUPXMIAACffm+w+4mKJVDcF oMSQ== 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=2fc7WtOqZOvMpJU85RcRGqqZ+8XJc5IQ4CJNIRP5fnM=; b=S4wjApv7RTWLZ6GFIO6CeuOcc0jn8Go/j1WI7DVNUudRxIOQfZbMqY7YkO18E0cSYF /7Oyq7jnRjGqjx7Feh8V7418qbBGpTfpgeUIYOJVPXGtbWD0zKrYAk1E4ngoEs9MEBWs LLc8iuzRv+e/rqniP39dvdiBCoGQvrrcQdjVqVL5B9d5AF+bBHEOJr5jNh4JcrodDUO7 50vkiROBl3STv4OfniOkcp/sQon480ZjN12gBJyRUm3Gn9qLcly7QaTGcH3aGhYohOXf pUel0xVXz2A1YaHrx8nH3jSsUCzYGgacgXEwcfWJZEUnt/7TVX9Y/EhkcYrP6AoZgZyJ r2iw== X-Gm-Message-State: AGi0PuZm2tLYtmOcifrsL+D8XpgUx8JcQ7afmhwC4lyUgj6H1FkZpEXZ Xc/2dCh7V6OtW39GpRUMQt4VwnFo X-Google-Smtp-Source: APiQypLAkI1rn94043/JUBbLE/tcZ4krtmAWvBc1ranLU7T14jnbHyK/ZMTiWUw5X6G6bsDXUS/mPg== X-Received: by 2002:a2e:a584:: with SMTP id m4mr573350ljp.194.1586880880086; Tue, 14 Apr 2020 09:14:40 -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.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Apr 2020 09:14:39 -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 13/19] mmc: sdricoh_cs: Throttle polling rate for commands Date: Tue, 14 Apr 2020 18:14:07 +0200 Message-Id: <20200414161413.3036-14-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 Rather than to poll in a busy-loop, let's convert into using readl_poll_timeout() and insert a small delay between each polling attempts. In particular, this avoids hogging the CPU. Additionally, to convert to readl_poll_timeout() we also need to switch from using a specific number of polling attempts, into a specific timeout in us instead. The previous 100000 attempts, is translated into a total timeout of total 1s, as that seemed like reasonable value to pick. Cc: Sascha Sommer Signed-off-by: Ulf Hansson --- drivers/mmc/host/sdricoh_cs.c | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) -- 2.20.1 diff --git a/drivers/mmc/host/sdricoh_cs.c b/drivers/mmc/host/sdricoh_cs.c index 7e407fb6dab8..d7a191f14337 100644 --- a/drivers/mmc/host/sdricoh_cs.c +++ b/drivers/mmc/host/sdricoh_cs.c @@ -59,7 +59,7 @@ static unsigned int switchlocked; #define STATUS_BUSY 0x40000000 /* timeouts */ -#define CMD_TIMEOUT 100000 +#define SDRICOH_CMD_TIMEOUT_US 1000000 #define SDRICOH_DATA_TIMEOUT_US 1000000 /* list of supported pcmcia devices */ @@ -157,8 +157,7 @@ static int sdricoh_query_status(struct sdricoh_host *host, unsigned int wanted) static int sdricoh_mmc_cmd(struct sdricoh_host *host, struct mmc_command *cmd) { unsigned int status; - int result = 0; - unsigned int loop = 0; + int ret; unsigned char opcode = cmd->opcode; /* reset status reg? */ @@ -174,24 +173,23 @@ static int sdricoh_mmc_cmd(struct sdricoh_host *host, struct mmc_command *cmd) /* fill parameters */ sdricoh_writel(host, R204_CMD_ARG, cmd->arg); sdricoh_writel(host, R200_CMD, (0x10000 << 8) | opcode); + /* wait for command completion */ - if (opcode) { - for (loop = 0; loop < CMD_TIMEOUT; loop++) { - status = sdricoh_readl(host, R21C_STATUS); - sdricoh_writel(host, R2E4_STATUS_RESP, status); - if (status & STATUS_CMD_FINISHED) - break; - } - /* don't check for timeout in the loop it is not always - reset correctly - */ - if (loop == CMD_TIMEOUT || status & STATUS_CMD_TIMEOUT) - result = -ETIMEDOUT; + if (!opcode) + return 0; - } + ret = readl_poll_timeout(host->iobase + R21C_STATUS, status, + sdricoh_status_ok(host, status, STATUS_CMD_FINISHED), + 32, SDRICOH_CMD_TIMEOUT_US); - return result; + /* + * Don't check for timeout status in the loop, as it's not always reset + * correctly. + */ + if (ret || status & STATUS_CMD_TIMEOUT) + return -ETIMEDOUT; + return 0; } static int sdricoh_reset(struct sdricoh_host *host) From patchwork Tue Apr 14 16:14:08 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulf Hansson X-Patchwork-Id: 185416 Delivered-To: patches@linaro.org Received: by 2002:a92:3d9a:0:0:0:0:0 with SMTP id k26csp1601859ilf; Tue, 14 Apr 2020 09:14:42 -0700 (PDT) X-Received: by 2002:ac2:5e65:: with SMTP id a5mr323204lfr.189.1586880882321; Tue, 14 Apr 2020 09:14:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586880882; cv=none; d=google.com; s=arc-20160816; b=lk2HCMdqI6soPdWoezOQjBFks2+TYePhevfBdKmXpJl2WtkPD1aqSwpAsyklxkI48z fhlCg5zw2fTK3vLvp8IXXvFWeeXt/eLl+nVoUaYh+DHlWNt0ZegvIruKbumjT50uP85g DcU/Ypdwu9UtcWoxxtj7C2pHYGhsnWfJTxhnFU/zh9+2c4KEqsAqUOjOIBnW1pSHCj+K usDfxCpiXvANYRVTlSjTpY157G/KzU02dmx4Zq7gCYOnGeAdL+mJS9izFP2vOTy11q2i N2svzaR2/54pWZGJlUGtztI3efSTDC+ykuUDcOr/FQ47af/brUkgSKoJG/pf47wohSSq 3Khg== 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=NAYTGOzmF1yJPLoKf5SgLIcN0uv0T4GhbNXd2UBLOr8=; b=xi9DlWQK8WJyT82q80EDPhqBGP/p8AbslI116iwzvW+5xaz1eeKtDb+1N+iK71fdU9 7xqd/ndgfFIt9scTKoUR7n+fNRbSp0Pb4Oq0A8b7lxNnkvGj+F7axt6ANDhC0N8tUFYN kpW3Dwg9qiuV3v1XmpeoufVq+KjMhyReHY1nkDOrycofSgkb/QxhBlplHnh4MdZrVCI2 A8cFiidGpoo0XjgKDCq4sEBwvQum/lS1S1D9FHE83oaaT3fKCeebOrruMG8Vej76/CWF 3j4Jdy7Ushk4u5tVVAdTx/UuZemfArGVi+UHx4AqDiishCHzVpFzjVIFlKggwHlHz8fb kM3w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Gfl+HsJW; 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 t206sor4068437lff.8.2020.04.14.09.14.42 for (Google Transport Security); Tue, 14 Apr 2020 09:14:42 -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=Gfl+HsJW; 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=NAYTGOzmF1yJPLoKf5SgLIcN0uv0T4GhbNXd2UBLOr8=; b=Gfl+HsJWMnWxD/gVNOZTbUdrOLFGtdIuGd3A8G7HoKyhcEA2BIiVTchOnmhPA2whJS bUecBLlWxzcifZpDbNPwUR8K2vocMXWcsRWSNRZ5z4iPoq8DPJpFIbPcaoBFW5Pg2gum awSIam4Mk5yBSkR9AlMJxjOtvO3CUdx6CE+KURe7wvfGbaP6ILwTO+aBLLP5+Njk/HBQ d5L0x5hq/mwv96kzvHWeBvRISzLaCyk8rKXCwGo0qx/un7Std0fkZcHA6wtDYA0pX0ty vDz+5uByI/OkDCWwo/1sltsZG8dLoi4o7LQjDIVGHyRQWcRs2UebcdC/maA4HmpuMxBE fS5A== 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=NAYTGOzmF1yJPLoKf5SgLIcN0uv0T4GhbNXd2UBLOr8=; b=a//92ssNsdXzUqUaVXFNLPCEOA1FtKwZFYmmkwWK6Gdrys1AjmTwPJt1nqrO9pNA3I YMhbSxZERTos6mE7ru6IEqNmbjKh48g7qBbruojbVCI9pDZ8k652kx4eH8/lnzR6kCiB NjrXHAyA0xcGSkoUBBEUs9QJrzrXK/aXSHDTUOyraju5kZHTh9w/L8jPyBJHDiRWM5qh OYwceXdrcBfpOucwzmPf5INqo7r0AwzTr0kdv0hGzqQHkox1UOeAq7VKehEY7kS0YdVy OeDZ0JnzmywPDGb5gqLuiloKhPLLLzazeW/KsK0FyKBmQ8qxPGrtsZ/+J0JxVv+uuBl7 0l7g== X-Gm-Message-State: AGi0PuYdQD9XM/lR0f/JTaaETMEoFHcIj4cQINSg5ZcVaCSkMaqcwiNB eyZ/lRZdH6pgen3bHVPavt7cIjuj X-Google-Smtp-Source: APiQypKUcnnytIGM2wn/odlVBvvnKz1gy03LB0EZt3MMj6rUtiVm4dzoyP886GmhOPzQBrhDOmbqtw== X-Received: by 2002:a05:6512:1046:: with SMTP id c6mr335101lfb.115.1586880881907; Tue, 14 Apr 2020 09:14:41 -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.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Apr 2020 09:14:40 -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 14/19] mmc: sdricoh_cs: Respect the cmd->busy_timeout from the mmc core Date: Tue, 14 Apr 2020 18:14:08 +0200 Message-Id: <20200414161413.3036-15-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 polling timeout for all commands is a bit problematic. For some commands it means waiting longer than needed for the polling to be aborted, 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. Note that, even if the sdricoh_cs driver may currently not support HW busy detection on DAT0, some comments in the code refer to that the HW may support it. Therefore, it seems better to be proactive in this case. Cc: Sascha Sommer Signed-off-by: Ulf Hansson --- drivers/mmc/host/sdricoh_cs.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) -- 2.20.1 diff --git a/drivers/mmc/host/sdricoh_cs.c b/drivers/mmc/host/sdricoh_cs.c index d7a191f14337..dfd395ff7c3e 100644 --- a/drivers/mmc/host/sdricoh_cs.c +++ b/drivers/mmc/host/sdricoh_cs.c @@ -156,7 +156,7 @@ static int sdricoh_query_status(struct sdricoh_host *host, unsigned int wanted) static int sdricoh_mmc_cmd(struct sdricoh_host *host, struct mmc_command *cmd) { - unsigned int status; + unsigned int status, timeout_us; int ret; unsigned char opcode = cmd->opcode; @@ -178,9 +178,12 @@ static int sdricoh_mmc_cmd(struct sdricoh_host *host, struct mmc_command *cmd) if (!opcode) return 0; + timeout_us = cmd->busy_timeout ? cmd->busy_timeout * 1000 : + SDRICOH_CMD_TIMEOUT_US; + ret = readl_poll_timeout(host->iobase + R21C_STATUS, status, sdricoh_status_ok(host, status, STATUS_CMD_FINISHED), - 32, SDRICOH_CMD_TIMEOUT_US); + 32, timeout_us); /* * Don't check for timeout status in the loop, as it's not always reset From patchwork Tue Apr 14 16:14:09 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulf Hansson X-Patchwork-Id: 185417 Delivered-To: patches@linaro.org Received: by 2002:a92:3d9a:0:0:0:0:0 with SMTP id k26csp1601897ilf; Tue, 14 Apr 2020 09:14:44 -0700 (PDT) X-Received: by 2002:a2e:9906:: with SMTP id v6mr523290lji.21.1586880884267; Tue, 14 Apr 2020 09:14:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586880884; cv=none; d=google.com; s=arc-20160816; b=kT47oBesMcVpTTZ/i5quuo0H4Y+Q6MHxX06v4eOQAaLtxuFSwaAG3fSc9J/xAOI/oW 9NcDu9M9qmptLHpq6LXGjU+7wxjGrpmQe0kIc2PyaR1HlN+42mQswFlD+FOnhqw5/Isq kfUxuZKBZJ74aombvoUBb9Bn1YSeK05S8CV7JElR+xHNNwZ0DmX5H7Pwv3VoJWcplmNt ooQ3NNgFasarh021Bp0LDPTU8xKz5OHUUSRcebf0HZzyJdPSzCMVXGoB2BLS1NwdHXWX mQY7JkKhx8CGulqiUjnLuyHBFHVW4vwdQOH0HPnWxN+iNqQu7vQG/SC88mJequogZz0P yL5A== 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=/312L/upfEChd0s382iQNZQsylwgFpiUnUGKm/8Pqvw=; b=AvYwcwYVeNw7eKj3T5wFZuw/Ch3+NUBC9vltJzNYmjjuAW6NUJNfF4t+gNkkiNNW2z t6Qm/TpGGOouZe7tRcPo2V+zfm4zgXszMtCPqOYfOG9kUrB23jozdX8stPAHXUJO8P97 tkouFLYDXfeXAS0k1qu9kUy98QD9q6oj8rUD02/e651yCEhtILJnzhtg/+A9Ivqco6ZC 2GACWo6PFHPMLJlOwuPzd98S1pbzj2+Kp1e0wDvNGVz0sJDPgczF8ky/VZIXIhgUbhAg KXWqS8hLK1KmJEN/aLOB+x9Fv/mnnE6xEN8l/thieQCrHWClCWFu2eA/RGx+D9JRdhHE Yu6Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="ewtb/Sjv"; 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 s11sor7936461ljg.28.2020.04.14.09.14.44 for (Google Transport Security); Tue, 14 Apr 2020 09:14:44 -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="ewtb/Sjv"; 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=/312L/upfEChd0s382iQNZQsylwgFpiUnUGKm/8Pqvw=; b=ewtb/Sjv8qGxJkOLX8vFzllchdK+d63Agydpogc3xu9EWnW7sINf01LNLZr5F8lZ7m VKx/mY1H0STlDsoXdidmIqKXssqv59IO3BKPS7vPf8WeK/2LEoT/REqBM5zoPOK8KSx4 hKzh3bTWZ7G9jFv33mXoUF9O8eFD2SpEjbItujfK2lcvzT8XdjC3Zp+oC/owtYVLIhkd 8wSbxrI0cSuqD/hqScIH0hts1KqMvhcUSau+VTEZFQPZxTBGB1Trbce0a85Ghy4MNHgN poMPTZnQ/juiYaOjvLAKVzP1bn0QnZOUErsCG9jXqoHPzSsBeSa82hRjyem2wyIaptSS SafA== 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=/312L/upfEChd0s382iQNZQsylwgFpiUnUGKm/8Pqvw=; b=NWg+lerMoICnqTDcMxPQ83BLICS3mTvIiognA4rGmYBK/JPKqMREnG8zPrhCZjcOvz ScIXX7KDaHD0diKT4i/lgi44EYS885bajSOMyvFSbAl1HzMaCnnKVVe0KLFf05OT63V0 XlbbLzBPb3aoBDegyJEVDkxvt46bBbZZ/KqKQpDmqmo8oUXtptLh7KUwOKbNHo1lFTN/ Qi+Zpof8NGgGVLlJn5tQKZKgnjITWG11QV7kov/oCTYvzwG62XA9pzE4kmEPgZ4vNJ2i krHmgWx9HAt001R1vQ6pB6fNTq1RhpB+RNZ5TVmJqfp/IyR5uLRwAgZKvRGT+ZUpso9a IUUQ== X-Gm-Message-State: AGi0PuaWb0xVwx8O0qKMS25C+kKNawhmquysVHDAD9yWDPkk3Z96FTHw O5kJq2sQ8/+Y54n/ziYu5BWLgSLH X-Google-Smtp-Source: APiQypK+AncAZzjPieY0AwSjLMdIGFpdociGqq4Q/Jmw54Oy3dhS1HYlzAy2E9ByK9t60IfuE7yAKQ== X-Received: by 2002:a05:651c:48a:: with SMTP id s10mr537009ljc.226.1586880883857; Tue, 14 Apr 2020 09:14:43 -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.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Apr 2020 09:14:42 -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 15/19] mmc: tifm_sd: Inform the mmc core about the maximum busy timeout Date: Tue, 14 Apr 2020 18:14:09 +0200 Message-Id: <20200414161413.3036-16-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 Some commands uses R1B responses, which means the card may assert the DAT0 line to signal busy for a period of time, after it has received the command. The mmc core normally specifies the busy period for the command in the cmd->busy_timeout. Ideally the driver should respect it, but that requires quite some update of the code, so let's defer that to someone with the HW at hand. Instead, let's inform the mmc core about the maximum supported busy timeout in ->max_busy_timeout during ->probe(). This value corresponds to the fixed 1s timeout used by tifm_sd. In this way, we let the mmc core validate the needed timeout, which may lead to that it converts from a R1B into a R1 response and then use CMD13 to poll for busy completion. In other words, this change enables support for commands with longer busy periods than 1s, like erase (CMD38) for example. Cc: Alex Dubov Signed-off-by: Ulf Hansson --- drivers/mmc/host/tifm_sd.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) -- 2.20.1 diff --git a/drivers/mmc/host/tifm_sd.c b/drivers/mmc/host/tifm_sd.c index 54271b92ee59..5987656e0474 100644 --- a/drivers/mmc/host/tifm_sd.c +++ b/drivers/mmc/host/tifm_sd.c @@ -73,6 +73,8 @@ module_param(fixed_timeout, bool, 0644); #define TIFM_MMCSD_MAX_BLOCK_SIZE 0x0800UL +#define TIFM_MMCSD_REQ_TIMEOUT_MS 1000 + enum { CMD_READY = 0x0001, FIFO_READY = 0x0002, @@ -959,7 +961,12 @@ static int tifm_sd_probe(struct tifm_dev *sock) host = mmc_priv(mmc); tifm_set_drvdata(sock, mmc); host->dev = sock; - host->timeout_jiffies = msecs_to_jiffies(1000); + host->timeout_jiffies = msecs_to_jiffies(TIFM_MMCSD_REQ_TIMEOUT_MS); + /* + * We use a fixed request timeout of 1s, hence inform the core about it. + * A future improvement should instead respect the cmd->busy_timeout. + */ + mmc->max_busy_timeout = TIFM_MMCSD_REQ_TIMEOUT_MS; tasklet_init(&host->finish_tasklet, tifm_sd_end_cmd, (unsigned long)host); 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; From patchwork Tue Apr 14 16:14:11 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Ulf Hansson X-Patchwork-Id: 185419 Delivered-To: patches@linaro.org Received: by 2002:a92:3d9a:0:0:0:0:0 with SMTP id k26csp1601948ilf; Tue, 14 Apr 2020 09:14:47 -0700 (PDT) X-Received: by 2002:a2e:8511:: with SMTP id j17mr571952lji.292.1586880887723; Tue, 14 Apr 2020 09:14:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586880887; cv=none; d=google.com; s=arc-20160816; b=viH4EewV+PDm32EqZwCXt9tkaA615sEad0frNI28ubau3APk2qbbtfMLAUfrCXQoNc f01rBoVj4p+0t1fae6u4te9fBykmCB1ramDiAh55zFiIobVHiAx1j/vX6hJLtiSQHRGG JQGgoK2rdhscrcH6waBStKHfa1ubNvbaPnOGspi1krXBfqBuWN0VdgrX52gMfT2hWKK7 QCHAx3grXq8oxxJTB4bcXyojPJjgCrFmpuEl+tX8PmV/2Wo1wsa82Ks2pfoCd+GYJTk8 xy/UV8GNmA0YMreKlSuV7blJ7+zvXHZvJXt4lprtA5Tfd0E77ORJRA3oGsR5W7IS6zC2 2UsQ== 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=fV7yLQCho5m6+2k47darI60VgKdimEIQlNdusOHvHrI=; b=G2B0y3SaKP8aV0VuAKCGkkHgyecEO5bHYKq3jciM6DA6CL9sv793gTeoBWGg2os3tE W0maSIfHpumHLFT5x+5hvFgJBsZor8dcMV4AGLQoalOgxxZSMuQtrEWgZKLq4jFvtO6n iKr8d3DEeOptk4PBCEl4hHdNzTLoOHOJy9eE5tFpaNUq0e7z4WIwnxR5T4y4ps1HHYh4 Hve+2Vjtd+zNR8JcHHePilcTuYH3l3LmujSZJWcfgX1N2L14wikU8BjkS8QjCG3ovix0 L3WRS6slrUe9tWckRSf6RObyJQl3X+yZuduwio8AeW7cEp0wzyd8WhAaB9buOJ1Zn9Vb 0Ohg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="F3rQk/4Z"; 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 y205sor4150311lfc.52.2020.04.14.09.14.47 for (Google Transport Security); Tue, 14 Apr 2020 09:14:47 -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="F3rQk/4Z"; 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=fV7yLQCho5m6+2k47darI60VgKdimEIQlNdusOHvHrI=; b=F3rQk/4Z//sOg6fzVR2r3vntsIFgxeadDpOTTo0em3oUxUnS2xswqmPCK1NziVLsdm g7MbLjEwesW79tQ/fqcyYUi87aZCcSGCNff2Gt9+bh4saviZsOfOARZKLBHkodig+xaf amCWUOxEnVwrTX5NxrCVc0xjQZXlENrPinN0kbShXtk83w9yddamVgXUFFK9hPqpVuOC Zmy8f3g1owvRV8RQe9DE48mfnTrrmmcz/KzsBgs9xZuqbqCnE9oMOJbalSZ1tVdRtOtn jJRidQakHPpD6C5dZrhKY8uQeO0oNeBD4qMXG2kWdvGjTb0J54jcFXjq4BhdCjGFsRYv 3yMA== 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=fV7yLQCho5m6+2k47darI60VgKdimEIQlNdusOHvHrI=; b=d50SkjCiUuIvvJYOiRtXrj4sWX1+1s4VQtCwJHqdYS1ZPYuFdyCO2pB6ReWO5xvc9+ gZjRTZtIMGurWqyUPw7EJYVQ11uZ8gSchv76IAvI/pzeICuH5jz/kfF6JlTzQz6m7m6k RDagPB6XZGbEdBBrTQmenHHGuorqWUgGbSBOyyB8BRTUwKfTxGh8OEiSkoxR8AfCiMQD FY+AkzKOFBUtOe2eTtA0s33TRipbWAoV6K2dGNn5eqqGt4pV/uCAI3QgzsTViTAe56e4 VG/N89OWaP9bG3Ww223gSPRG2O2yYM3H9sHGR4kE124HQXLnlopBEotV7cotkTmC2hNb yRdw== X-Gm-Message-State: AGi0PuYtEb3cLXCzZWvC305481HtCiGCS7R3bX+pzT4C48S7S0kEn8fl oBWyk6PtkUIDKSX9+jshD+Ueppj7 X-Google-Smtp-Source: APiQypIx3GuWzm2apEhzDNWzcBGMOHlPS4R60kqm/Gp8FkwUtC+CSX7LB9PF6MpLnCwT97E6W+xm7w== X-Received: by 2002:a05:6512:3081:: with SMTP id z1mr359841lfd.102.1586880887299; Tue, 14 Apr 2020 09:14:47 -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.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Apr 2020 09:14:46 -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 17/19] mmc: mmc_spi: Add/rename defines for timeouts Date: Tue, 14 Apr 2020 18:14:11 +0200 Message-Id: <20200414161413.3036-18-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 Clarify the use of r1b_timeout, by renaming it to MMC_SPI_R1B_TIMEOUT_MS and by dropping the corresponding confusing comment about it. Additionally, let's also add a new define, MMC_SPI_INIT_TIMEOUT_MS and use it during the initialization. Even if these two defines are given the same value, the split makes it easier to understand them. Cc: Jonathan Neuschäfer Cc: Linus Walleij Signed-off-by: Ulf Hansson --- drivers/mmc/host/mmc_spi.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) -- 2.20.1 diff --git a/drivers/mmc/host/mmc_spi.c b/drivers/mmc/host/mmc_spi.c index 951f76dc1ddd..5768fe9f8f6f 100644 --- a/drivers/mmc/host/mmc_spi.c +++ b/drivers/mmc/host/mmc_spi.c @@ -77,14 +77,8 @@ #define MMC_SPI_BLOCKSIZE 512 - -/* These fixed timeouts come from the latest SD specs, which say to ignore - * the CSD values. The R1B value is for card erase (e.g. the "I forgot the - * card's password" scenario); it's mostly applied to STOP_TRANSMISSION after - * reads which takes nowhere near that long. Older cards may be able to use - * shorter timeouts ... but why bother? - */ -#define r1b_timeout (HZ * 3) +#define MMC_SPI_R1B_TIMEOUT_MS 3000 +#define MMC_SPI_INIT_TIMEOUT_MS 3000 /* One of the critical speed parameters is the amount of data which may * be transferred in one command. If this value is too low, the SD card @@ -347,7 +341,8 @@ static int mmc_spi_response_get(struct mmc_spi_host *host, while (cp < end && *cp == 0) cp++; if (cp == end) - mmc_spi_wait_unbusy(host, r1b_timeout); + mmc_spi_wait_unbusy(host, + msecs_to_jiffies(MMC_SPI_R1B_TIMEOUT_MS)); break; /* SPI R2 == R1 + second status byte; SEND_STATUS @@ -1118,7 +1113,7 @@ static void mmc_spi_initsequence(struct mmc_spi_host *host) /* Try to be very sure any previous command has completed; * wait till not-busy, skip debris from any old commands. */ - mmc_spi_wait_unbusy(host, r1b_timeout); + mmc_spi_wait_unbusy(host, msecs_to_jiffies(MMC_SPI_INIT_TIMEOUT_MS)); mmc_spi_readbytes(host, 10); /* From patchwork Tue Apr 14 16:14:12 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Ulf Hansson X-Patchwork-Id: 185420 Delivered-To: patches@linaro.org Received: by 2002:a92:3d9a:0:0:0:0:0 with SMTP id k26csp1601979ilf; Tue, 14 Apr 2020 09:14:49 -0700 (PDT) X-Received: by 2002:a19:d84:: with SMTP id 126mr347266lfn.35.1586880889391; Tue, 14 Apr 2020 09:14:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586880889; cv=none; d=google.com; s=arc-20160816; b=M9f//zRDliESlK3u+QijjUMs5kVQrkz1oDoGBc+nGPaMwGtHBzOu5FBAo3H1+19Cy+ WwaIWtevaTgWywhd9PLK7/X37mENZRe2ZnBORps8x53oOOiX/6eawQ1Y3BcWl3q5rYkL N5tPOuB4f1zyqUDGyzv00zjgztglcIEEGu8c1A+B7wFu5vwP/Wa/0gZW8VlnukAIkdl4 KgufPkxnfihp/WrZ7ft8cq11pruZhMAe20cJGka10XnJG0Q1ClfoLWKTjeWFpERUjXh9 DbxAs/lmSJ++UDRGjTAZHpwsNIAe5RDi+lIv4A4zMjQ7kSDDpjCiVbVG5FS6ok1INUD+ O+lg== 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=zv/IOLWsE6pD23wlMRMWXhfDzTXImiUoTlOV8wP43+4=; b=VmJBVwUQOjxTq2cNmCWoup4RJ01B1e83zczUxeSgZr0Mp57iNUoiB2qeJcqXX28hR5 B7ukUePEehZ+p+VJkMegEB84WQeDv5pe/g/0shxlID8nQnN85TT4pgH5IWv5UYy0sxOG 2+Lz0mvmYwxVbQZnvdT+fM60cE9GvjtANuXdhBj5VZ6rtOTU4Tucd9H6jHLD1pHjKbmL XqLVgAJkVsVCqEuuEOr4UkqmqQaDTWfX8/59v9D5C/FPBYbdERdnZ70N+gV+qL/ptKbY awQA6Lb4VQokrPyp38gR6GbIh1v0jS/kKsV/vQrganCO4BTv+7gMGPOCIVWzyDn0jom8 KqSQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=UHJb2dW0; 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 z20sor8064100lji.27.2020.04.14.09.14.49 for (Google Transport Security); Tue, 14 Apr 2020 09:14:49 -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=UHJb2dW0; 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=zv/IOLWsE6pD23wlMRMWXhfDzTXImiUoTlOV8wP43+4=; b=UHJb2dW0l0J4LUncRFQvg4oVtCEMMEfdDnMzVHl4Wb88nTNDhPXS4ozS1vm9XGcZKt IfvNexRyTE2Spm1kKol/wWU5pDiYw4m2kvaJwON0+Cn+sYc9eZr4ZXmAwEI4s7BQT5Xs n6R34d2p7c4RmwmKSkxWQPtAhfZYxDm4JcKywmEP53UH7c4snGkwu5yip74qUrGOgCaC ymVnyf1IjMOoOQ/3XLz1JxXM7EYgZp6TGmNPcOFkWCEGOQdOwTEynckvodv06Llu7uyL 3ShoitgMKzNxKKUb9Wn1670P/aBKI/3rPTLthFCyPv5fY7yLYrjkMvbCPBH94Pyh0fdS nPPg== 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=zv/IOLWsE6pD23wlMRMWXhfDzTXImiUoTlOV8wP43+4=; b=opRSD2Y/MJs7Y7PdY3BGXT3691Jkn/ZjmbHrtkJU1mC7oBtKm/7D9zX5nv/77J/KV7 6izAGiQuVAX+q0zjnkdMaV1WOVy2QaSUmHBhUqeh0WUYMJvzIVTl1tCA88cYmNrf2ztn b0k9bwiuG5mJRGEf1BNkMqXgnVzWfaFdVgGlcvsckgwaxdHIYCwma8gXmeq06rm+pfNa ysUXi143w77vHt9ZcZhC+OSk/wBV8A7g7zcbAGL8lkr5esrr1OreYEvM43eJPHTn2zht A/yOSZ0mCRWYlFZeZO32Pm9G6c/meGFJWv5n4ySGzEd48nzxGzeNSTwgO6nFWOszjzoP p6IQ== X-Gm-Message-State: AGi0PuZGYkCFRR+AnmfVnGUpordOo2cgwyBXg2PlKsjsi9bYCPYlXT04 psXKE2zWORM6a+lHh8lzm0T0MwFt X-Google-Smtp-Source: APiQypLsgjIE3PF75iBeDOhwcxLS1kxYncfn8xlwnEfL4bMgnXmWOTMFNs0FTXbcxwkDIQPy+TzD7g== X-Received: by 2002:a2e:9813:: with SMTP id a19mr510612ljj.215.1586880889001; Tue, 14 Apr 2020 09:14:49 -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.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Apr 2020 09:14:48 -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 18/19] mmc: mmc_spi: Respect the cmd->busy_timeout from the mmc core Date: Tue, 14 Apr 2020 18:14:12 +0200 Message-Id: <20200414161413.3036-19-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 3s polling timeout for all commands with R1B responses is a bit problematic. For some commands it means waiting longer than needed for the polling to be aborted, which may not a big issue, but still. For other commands, like for an erase (CMD38), may require longer timeouts than 3s. 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: Jonathan Neuschäfer Cc: Linus Walleij Signed-off-by: Ulf Hansson --- drivers/mmc/host/mmc_spi.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) -- 2.20.1 diff --git a/drivers/mmc/host/mmc_spi.c b/drivers/mmc/host/mmc_spi.c index 5768fe9f8f6f..39bb1e30c2d7 100644 --- a/drivers/mmc/host/mmc_spi.c +++ b/drivers/mmc/host/mmc_spi.c @@ -242,6 +242,7 @@ static char *maptype(struct mmc_command *cmd) static int mmc_spi_response_get(struct mmc_spi_host *host, struct mmc_command *cmd, int cs_on) { + unsigned long timeout_ms; u8 *cp = host->data->status; u8 *end = cp + host->t.len; int value = 0; @@ -340,9 +341,11 @@ static int mmc_spi_response_get(struct mmc_spi_host *host, /* maybe we read all the busy tokens already */ while (cp < end && *cp == 0) cp++; - if (cp == end) - mmc_spi_wait_unbusy(host, - msecs_to_jiffies(MMC_SPI_R1B_TIMEOUT_MS)); + if (cp == end) { + timeout_ms = cmd->busy_timeout ? cmd->busy_timeout : + MMC_SPI_R1B_TIMEOUT_MS; + mmc_spi_wait_unbusy(host, msecs_to_jiffies(timeout_ms)); + } break; /* SPI R2 == R1 + second status byte; SEND_STATUS From patchwork Tue Apr 14 16:14:13 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulf Hansson X-Patchwork-Id: 185421 Delivered-To: patches@linaro.org Received: by 2002:a92:3d9a:0:0:0:0:0 with SMTP id k26csp1602013ilf; Tue, 14 Apr 2020 09:14:51 -0700 (PDT) X-Received: by 2002:a05:651c:554:: with SMTP id q20mr610585ljp.104.1586880891291; Tue, 14 Apr 2020 09:14:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586880891; cv=none; d=google.com; s=arc-20160816; b=a92oFoooME41h138pR05Upf3wqdv9FZdXd8a5p4plPmNB6n62VvxOna8tBztFQPn2W CoEgsm4xQm1Z+7sYueTOZwolhl6gRQAYD6jDErpdzYalNC7I7MkZeqfN40AmIV9wHYZx EPyyXgZcG9Ji14Dsl03guBP01L5OxFOvxUrivNUPPmZr8XOa+BpfUHIiY1kmnR58SaQm O3joH2pg+6tUtrnXXf+yCWOmX59ZFYhbjwvCkFa7FhSb4rin/vbqFMQCAkxIjmYOLtTM rtyoeNerml4NjJjH2CFtXDrPUp7Wi5SRg5WlOun00HGSFmyJuWqEfw0X9YahjJ0M4bWI 1+fw== 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=Bpyge4k8Iz/MW6vpPqOyXsMz3UoNxf4ygGN/PrDN23s=; b=sq3wAZjhkk7Hlfmn69j++O8m37N8ydL3WrRzO8XeCvyQSuRqZafCXgm3UU0sFOhph2 XxRfyujYYRnItoLPDom0o13U3pQSKOtNeAdZik5zeXOKumjtYj2eNjr5L0DCzbjS1N4k 1H8lsLxYnUauARzPP/nuyQQzP0RZmV6Obq6/SxR6yP/lAQ9lXHz7DDNPMxL6swr07ewj TjEGHgZavRH9afNAK/TlbqxYyaE9QtHqjswRgoWfHXcDuaY9QrFj4BizO4ruP1J98zCY PgGz1P5OYA1FpR1lmrIAqd2OdDi8OERnhNZdVvSiyinq1wUaoOPw8ROTUZxrmpPGZHTy H/pw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=m7tzsSdo; 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 b30sor4138207lfo.1.2020.04.14.09.14.51 for (Google Transport Security); Tue, 14 Apr 2020 09:14:51 -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=m7tzsSdo; 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=Bpyge4k8Iz/MW6vpPqOyXsMz3UoNxf4ygGN/PrDN23s=; b=m7tzsSdoqidUMOYYffWIVvNzzOkmdfg+BlltbgNDyDHYItaxuxu7vlYresXdqk6vQv D1vtkIKdiPxe0VmBocbrJb8+RR2jsB5/PR4o9cSrD0CBQ+Deo18au7HngD4aapz8uN5s wNrIqMOeMKLHkGPs6aTOR9HucmlEVNvLYIYwIWk+dcPCMXefe5E35RhttGIciUVbUY7R w0mJd6ufoGcywW0DjWwpcn1mICnTQ7g9bhZpqe8Uw6i+m7KAsSDOvfNer0KNkWMFmjxy Tz9cgFFhelwwDFL8Banrz9p9aK/Z7NLsgIRfpHDyQRvGg/VJqaFDWl9jXElVKKXXe6e4 36kQ== 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=Bpyge4k8Iz/MW6vpPqOyXsMz3UoNxf4ygGN/PrDN23s=; b=XX/RVqlEWO8FBgd8Wqa82e7Xy3+8dSm2fRsM8kzuh+H+ErtsitpyCXf5wG+Z6OEU9F 2vZnMF8iwxRrgkgvHeyk3X/VCpSZIxMlQQKYgGuZTt4sJmSgpyciuWP8ZoRBA2Ek6FLV 4jcjGefPQQza0RXAqaMR5ABz9ma/pjzCs5b2kaGJZZA9TG4eVcDYNjvaRluSvi6t8U5Y GgC0NBmlk6dCfw4cmRqwiK/GMeX0xf1WKahrjghejLG+ZOsa6n3rEGenk2lNYVUXIu+c 92Dm+1g2dUbRTeWjEsGCUlgCn08qNNx0qMfhmn4PwB6egconCHq076C2TI0tyWOiJvnd pCvg== X-Gm-Message-State: AGi0PuYxYJa/DqVm2RhM2S4hguKJTH39ePD9LT/CqLQnQLJeqlFZBaZr ylsEJyKVkdIAnDDGmaU2ewYwV7CA X-Google-Smtp-Source: APiQypKs1XralZ2xpuJEJsfyXQSt7ex/4mhrOaimKzrhLIPk2A27zZq8+qJo3Rovpcol1PZ3P4LfzQ== X-Received: by 2002:ac2:550e:: with SMTP id j14mr349553lfk.188.1586880890888; Tue, 14 Apr 2020 09:14:50 -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.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Apr 2020 09:14:50 -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 , greybus-dev@lists.linaro.org Subject: [PATCH 19/19] staging: greybus: sdio: Respect the cmd->busy_timeout from the mmc core Date: Tue, 14 Apr 2020 18:14:13 +0200 Message-Id: <20200414161413.3036-20-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 is a bit problematic. For some commands it means waiting longer than needed for the timeout 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: Rui Miguel Silva Cc: Johan Hovold Cc: Alex Elder Cc: Greg Kroah-Hartman Cc: greybus-dev@lists.linaro.org Signed-off-by: Ulf Hansson --- drivers/staging/greybus/sdio.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) -- 2.20.1 Acked-by: Greg Kroah-Hartman diff --git a/drivers/staging/greybus/sdio.c b/drivers/staging/greybus/sdio.c index 68c5718be827..c4b16bb5c1a4 100644 --- a/drivers/staging/greybus/sdio.c +++ b/drivers/staging/greybus/sdio.c @@ -411,6 +411,7 @@ static int gb_sdio_command(struct gb_sdio_host *host, struct mmc_command *cmd) struct gb_sdio_command_request request = {0}; struct gb_sdio_command_response response; struct mmc_data *data = host->mrq->data; + unsigned int timeout_ms; u8 cmd_flags; u8 cmd_type; int i; @@ -469,9 +470,12 @@ static int gb_sdio_command(struct gb_sdio_host *host, struct mmc_command *cmd) request.data_blksz = cpu_to_le16(data->blksz); } - ret = gb_operation_sync(host->connection, GB_SDIO_TYPE_COMMAND, - &request, sizeof(request), &response, - sizeof(response)); + timeout_ms = cmd->busy_timeout ? cmd->busy_timeout : + GB_OPERATION_TIMEOUT_DEFAULT; + + ret = gb_operation_sync_timeout(host->connection, GB_SDIO_TYPE_COMMAND, + &request, sizeof(request), &response, + sizeof(response), timeout_ms); if (ret < 0) goto out;