Received: by 2002:a05:7412:d1aa:b0:fc:a2b0:25d7 with SMTP id ba42csp1085628rdb; Tue, 30 Jan 2024 07:31:50 -0800 (PST) X-Google-Smtp-Source: AGHT+IHsL2HdxV/Ygu5iURlE2bs9BJEdrEZTjF2cE9MKovoUpEyOa03k4r6KGpCJ2LKJKZ59gLmg X-Received: by 2002:a17:903:2b04:b0:1d8:d1f5:e7a with SMTP id mc4-20020a1709032b0400b001d8d1f50e7amr4685197plb.52.1706628710173; Tue, 30 Jan 2024 07:31:50 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1706628710; cv=pass; d=google.com; s=arc-20160816; b=0Fs0/dNYk1SLwjTsrpMMySJ6D6rTpFsguaedKhBfwr5ymVZ3nikaZ43b5T0iuT6hi7 6z8oiVu9d8XnxLJUCDGyhTKStGDU70xCgKKNJU81LhrwmCBDnFx1r7nFiSdqLWnf/pz9 cIeoOwtmYQox78hu9UBwW0xUkzYnL9uFdGtEXAaCv7TyxE5aHohf9Go+0gdfLKLCvHVd ph62u+Ia/DvzLTr6wN7BaCnVOpLzCyFhQUVmKatdPucbYk4M+7clkOBSYPepSB0Pw+I8 DrrCVTCWZLDp4dsNUHZCW764JseI42bRI3TZ7yMXdjLUIoosNVbEag/PrYwn+vx5QwGi OYQg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:in-reply-to:organization:from:references :cc:to:content-language:subject:user-agent:mime-version :list-unsubscribe:list-subscribe:list-id:precedence:date:message-id :dkim-signature; bh=RU9vL3yOia+n72XM9SBV1u/1k4zfp8LT8WD6A5Z5SaA=; fh=EujoMBJVVLGl4SjCL6uyhhGPcBA5oYZ3hvWU/NuVD18=; b=wG8KzjBala3qTfxTTRyiIm6uDcGEkf8iHicG0NPrczM4JLnMyR1Oq4N/LirjiRpZYe 781Q5QeqEZrH8lhfO2T6/Ybn2RoaPtILpOUIiGR/hpI0cE6D9y0nF4Zi15yHbfE3lKJ4 tYKPPkMN80zSRNcq8Lty7QqEW9JVMMCz/QxW8Aa9S5fz9Ay4FvL/QG6fnr+NWv8+nL6+ Q0QGDHHfCzZBRuJVPZZA1VlPyMAuOyOCpiTPOQ2bxWSftbGVXWVqV6ezYzSb65No7ALu kx6JmEiS0zPGfYevzenb0sAXN0RbPr9hlNrCQ69KfKxQ6fukgxHXd2cD7IIMBuFGzcNB QdAw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=MTdPSF9a; arc=pass (i=1 spf=pass spfdomain=intel.com dkim=pass dkdomain=intel.com dmarc=pass fromdomain=intel.com); spf=pass (google.com: domain of linux-kernel+bounces-44844-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-44844-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id p2-20020a170902c70200b001d8ead2dc8csi3096469plp.370.2024.01.30.07.31.49 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 30 Jan 2024 07:31:50 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-44844-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=MTdPSF9a; arc=pass (i=1 spf=pass spfdomain=intel.com dkim=pass dkdomain=intel.com dmarc=pass fromdomain=intel.com); spf=pass (google.com: domain of linux-kernel+bounces-44844-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-44844-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id D52D228C0A7 for ; Tue, 30 Jan 2024 15:31:49 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 0DE35823CF; Tue, 30 Jan 2024 15:31:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="MTdPSF9a" Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2D6CE823B2; Tue, 30 Jan 2024 15:31:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.9 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706628702; cv=none; b=PeaFlqIsPujAaYmFB/9awAWcYwNtWihhdI3z39qFhjnZlXfsfcAwOl/nG0DI8jnY/m3u8BRcAtzSk/xpPouck6+0a3as3VvMSHBpObY+Oe8W8RVKjn2gUl1iGyvkk0QQgOMhszrxgJcrcMzLiTyAq69OLVfRmFhsDQl0EMX/s88= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706628702; c=relaxed/simple; bh=VFfXaMuM13ijuWEdNiaaHRki070Tzjou8g7ItrpOecQ=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=W3+cUJ+c5m+DAh+f9gicPOnb7lFk3G++DX4AAerE4jwQXDw2Rl086PLIDHEvuEzKk9G5wwhA8kTHJOsvguvcIVMrYqxjPYP4Q1iMi2Qat47jWR/faXWLZjUvvX6YaZNjStFkGESoL6hcqp6Ze9x6cFtaKncKe8juE6JF8vIOq38= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=MTdPSF9a; arc=none smtp.client-ip=192.198.163.9 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1706628700; x=1738164700; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to:content-transfer-encoding; bh=VFfXaMuM13ijuWEdNiaaHRki070Tzjou8g7ItrpOecQ=; b=MTdPSF9aj0LkcJICMVwwWqTmh1G2vTU4moD2gwX+zdZAjSqK4QwPEvN/ HlJHQl+wZETDgmqeQ9f/3QJHH4P1nePUGqMl5JqZxYxQk/d95I0Ly5fDS Be2RQ5eRpuguvXJcxlI/jaFJUL9UNsLbk6mXTIYJef4GU60SEp1KWRZms wUIdODvHXduh2FvtLt0HTfRosHeOSNzRzjU9VotB063yxux/lLAWltJyN qw+8fJ6k+sNouPXq4zKaanuitgc1kndnIEJBnZcaddbHnvBUu9l1h7Ejo LXD8rj/cw+3a7V7CQLhD7ny4/qnQW5hr9j4EPA9noAMhvO6kAetAyFUZA A==; X-IronPort-AV: E=McAfee;i="6600,9927,10968"; a="10059014" X-IronPort-AV: E=Sophos;i="6.05,230,1701158400"; d="scan'208";a="10059014" Received: from fmviesa003.fm.intel.com ([10.60.135.143]) by fmvoesa103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Jan 2024 07:31:36 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.05,230,1701158400"; d="scan'208";a="3749601" Received: from ahunter6-mobl1.ger.corp.intel.com (HELO [10.0.2.15]) ([10.251.217.15]) by fmviesa003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Jan 2024 07:31:32 -0800 Message-ID: Date: Tue, 30 Jan 2024 17:31:27 +0200 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH V14 16/21] mmc: sdhci-uhs2: add request() and others Content-Language: en-US To: Victor Shih , ulf.hansson@linaro.org Cc: linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org, benchuanggli@gmail.com, HL.Liu@genesyslogic.com.tw, Greg.tu@genesyslogic.com.tw, takahiro.akashi@linaro.org, dlunev@chromium.org, Ben Chuang , Victor Shih References: <20240123062827.8525-1-victorshihgli@gmail.com> <20240123062827.8525-17-victorshihgli@gmail.com> From: Adrian Hunter Organization: Intel Finland Oy, Registered Address: PL 281, 00181 Helsinki, Business Identity Code: 0357606 - 4, Domiciled in Helsinki In-Reply-To: <20240123062827.8525-17-victorshihgli@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 23/01/24 08:28, Victor Shih wrote: > From: Victor Shih > > This is a sdhci version of mmc's request operation. > It covers both UHS-I and UHS-II. > > Signed-off-by: Ben Chuang > Signed-off-by: AKASHI Takahiro > Signed-off-by: Victor Shih > --- > > Updates in V14: > - Use mmc_card_uhs2() to stead sdhci_uhs2_mode() in the > sdhci_uhs2_request(). > > Updates in V13: > - Re-order function to avoid declaration. > - Remove unnecessary function. > > Updates in V11: > - Drop the check mmc_card_uhs2_hd_mode(host->mmc) > in sdhci_uhs2_set_transfer_mode(). > > Updates in V10: > - Use tmode_half_duplex to instead of uhs2_tmode0_flag > in sdhci_uhs2_set_transfer_mode(). > > Updates in V9: > - Modify the annotations in __sdhci_uhs2_send_command(). > > Updates in V8: > - Adjust the position of matching brackets in > sdhci_uhs2_send_command_retry(). > - Modify CameCase definition in __sdhci_uhs2_finish_command(). > - Modify error message in __sdhci_uhs2_finish_command(). > - sdhci_uhs2_send_command_retry() to instead of sdhci_uhs2_send_command() > in sdhci_uhs2_request(). > - Use sdhci_uhs2_mode() to simplify code in sdhci_uhs2_request_atomic(). > - Add forward declaration for sdhci_send_command(). > > Updates in V7: > - Cancel export state of some functions. > - Remove unnecessary whitespace changes. > > Updates in V6: > - Add uhs2_dev_cmd() to simplify code. > - Remove unnecessary functions. > - Cancel export state of some functions. > - Drop use CONFIG_MMC_DEBUG(). > - Wrap at 100 columns in some functions. > > --- > > drivers/mmc/host/sdhci-uhs2.c | 379 +++++++++++++++++++++++++++++++++- > drivers/mmc/host/sdhci.c | 49 +++-- > drivers/mmc/host/sdhci.h | 8 + > 3 files changed, 420 insertions(+), 16 deletions(-) > > diff --git a/drivers/mmc/host/sdhci-uhs2.c b/drivers/mmc/host/sdhci-uhs2.c > index 0c543899ed6c..b47bcf6f890f 100644 > --- a/drivers/mmc/host/sdhci-uhs2.c > +++ b/drivers/mmc/host/sdhci-uhs2.c > @@ -14,6 +14,8 @@ > #include > #include > #include > +#include > +#include > > #include "sdhci.h" > #include "sdhci-uhs2.h" > @@ -29,6 +31,8 @@ > #define UHS2_INTERFACE_DETECT_TIMEOUT_100MS 100000 > #define UHS2_LANE_SYNC_TIMEOUT_150MS 150000 > > +#define UHS2_ARG_IOADR_MASK 0xfff > + > void sdhci_uhs2_dump_regs(struct sdhci_host *host) > { > if (!(mmc_card_uhs2(host->mmc))) > @@ -63,6 +67,11 @@ EXPORT_SYMBOL_GPL(sdhci_uhs2_dump_regs); > * * > \*****************************************************************************/ > > +static inline u16 uhs2_dev_cmd(struct mmc_command *cmd) > +{ > + return be16_to_cpu((__be16)cmd->uhs2_cmd->arg) & UHS2_ARG_IOADR_MASK; > +} > + > static inline int mmc_opt_regulator_set_ocr(struct mmc_host *mmc, > struct regulator *supply, > unsigned short vdd_bit) > @@ -140,7 +149,7 @@ static void sdhci_uhs2_set_power(struct sdhci_host *host, unsigned char mode, un > > static u8 sdhci_calc_timeout_uhs2(struct sdhci_host *host, u8 *cmd_res, u8 *dead_lock) > { > - /* timeout in us */ > + /* timeout in us */#define UHS2_ARG_IOADR_MASK 0xfff Extraneous "#define UHS2_ARG_IOADR_MASK 0xfff"