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

Commit ea968023 authored by Adrian Hunter's avatar Adrian Hunter Committed by Ulf Hansson
Browse files

mmc: sdhci: Get rid of host->busy_handle



Now that there is host->data_cmd to record the command for which a data
interrupt is expected, it is possible to determine whether a command with
busy signaling has completed without an extra flag. So host->busy_handle
is not needed. Remove it.

Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
parent 7c89a3d9
Loading
Loading
Loading
Loading
+6 −8
Original line number Diff line number Diff line
@@ -1014,7 +1014,6 @@ void sdhci_send_command(struct sdhci_host *host, struct mmc_command *cmd)
	mod_timer(&host->timer, timeout);

	host->cmd = cmd;
	host->busy_handle = 0;
	if (cmd->data || cmd->flags & MMC_RSP_BUSY) {
		WARN_ON(host->data_cmd);
		host->data_cmd = cmd;
@@ -1094,9 +1093,8 @@ static void sdhci_finish_command(struct sdhci_host *host)
		if (cmd->data) {
			DBG("Cannot wait for busy signal when also doing a data transfer");
		} else if (!(host->quirks & SDHCI_QUIRK_NO_BUSY_IRQ) &&
			   !host->busy_handle) {
			/* Mark that command complete before busy is ended */
			host->busy_handle = 1;
			   cmd == host->data_cmd) {
			/* Command complete before busy is ended */
			return;
		}
	}
@@ -2393,10 +2391,10 @@ static void sdhci_data_irq(struct sdhci_host *host, u32 intmask)
				 * before the command completed, so make
				 * sure we do things in the proper order.
				 */
				if (host->busy_handle)
				if (host->cmd == data_cmd)
					return;

				tasklet_schedule(&host->finish_tasklet);
				else
					host->busy_handle = 1;
				return;
			}
		}
+0 −1
Original line number Diff line number Diff line
@@ -469,7 +469,6 @@ struct sdhci_host {
	struct mmc_command *data_cmd;	/* Current data command */
	struct mmc_data *data;	/* Current data request */
	unsigned int data_early:1;	/* Data finished before cmd */
	unsigned int busy_handle:1;	/* Handling the order of Busy-end */

	struct sg_mapping_iter sg_miter;	/* SG state for PIO */
	unsigned int blocks;	/* remaining PIO blocks */