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

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

Merge "mmc: host: sdhci-msm: Don't clear IO_PAD_PWR_SWITCH when faking 3V support"

parents 686797dd ac24b408
Loading
Loading
Loading
Loading
+5 −4
Original line number Original line Diff line number Diff line
@@ -1937,7 +1937,7 @@ struct sdhci_msm_pltfm_data *sdhci_msm_populate_pdata(struct device *dev,
	sdhci_msm_pm_qos_parse(dev, pdata);
	sdhci_msm_pm_qos_parse(dev, pdata);


	if (of_get_property(np, "qcom,core_3_0v_support", NULL))
	if (of_get_property(np, "qcom,core_3_0v_support", NULL))
		pdata->core_3_0v_support = true;
		msm_host->core_3_0v_support = true;


	pdata->sdr104_wa = of_property_read_bool(np, "qcom,sdr104-wa");
	pdata->sdr104_wa = of_property_read_bool(np, "qcom,sdr104-wa");


@@ -2617,8 +2617,9 @@ static irqreturn_t sdhci_msm_pwr_irq(int irq, void *data)
	 * completed before its next update to registers within hc_mem.
	 * completed before its next update to registers within hc_mem.
	 */
	 */
	mb();
	mb();

	if ((io_level & REQ_IO_HIGH) &&
	if ((io_level & REQ_IO_HIGH) && (msm_host->caps_0 & CORE_3_0V_SUPPORT))
			(msm_host->caps_0 & CORE_3_0V_SUPPORT) &&
			!msm_host->core_3_0v_support)
		writel_relaxed((readl_relaxed(host->ioaddr +
		writel_relaxed((readl_relaxed(host->ioaddr +
				msm_host_offset->CORE_VENDOR_SPEC) &
				msm_host_offset->CORE_VENDOR_SPEC) &
				~CORE_IO_PAD_PWR_SWITCH), host->ioaddr +
				~CORE_IO_PAD_PWR_SWITCH), host->ioaddr +
@@ -4024,7 +4025,7 @@ static void sdhci_set_default_hw_caps(struct sdhci_msm_host *msm_host,
		msm_host->use_14lpp_dll = true;
		msm_host->use_14lpp_dll = true;


	/* Fake 3.0V support for SDIO devices which requires such voltage */
	/* Fake 3.0V support for SDIO devices which requires such voltage */
	if (msm_host->pdata->core_3_0v_support) {
	if (msm_host->core_3_0v_support) {
		caps |= CORE_3_0V_SUPPORT;
		caps |= CORE_3_0V_SUPPORT;
			writel_relaxed((readl_relaxed(host->ioaddr +
			writel_relaxed((readl_relaxed(host->ioaddr +
			SDHCI_CAPABILITIES) | caps), host->ioaddr +
			SDHCI_CAPABILITIES) | caps), host->ioaddr +
+1 −1
Original line number Original line Diff line number Diff line
@@ -150,7 +150,6 @@ struct sdhci_msm_pltfm_data {
	u32 *sup_ice_clk_table;
	u32 *sup_ice_clk_table;
	unsigned char sup_ice_clk_cnt;
	unsigned char sup_ice_clk_cnt;
	struct sdhci_msm_pm_qos_data pm_qos_data;
	struct sdhci_msm_pm_qos_data pm_qos_data;
	bool core_3_0v_support;
	bool sdr104_wa;
	bool sdr104_wa;
};
};


@@ -218,6 +217,7 @@ struct sdhci_msm_host {
	bool tuning_in_progress;
	bool tuning_in_progress;
	bool mci_removed;
	bool mci_removed;
	const struct sdhci_msm_offset *offset;
	const struct sdhci_msm_offset *offset;
	bool core_3_0v_support;
};
};


extern char *saved_command_line;
extern char *saved_command_line;