Commit 1c4c5e25 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull MMC fixes from Ulf Hansson:

 - tmio: Fixup runtime PM management during probe and remove

 - sdhci-pci-o2micro: Fix eMMC initialization for an AMD SoC

 - bcm2835: Prevent lockups when terminating work

* tag 'mmc-v5.3-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc:
  mmc: tmio: Fixup runtime PM management during remove
  mmc: tmio: Fixup runtime PM management during probe
  Revert "mmc: tmio: move runtime PM enablement to the driver implementations"
  Revert "mmc: sdhci: Remove unneeded quirk2 flag of O2 SD host controller"
  Revert "mmc: bcm2835: Terminate timeout work synchronously"
parents 592b8d87 87b5d602
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -597,7 +597,7 @@ static void bcm2835_finish_request(struct bcm2835_host *host)
	struct dma_chan *terminate_chan = NULL;
	struct mmc_request *mrq;

	cancel_delayed_work_sync(&host->timeout_work);
	cancel_delayed_work(&host->timeout_work);

	mrq = host->mrq;

+0 −6
Original line number Diff line number Diff line
@@ -774,8 +774,6 @@ int renesas_sdhi_probe(struct platform_device *pdev,
	/* All SDHI have SDIO status bits which must be 1 */
	mmc_data->flags |= TMIO_MMC_SDIO_STATUS_SETBITS;

	pm_runtime_enable(&pdev->dev);

	ret = renesas_sdhi_clk_enable(host);
	if (ret)
		goto efree;
@@ -856,8 +854,6 @@ edisclk:
efree:
	tmio_mmc_host_free(host);

	pm_runtime_disable(&pdev->dev);

	return ret;
}
EXPORT_SYMBOL_GPL(renesas_sdhi_probe);
@@ -869,8 +865,6 @@ int renesas_sdhi_remove(struct platform_device *pdev)
	tmio_mmc_host_remove(host);
	renesas_sdhi_clk_disable(host);

	pm_runtime_disable(&pdev->dev);

	return 0;
}
EXPORT_SYMBOL_GPL(renesas_sdhi_remove);
+1 −1
Original line number Diff line number Diff line
@@ -432,7 +432,6 @@ int sdhci_pci_o2_probe_slot(struct sdhci_pci_slot *slot)
					mmc_hostname(host->mmc));
				host->flags &= ~SDHCI_SIGNALING_330;
				host->flags |= SDHCI_SIGNALING_180;
				host->quirks2 |= SDHCI_QUIRK2_CLEAR_TRANSFERMODE_REG_BEFORE_CMD;
				host->mmc->caps2 |= MMC_CAP2_NO_SD;
				host->mmc->caps2 |= MMC_CAP2_NO_SDIO;
				pci_write_config_dword(chip->pdev,
@@ -682,6 +681,7 @@ static const struct sdhci_ops sdhci_pci_o2_ops = {
const struct sdhci_pci_fixes sdhci_o2 = {
	.probe = sdhci_pci_o2_probe,
	.quirks = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC,
	.quirks2 = SDHCI_QUIRK2_CLEAR_TRANSFERMODE_REG_BEFORE_CMD,
	.probe_slot = sdhci_pci_o2_probe_slot,
#ifdef CONFIG_PM_SLEEP
	.resume = sdhci_pci_o2_resume,
+0 −5
Original line number Diff line number Diff line
@@ -172,8 +172,6 @@ static int tmio_mmc_probe(struct platform_device *pdev)
	host->mmc->f_max = pdata->hclk;
	host->mmc->f_min = pdata->hclk / 512;

	pm_runtime_enable(&pdev->dev);

	ret = tmio_mmc_host_probe(host);
	if (ret)
		goto host_free;
@@ -193,7 +191,6 @@ host_remove:
	tmio_mmc_host_remove(host);
host_free:
	tmio_mmc_host_free(host);
	pm_runtime_disable(&pdev->dev);
cell_disable:
	if (cell->disable)
		cell->disable(pdev);
@@ -210,8 +207,6 @@ static int tmio_mmc_remove(struct platform_device *pdev)
	if (cell->disable)
		cell->disable(pdev);

	pm_runtime_disable(&pdev->dev);

	return 0;
}

+1 −0
Original line number Diff line number Diff line
@@ -163,6 +163,7 @@ struct tmio_mmc_host {
	unsigned long		last_req_ts;
	struct mutex		ios_lock;	/* protect set_ios() context */
	bool			native_hotplug;
	bool			runtime_synced;
	bool			sdio_irq_enabled;

	/* Mandatory callback */
Loading