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

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

Merge "defconfig: arm64: Enable command queue feature"

parents a7128355 908e33c2
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -443,6 +443,7 @@ CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SDHCI_MSM=y
CONFIG_MMC_SDHCI_MSM_ICE=y
CONFIG_MMC_CQ_HCI=y
CONFIG_LEDS_QPNP=y
CONFIG_LEDS_QPNP_FLASH=y
CONFIG_LEDS_QPNP_WLED=y
+1 −0
Original line number Diff line number Diff line
@@ -446,6 +446,7 @@ CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SDHCI_MSM=y
CONFIG_MMC_SDHCI_MSM_ICE=y
CONFIG_MMC_CQ_HCI=y
CONFIG_LEDS_QPNP=y
CONFIG_LEDS_QPNP_FLASH=y
CONFIG_LEDS_QPNP_WLED=y
+5 −3
Original line number Diff line number Diff line
@@ -301,7 +301,7 @@ static int cmdq_enable(struct mmc_host *mmc)
		pr_info("%s: %s: cq_host is already enabled\n",
				mmc_hostname(mmc), __func__);
		WARN_ON(1);
		goto out;
		goto pm_ref_count;
	}

	if (cq_host->quirks & CMDQ_QUIRK_NO_DCMD)
@@ -321,7 +321,7 @@ static int cmdq_enable(struct mmc_host *mmc)
			!cq_host->trans_desc_base) {
		err = cmdq_host_alloc_tdl(cq_host);
		if (err)
			goto out;
			goto pm_ref_count;
	}

	cmdq_writel(cq_host, lower_32_bits(cq_host->desc_dma_base), CQTDLBA);
@@ -366,8 +366,10 @@ static int cmdq_enable(struct mmc_host *mmc)

	if (cq_host->ops->enhanced_strobe_mask)
		cq_host->ops->enhanced_strobe_mask(mmc, true);
out:

pm_ref_count:
	cmdq_runtime_pm_put(cq_host);
out:
	return err;
}

+6 −2
Original line number Diff line number Diff line
@@ -1509,9 +1509,12 @@ static int sdhci_enable(struct mmc_host *mmc)
{
	struct sdhci_host *host = mmc_priv(mmc);

	if (host->cpu_dma_latency_us)
	if (mmc->card && !mmc_card_cmdq(mmc->card) &&
	    (host->cpu_dma_latency_us)) {
		pm_qos_update_request(&host->pm_qos_req_dma,
					host->cpu_dma_latency_us);
	}

	if (host->ops->platform_bus_voting)
		host->ops->platform_bus_voting(host, 1);

@@ -1522,7 +1525,8 @@ static int sdhci_disable(struct mmc_host *mmc)
{
	struct sdhci_host *host = mmc_priv(mmc);

	if (host->cpu_dma_latency_us) {
	if (mmc->card && !mmc_card_cmdq(mmc->card) &&
	    (host->cpu_dma_latency_us)) {
		/*
		 * In performance mode, release QoS vote after a timeout to
		 * make sure back-to-back requests don't suffer from latencies