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

Commit d6dbc416 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "mmc: core: implement enhanced strobe support"

parents 3eab8444 34f009cf
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -373,12 +373,13 @@ int mmc_add_card(struct mmc_card *card)
			mmc_card_ddr52(card) ? "DDR " : "",
			type);
	} else {
		pr_info("%s: new %s%s%s%s%s card at address %04x\n",
		pr_info("%s: new %s%s%s%s%s%s card at address %04x\n",
			mmc_hostname(card->host),
			mmc_card_uhs(card) ? "ultra high speed " :
			(mmc_card_hs(card) ? "high speed " : ""),
			mmc_card_hs400(card) ? "HS400 " :
			(mmc_card_hs200(card) ? "HS200 " : ""),
			mmc_card_hs400es(card) ? "Enhanced strobe " : "",
			mmc_card_ddr52(card) ? "DDR " : "",
			uhs_bus_speed_mode, type, card->rca);
	}
+2 −0
Original line number Diff line number Diff line
@@ -1275,6 +1275,8 @@ static int mmc_select_hs400(struct mmc_card *card)
	if (card->ext_csd.strobe_support && host->ops->enhanced_strobe) {
		mmc_host_clk_hold(host);
		err = host->ops->enhanced_strobe(host);
		if (!err)
			host->ios.enhanced_strobe = true;
		mmc_host_clk_release(host);
	} else if ((host->caps2 & MMC_CAP2_HS400_POST_TUNING) &&
			host->ops->execute_tuning) {
+7 −0
Original line number Diff line number Diff line
@@ -84,6 +84,8 @@ struct mmc_ios {
#define MMC_SET_DRIVER_TYPE_A	1
#define MMC_SET_DRIVER_TYPE_C	2
#define MMC_SET_DRIVER_TYPE_D	3

	bool enhanced_strobe;			/* hs400es selection */
};

/* states to represent load on the host */
@@ -827,6 +829,11 @@ static inline bool mmc_card_hs400(struct mmc_card *card)
	return card->host->ios.timing == MMC_TIMING_MMC_HS400;
}

static inline bool mmc_card_hs400es(struct mmc_card *card)
{
	return card->host->ios.enhanced_strobe;
}

void mmc_retune_enable(struct mmc_host *host);
void mmc_retune_disable(struct mmc_host *host);
void mmc_retune_timer_stop(struct mmc_host *host);