Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d3fc5d71 authored by Vincent Yang's avatar Vincent Yang Committed by Ulf Hansson
Browse files

mmc: sdhci: add a quirk for single block transactions



This patch defines a quirk to disable the block count
for single block transactions.
It is a preparation and will be used by Fujitsu
SDHCI controller f_sdh30 driver.

Signed-off-by: default avatarVincent Yang <Vincent.Yang@tw.fujitsu.com>
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
parent 67d0d04a
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -904,7 +904,7 @@ static void sdhci_prepare_data(struct sdhci_host *host, struct mmc_command *cmd)
static void sdhci_set_transfer_mode(struct sdhci_host *host,
	struct mmc_command *cmd)
{
	u16 mode;
	u16 mode = 0;
	struct mmc_data *data = cmd->data;

	if (data == NULL) {
@@ -922,9 +922,11 @@ static void sdhci_set_transfer_mode(struct sdhci_host *host,

	WARN_ON(!host->data);

	if (!(host->quirks2 & SDHCI_QUIRK2_SUPPORT_SINGLE))
		mode = SDHCI_TRNS_BLK_CNT_EN;

	if (mmc_op_multi(cmd->opcode) || data->blocks > 1) {
		mode |= SDHCI_TRNS_MULTI;
		mode = SDHCI_TRNS_BLK_CNT_EN | SDHCI_TRNS_MULTI;
		/*
		 * If we are sending CMD23, CMD12 never gets sent
		 * on successful completion (so no Auto-CMD12).
+2 −0
Original line number Diff line number Diff line
@@ -113,6 +113,8 @@ struct sdhci_host {
#define SDHCI_QUIRK2_CAPS_BIT63_FOR_HS400		(1<<11)
/* forced tuned clock */
#define SDHCI_QUIRK2_TUNING_WORK_AROUND			(1<<12)
/* disable the block count for single block transactions */
#define SDHCI_QUIRK2_SUPPORT_SINGLE			(1<<13)

	int irq;		/* Device IRQ */
	void __iomem *ioaddr;	/* Mapped address */