Received: by 2002:a05:6a10:2785:0:0:0:0 with SMTP id ia5csp2461141pxb; Mon, 11 Jan 2021 10:09:58 -0800 (PST) X-Google-Smtp-Source: ABdhPJzflR3WbEOn9xPy6attPRC+zbTFObCZHrRfZ9ccFM4w05LtQea5ifkjZaYxH/m6vUaIPGwg X-Received: by 2002:a17:907:2506:: with SMTP id y6mr483094ejl.53.1610388598361; Mon, 11 Jan 2021 10:09:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1610388598; cv=none; d=google.com; s=arc-20160816; b=jZuhLNL93XI0DhIP9f41b7D/lsVqololFUs2rVItaiM5xppDO7PQjvJ6SyrcZd4a0z GZ+Q7zyRx1a7Eum5zXpuGsVt7lQEPdW8HIiN0WgOqjKDS6K3WI/of9gXxKkAb0TWkXDo +QG3tTvy/taZWoTLjMgjFhx5Qb3iXT2S9W6LlZ5xL9C7l306golhK8U/3F2wrLdEx1l1 0nh0NDIYySRDmXokqpuh2VKeLjzJePw1onW3xFHxDW+nSlmGCCCCEvDqKIfzigzfvm4g HRTED9nkx4Cx4GCuHH62nE6nzIkhMAeJ7OW5US+2MI8bR002nr+xDpYU0YwG5Hrt8D/r bhNw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=XWiH05HuaGWdRbA9U5L//orrI8G7vM7uoQMJxI3AypY=; b=wiklQ9Tx708fVRbNkwDK2SD2yQajhSaeg43WtzOJvKAuMiHDPz+/uTJNNQZPCmh+Qs FL7i7GbV67L6NQxtk1ETE8NMc/OvEyAaNb+icCnnZ+lPxAeXkALVEFhjakglHVTou1wi fmfipigGPpaINdf/a67F8PfFA47xf1IdimXlFVIPYZPLHwpUmguGf7XQsA14+3DJWczg 2tiO2N+Xn1R+onEAFMMawJg+x6jAcB736Rjb4CD6D61oBvwHcDToVuTenGMQbz/Ksc6b vJw9cvA4eAS3gale6xcxiJgU8OcMaSVA5G04XwMg3GjkgqxBf2Yb5UNZyGQwbXUMJZWw cTjw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=UYbp94mG; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id o18si68791eje.528.2021.01.11.10.09.35; Mon, 11 Jan 2021 10:09:58 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=UYbp94mG; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2390184AbhAKSH5 (ORCPT + 99 others); Mon, 11 Jan 2021 13:07:57 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56462 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389925AbhAKSH4 (ORCPT ); Mon, 11 Jan 2021 13:07:56 -0500 Received: from mail-ua1-x92c.google.com (mail-ua1-x92c.google.com [IPv6:2607:f8b0:4864:20::92c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7DA8DC061795 for ; Mon, 11 Jan 2021 10:06:49 -0800 (PST) Received: by mail-ua1-x92c.google.com with SMTP id w7so112246uap.13 for ; Mon, 11 Jan 2021 10:06:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=XWiH05HuaGWdRbA9U5L//orrI8G7vM7uoQMJxI3AypY=; b=UYbp94mGeQYkBROkU3bvrAvpFFf4nVlbW5Vhlat17xqFjsNegXtz30bz3EI9akwZmg qZs7MPAYdHs7UmBcBbJStXA9ahnnX88PLO62wS0rXjaWrbbtZUy8uht8h8Ukjq7SR80T D5BCnKGKZ4Ewf/GlqkOpdlHEecDqwFG6MkKZfAnM+DZfgDe6b1B9bFwMEXYfFeZ4xPYw 4aaQ9hohj0w16piLZryWdDnnifPJ1uqeRDPWjdOES2tAFaGVZnSCTuMCPitzxu5LmHlU Y1sP0qBdAwNWKaGm22sif3vwaHmpl61avubzrlqLaHRFW288o9RHh4Klag5TnR2rLTGK 8XCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=XWiH05HuaGWdRbA9U5L//orrI8G7vM7uoQMJxI3AypY=; b=LI3+tnFSQZ/esD6GkAqTkuJwitkEau8O8ntHopcZMURnN4EqXHZniqIhPu8jC9jFhR 1Xhxc75kGn0uF6inQwBrpAbQhwmxNoQpoDItWvzacIFGQfAa+sPfneEe75YOOd+N0RlV vch0gnDIOFlKBaTdefe1acQYnz1uSKE85OJajoQM1ap5sKW4pimPAID7M01L2Y1XdyyU 57Z7F970jgdglDZtwwIGA/KMk6fNRfi7c8dIgUok3+M68c1yzRGRCkeKM8DRSqhI47qk VmcnqoKVdCPLBZ9EpZbk9ONwioxOSMZbFtLL7/2Q2NUFQM7SKnmkanc6h1vZTFePsjqN PifQ== X-Gm-Message-State: AOAM53393mJeO1r3xI3v7wIVAs4LjTfQWa7XD20ElXgI1qRbi86af0/V eFQvRN0Gj9Ioy3lgeI66ZNrUnW+CKke6yrY1X9jBXPmB2xmWnw== X-Received: by 2002:a9f:204e:: with SMTP id 72mr659337uam.19.1610388408471; Mon, 11 Jan 2021 10:06:48 -0800 (PST) MIME-Version: 1.0 References: <20201229161625.38255233@xhacker.debian> In-Reply-To: <20201229161625.38255233@xhacker.debian> From: Ulf Hansson Date: Mon, 11 Jan 2021 19:06:05 +0100 Message-ID: Subject: Re: [PATCH] mmc: sdhci-of-dwcmshc: fix rpmb access To: Jisheng Zhang Cc: Adrian Hunter , "linux-mmc@vger.kernel.org" , Linux Kernel Mailing List Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 29 Dec 2020 at 09:19, Jisheng Zhang wrote: > > Commit a44f7cb93732 ("mmc: core: use mrq->sbc when sending CMD23 for > RPMB") began to use ACMD23 for RPMB if the host supports ACMD23. In > RPMB ACM23 case, we need to set bit 31 to CMD23 argument, otherwise > RPMB write operation will return general fail. > > However, no matter V4 is enabled or not, the dwcmshc's ARGUMENT2 > register is 32-bit block count register which doesn't support stuff > bits of CMD23 argument. So let's handle this specific ACMD23 case. > > From another side, this patch also prepare for future v4 enabling > for dwcmshc, because from the 4.10 spec, the ARGUMENT2 register is > redefined as 32bit block count which doesn't support stuff bits of > CMD23 argument. > > Fixes: a44f7cb93732 ("mmc: core: use mrq->sbc when sending CMD23 for RPMB") > Signed-off-by: Jisheng Zhang Applied for fixes and by adding a stable tag, thanks! Kind regards Uffe > --- > drivers/mmc/host/sdhci-of-dwcmshc.c | 27 +++++++++++++++++++++++++++ > 1 file changed, 27 insertions(+) > > diff --git a/drivers/mmc/host/sdhci-of-dwcmshc.c b/drivers/mmc/host/sdhci-of-dwcmshc.c > index 4b673792b5a4..d90020ed3622 100644 > --- a/drivers/mmc/host/sdhci-of-dwcmshc.c > +++ b/drivers/mmc/host/sdhci-of-dwcmshc.c > @@ -16,6 +16,8 @@ > > #include "sdhci-pltfm.h" > > +#define SDHCI_DWCMSHC_ARG2_STUFF GENMASK(31, 16) > + > /* DWCMSHC specific Mode Select value */ > #define DWCMSHC_CTRL_HS400 0x7 > > @@ -49,6 +51,29 @@ static void dwcmshc_adma_write_desc(struct sdhci_host *host, void **desc, > sdhci_adma_write_desc(host, desc, addr, len, cmd); > } > > +static void dwcmshc_check_auto_cmd23(struct mmc_host *mmc, > + struct mmc_request *mrq) > +{ > + struct sdhci_host *host = mmc_priv(mmc); > + > + /* > + * No matter V4 is enabled or not, ARGUMENT2 register is 32-bit > + * block count register which doesn't support stuff bits of > + * CMD23 argument on dwcmsch host controller. > + */ > + if (mrq->sbc && (mrq->sbc->arg & SDHCI_DWCMSHC_ARG2_STUFF)) > + host->flags &= ~SDHCI_AUTO_CMD23; > + else > + host->flags |= SDHCI_AUTO_CMD23; > +} > + > +static void dwcmshc_request(struct mmc_host *mmc, struct mmc_request *mrq) > +{ > + dwcmshc_check_auto_cmd23(mmc, mrq); > + > + sdhci_request(mmc, mrq); > +} > + > static void dwcmshc_set_uhs_signaling(struct sdhci_host *host, > unsigned int timing) > { > @@ -133,6 +158,8 @@ static int dwcmshc_probe(struct platform_device *pdev) > > sdhci_get_of_property(pdev); > > + host->mmc_host_ops.request = dwcmshc_request; > + > err = sdhci_add_host(host); > if (err) > goto err_clk; > -- > 2.30.0.rc2 >