From: Adrian Hunter <adrian.hunter@intel.com>
To: Chunyan Zhang <zhang.chunyan@linaro.org>,
Ulf Hansson <ulf.hansson@linaro.org>
Cc: linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org,
Orson Zhai <orsonzhai@gmail.com>,
Baolin Wang <baolin.wang@linaro.org>,
Billows Wu <billows.wu@spreadtrum.com>,
Jason Wu <jason.wu@unisoc.com>,
zhang.lyra@gmail.com
Subject: Re: [PATCH V4 4/7] mmc: sdhci: add 32-bit block count support for v4 mode
Date: Mon, 30 Jul 2018 16:05:47 +0300 [thread overview]
Message-ID: <3e586922-c5e8-fb3c-233e-06836f4dad48@intel.com> (raw)
In-Reply-To: <1532400671-23429-1-git-send-email-zhang.chunyan@linaro.org>
On 24/07/18 05:51, Chunyan Zhang wrote:
> Host Controller Version 4.10 re-defines SDMA System Address register
> as 32-bit Block Count for v4 mode, and SDMA uses ADMA System
> Address register (05Fh-058h) instead if v4 mode is enabled. Also
> when using 32-bit block count, 16-bit block count register need
> to be set to zero.
>
> Signed-off-by: Chunyan Zhang <zhang.chunyan@linaro.org>
> ---
> drivers/mmc/host/sdhci.c | 14 +++++++++++++-
> drivers/mmc/host/sdhci.h | 1 +
> 2 files changed, 14 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
> index 920d8ec..c272a2b 100644
> --- a/drivers/mmc/host/sdhci.c
> +++ b/drivers/mmc/host/sdhci.c
> @@ -1070,7 +1070,19 @@ static void sdhci_prepare_data(struct sdhci_host *host, struct mmc_command *cmd)
> /* Set the DMA boundary value and block size */
> sdhci_writew(host, SDHCI_MAKE_BLKSZ(host->sdma_boundary, data->blksz),
> SDHCI_BLOCK_SIZE);
> - sdhci_writew(host, data->blocks, SDHCI_BLOCK_COUNT);
> +
> + /*
> + * For Version 4.10 onwards, if v4 mode is enabled, 16-bit Block Count
> + * register need to be set to zero, 32-bit Block Count register would
> + * be selected.
> + */
> + if (host->version >= SDHCI_SPEC_410 && host->v4_mode) {
> + if (sdhci_readw(host, SDHCI_BLOCK_COUNT))
> + sdhci_writew(host, 0, SDHCI_BLOCK_COUNT);
> + sdhci_writew(host, data->blocks, SDHCI_32BIT_BLK_CNT);
So this is also SDHCI_ARGUMENT2 which is why there is a conflict with
auto-CMD23. We need to write SDHCI_32BIT_BLK_CNT only once, but also cater
for eMMC which uses the CMD23 argument for more than just block count.
> + } else {
> + sdhci_writew(host, data->blocks, SDHCI_BLOCK_COUNT);
> + }
> }
>
> static inline bool sdhci_auto_cmd12(struct sdhci_host *host,
> diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h
> index 23318ff..81aae07 100644
> --- a/drivers/mmc/host/sdhci.h
> +++ b/drivers/mmc/host/sdhci.h
> @@ -28,6 +28,7 @@
>
> #define SDHCI_DMA_ADDRESS 0x00
> #define SDHCI_ARGUMENT2 SDHCI_DMA_ADDRESS
> +#define SDHCI_32BIT_BLK_CNT SDHCI_DMA_ADDRESS
>
> #define SDHCI_BLOCK_SIZE 0x04
> #define SDHCI_MAKE_BLKSZ(dma, blksz) (((dma & 0x7) << 12) | (blksz & 0xFFF))
>
next prev parent reply other threads:[~2018-07-30 13:05 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-23 10:08 [PATCH V4 0/7] mmc: add support for sdhci 4.0 Chunyan Zhang
2018-07-23 10:08 ` Chunyan Zhang
2018-07-23 10:08 ` [PATCH V4 1/7] mmc: sdhci: add sd host v4 mode Chunyan Zhang
2018-07-30 13:04 ` Adrian Hunter
2018-07-23 10:08 ` [PATCH V4 2/7] mmc: sdhci: Change SDMA address register for " Chunyan Zhang
2018-07-23 22:26 ` kbuild test robot
2018-07-23 22:28 ` kbuild test robot
2018-07-24 2:47 ` Chunyan Zhang
2018-07-30 13:04 ` Adrian Hunter
2018-07-23 10:08 ` [PATCH V4 3/7] mmc: sdhci: add ADMA2 64-bit addressing support for V4 mode Chunyan Zhang
2018-07-30 13:05 ` Adrian Hunter
2018-07-23 10:08 ` [PATCH V4 4/7] mmc: sdhci: add 32-bit block count support for v4 mode Chunyan Zhang
2018-07-24 2:51 ` Chunyan Zhang
2018-07-30 13:05 ` Adrian Hunter [this message]
2018-08-06 11:29 ` Chunyan Zhang
[not found] ` <598422fd0106427c85945baf1e1f1548@SHMBX02.spreadtrum.com>
2018-08-14 11:40 ` Adrian Hunter
2018-07-23 10:08 ` [PATCH V4 5/7] mmc: sdhci: add Auto CMD Auto Select support Chunyan Zhang
2018-07-30 13:06 ` Adrian Hunter
2018-07-31 7:04 ` Chunyan Zhang
2018-07-31 7:04 ` Chunyan Zhang
2018-07-31 8:05 ` Adrian Hunter
2018-07-31 8:36 ` Chunyan Zhang
2018-07-31 8:56 ` Adrian Hunter
2018-07-31 9:20 ` Chunyan Zhang
2018-07-31 9:36 ` Adrian Hunter
2018-08-01 9:26 ` Chunyan Zhang
2018-07-31 9:27 ` Chunyan Zhang
2018-07-23 10:08 ` [PATCH V4 6/7] mmc: sdhci-sprd: added Spreadtrum's initial host controller Chunyan Zhang
2018-07-23 10:08 ` [PATCH V4 7/7] dt-bindings: sdhci-sprd: Add bindings for the sdhci-sprd controller Chunyan Zhang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3e586922-c5e8-fb3c-233e-06836f4dad48@intel.com \
--to=adrian.hunter@intel.com \
--cc=baolin.wang@linaro.org \
--cc=billows.wu@spreadtrum.com \
--cc=jason.wu@unisoc.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mmc@vger.kernel.org \
--cc=orsonzhai@gmail.com \
--cc=ulf.hansson@linaro.org \
--cc=zhang.chunyan@linaro.org \
--cc=zhang.lyra@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.