MMC core:
 - A couple of changes to improve the support for erase/discard/trim cmds
 - Add eMMC HS400 enhanced strobe support
 - Show OCR and DSR registers in SYSFS for MMC/SD cards
 - Correct and improve busy detection logic for MMC switch (CMD6) cmds
 - Disable HPI cmds for certain broken Hynix eMMC cards
 - Allow MMC hosts to specify non-support for SD and MMC cmds
 - Some minor additional fixes

MMC host:
 - sdhci: Re-works, fixes and clean-ups
 - sdhci: Add HW auto re-tuning support
 - sdhci: Re-factor code to prepare for adding support for eMMC CMDQ
 - sdhci-esdhc-imx: Fixes and clean-ups
 - sdhci-esdhc-imx: Update system PM support
 - sdhci-esdhc-imx: Enable HW auto re-tuning
 - sdhci-bcm2835: Remove driver as sdhci-iproc is used instead
 - sdhci-brcmstb: Add new driver for Broadcom BRCMSTB SoCs
 - sdhci-msm: Add support for UHS cards
 - sdhci-tegra: Improve support for UHS cards
 - sdhci-of-arasan: Update phy support for Rockchip SoCs
 - sdhci-of-arasan: Deploy enhanced strobe support
 - dw_mmc: Some fixes and clean-ups
 - dw_mmc: Enable support for erase/discard/trim cmds
 - dw_mmc: Enable CMD23 support
 - mediatek: Some fixes related to the eMMC HS400 support
 - sh_mmcif: Improve support for HW busy detection
 - rtsx_pci: Enable support for erase/discard/trim cmds
mmc: rtsx_pci: Remove deprecated create_singlethread_workqueue

The workqueue "workq" provides support for sd/mmc async request, which
makes next request do dma_map_sg() while previous request transferring
data.

The workqueue has a single workitem(&host->work) and hence doesn't require
ordering. Also, it is not being used on a memory reclaim path. Hence,
the singlethreaded workqueue has been replaced with the use of system_wq.

System workqueues have been able to handle high level of concurrency
for a long time now and hence it's not required to have a singlethreaded
workqueue just to gain concurrency. Unlike a dedicated per-cpu workqueue
created with create_singlethread_workqueue(), system_wq allows multiple
work items to overlap executions even on the same CPU; however, a
per-cpu workqueue doesn't have any CPU locality or global ordering
guarantee unless the target CPU is explicitly specified and thus the
increase of local concurrency shouldn't make any difference.

Work item has been flushed in rtsx_pci_sdmmc_drv_remove() to ensure that
there are no pending tasks while disconnecting the driver.

Signed-off-by: Bhaktipriya Shridhar <bhaktipriya96@gmail.com>
Acked-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
1 file changed