Received: by 2002:ac0:bc90:0:0:0:0:0 with SMTP id a16csp5397815img; Wed, 27 Mar 2019 07:50:41 -0700 (PDT) X-Google-Smtp-Source: APXvYqyCVELcrTs5HLzKTs7l94k18YY4hOV6CCwMkEhnZYLxy0qeo+6AgpzwNgwep8SJ4042fKSS X-Received: by 2002:a17:902:59c5:: with SMTP id d5mr3858844plj.104.1553698241008; Wed, 27 Mar 2019 07:50:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553698240; cv=none; d=google.com; s=arc-20160816; b=Tztx485adz9PtJW5txqS+EKgCATEhJEJnJJlIx0yF8/5wFJtv70L8o3FtV6+rRk+0c rfrl8gDwNWbA4KbGK15BJPBss1iwWrk87rWAuxIPCMUvCEqs2jKXv8kZNjgBIgq6UufJ 8bL14fd8JFMGXW50lp5jEDYsoiGOxYZE/K/BBoNVb+Au6WHHm9rjlnGLkWXjw/KFisor S7rV4pZv2IUeWrO1Es4XKdVWVNqsatiZTIzjwCbyW4YCQyMkElCScE7bb/NbOXIRrooz LZES1VoR6gY0oKnoagIun63yD8hUYCr6luHMENj7eQOKRt6jcw0ONb+XidMR/4CscSX7 s3HQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=R815A1FJQxQZH+hP8PNI4aTyVidcMt4Kw7CGKUhXijo=; b=Zc9IXOmI6aArwNfPlRDUCOC6NFGpueXlgeYIohjqSzYQdXCtf4lYt1er9RPnH0NygZ zsaq80gMTBrbTQuWmhLk0krrtaJ4NT6AvjoMwwYXPbM/pJYM538TkiCFXGE0jA+G8wZn EPoSDe0egXhwLlAKgk1X24SZ0SQ73sp9Mk+6WQS8ZQMNyRwVJT4+FVd2lFYvFnFZBAbr fySHstNSZPhAMxx2ezMG/JVFlPQLYn2JbqaWqTO3n+qqoVJiKAJhJg0sbawE1YSHKo9k +W/np/yBW9zzDiAM8+gyRYlwM6UkgfaaZAUd+xv5nrSE390NheOH03W/Z8JwHuesLMCl CY3w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="mo/yD2Kj"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 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. [209.132.180.67]) by mx.google.com with ESMTP id u33si16998133pga.341.2019.03.27.07.50.25; Wed, 27 Mar 2019 07:50:40 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="mo/yD2Kj"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 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 S1728911AbfC0OsB (ORCPT + 99 others); Wed, 27 Mar 2019 10:48:01 -0400 Received: from mail-ua1-f67.google.com ([209.85.222.67]:45167 "EHLO mail-ua1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728089AbfC0OsB (ORCPT ); Wed, 27 Mar 2019 10:48:01 -0400 Received: by mail-ua1-f67.google.com with SMTP id c13so4265672uao.12 for ; Wed, 27 Mar 2019 07:48:00 -0700 (PDT) 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=R815A1FJQxQZH+hP8PNI4aTyVidcMt4Kw7CGKUhXijo=; b=mo/yD2KjBlqN8CIPBEd+hBTgvhhRNlfYKOwnk0LQjhE3KsMeq7ooZ+c3dJc5XBzqoW AR1MWdvEsqBQ7toJ2TUVTHoCwfiTdAUMvcfmBHrH74i1ykXDp2hU0RMDGmNTXIJIvXra pkNIFMa09eVfcAH8JgE77yU04k/cviRF4Zui5Woi/B8O+DK94avd4rr7j7M2h75Whsuc t2MiMAwOGp1Kdv4bRM+nMagO7CnpHgDDnSCc5SDvUUeSz2eDnnyTPY8HD2mAV2aNOX/c 1wtRpU2zm0TkXwslr/MCd+RQZiH1HzEgMlsYq63PNOBl+rZRUA/84lhwB9Sg3Mr+MWaX T6Rw== 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=R815A1FJQxQZH+hP8PNI4aTyVidcMt4Kw7CGKUhXijo=; b=ma6t64W+/m9E+p9R1Nx4lnVXikh4lnVwAkxpE4wAwWy4MtEZCy85KuMhQlfAGcAV9B O/FesvvYigPRC8dYnMyTHQ6tPQQv+SqEhq9FPFj+3tVs2FFnWFZ++lohqixh85Y97Ciw rM96pHftt19PMUdjoHzeXBvGcHp5allY+4q17PNj8kG6mo0NDmxJ7veJgIQqE1wQVYMy 79WLO74S5bur5ycEPE26GGxiHFZ30kVfctFOooUfDVoh4uIDlLx0f8xOzzGN13EY6NsF sCKz6cfl5ChOTV99tcBK5eMWaxMucpjMccNA0gIh2tLbLI9Krh8hVc7pI7cit7aQdsKD rxRQ== X-Gm-Message-State: APjAAAUDlJxMxM4TX8h1DFIvioT0gAGpqEui/bs/Fng5eTPABsKX7y8i c7D0ruU7yC+xrM9LO+wbzDMafYAFjVraAF953YXuHw== X-Received: by 2002:ab0:6383:: with SMTP id y3mr21538620uao.129.1553698079903; Wed, 27 Mar 2019 07:47:59 -0700 (PDT) MIME-Version: 1.0 References: <1553677532-3539-1-git-send-email-ludovic.Barre@st.com> <1553677532-3539-5-git-send-email-ludovic.Barre@st.com> In-Reply-To: From: Ulf Hansson Date: Wed, 27 Mar 2019 15:47:23 +0100 Message-ID: Subject: Re: [PATCH V4 4/5] mmc: mmci: stm32: define get_dctrl_cfg To: Ludovic BARRE Cc: Rob Herring , Srinivas Kandagatla , Maxime Coquelin , Alexandre Torgue , Linux ARM , Linux Kernel Mailing List , DTML , "linux-mmc@vger.kernel.org" , linux-stm32@st-md-mailman.stormreply.com Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 27 Mar 2019 at 15:44, Ludovic BARRE wrote: > > > > On 3/27/19 11:54 AM, Ulf Hansson wrote: > > On Wed, 27 Mar 2019 at 10:05, Ludovic Barre wrote: > >> > >> From: Ludovic Barre > >> > >> This patch defines get_dctrl_cfg callback for sdmmc variant. > >> sdmmc variant has specific stm32 transfer modes. > >> sdmmc data transfer mode selection could be: > >> -Block data transfer ending on block count. > >> -SDIO multibyte data transfer. > >> -MMC Stream data transfer (not used). > >> -Block data transfer ending with STOP_TRANSMISSION command. > >> > >> Signed-off-by: Ludovic Barre > >> --- > >> drivers/mmc/host/mmci.h | 5 +++++ > >> drivers/mmc/host/mmci_stm32_sdmmc.c | 18 ++++++++++++++++++ > >> 2 files changed, 23 insertions(+) > >> > >> diff --git a/drivers/mmc/host/mmci.h b/drivers/mmc/host/mmci.h > >> index 35c91d0..82e9f94 100644 > >> --- a/drivers/mmc/host/mmci.h > >> +++ b/drivers/mmc/host/mmci.h > >> @@ -131,6 +131,11 @@ > >> /* Control register extensions in the Qualcomm versions */ > >> #define MCI_DPSM_QCOM_DATA_PEND BIT(17) > >> #define MCI_DPSM_QCOM_RX_DATA_PEND BIT(20) > >> +/* Control register extensions in STM32 versions */ > >> +#define MCI_DPSM_STM32_MODE_BLOCK (0 << 2) > >> +#define MCI_DPSM_STM32_MODE_SDIO (1 << 2) > >> +#define MCI_DPSM_STM32_MODE_STREAM (2 << 2) > >> +#define MCI_DPSM_STM32_MODE_BLOCK_STOP (3 << 2) > >> > >> #define MMCIDATACNT 0x030 > >> #define MMCISTATUS 0x034 > >> diff --git a/drivers/mmc/host/mmci_stm32_sdmmc.c b/drivers/mmc/host/mmci_stm32_sdmmc.c > >> index cfbfc6f..8e83ae6 100644 > >> --- a/drivers/mmc/host/mmci_stm32_sdmmc.c > >> +++ b/drivers/mmc/host/mmci_stm32_sdmmc.c > >> @@ -265,10 +265,28 @@ static void mmci_sdmmc_set_pwrreg(struct mmci_host *host, unsigned int pwr) > >> } > >> } > >> > >> +static u32 sdmmc_get_dctrl_cfg(struct mmci_host *host) > >> +{ > >> + u32 datactrl; > >> + > >> + datactrl = mmci_dctrl_blksz(host); > >> + > >> + if (host->mmc->card && mmc_card_sdio(host->mmc->card) && > >> + host->data->blocks == 1) > >> + datactrl |= MCI_DPSM_STM32_MODE_SDIO; > >> + else if (host->data->stop && !host->mrq->sbc) > >> + datactrl |= MCI_DPSM_STM32_MODE_BLOCK_STOP; > > > > Just a question here. Does this mean that the controller sends the > > stop command automatically when a transfer has finished successfully? > > The controller not sends the stop command, this bit is just an > information for the Data State Machine to know how the data transfer > finish. Okay, thanks for clarifying! Kind regards Uffe