Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mmc: sdhci: disable MMC_CAP_NEEDS_POLL in nonremovable case

When a controller requires SDHCI_QUIRK_BROKEN_CARD_DETECTION, we poll
for card insertion/removal, and that creates interrupts. There's no
need to be doing this if we have a non-removable card.

This patch requires cards to be removable before we're willing to set
MMC_CAP_NEEDS_POLL.

Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Matt Fleming <matt@console-pimps.org>
Acked-by: Wolfram Sang <w.sang@pengutronix.de>
[cjb: modified changelog and code indentation]
Signed-off-by: Chris Ball <cjb@laptop.org>

authored by

Jaehoon Chung and committed by
Chris Ball
176d1ed4 71d7d3d1

+2 -1
+2 -1
drivers/mmc/host/sdhci.c
··· 1849 1849 if (caps & SDHCI_CAN_DO_HISPD) 1850 1850 mmc->caps |= MMC_CAP_SD_HIGHSPEED | MMC_CAP_MMC_HIGHSPEED; 1851 1851 1852 - if (host->quirks & SDHCI_QUIRK_BROKEN_CARD_DETECTION) 1852 + if ((host->quirks & SDHCI_QUIRK_BROKEN_CARD_DETECTION) && 1853 + mmc_card_is_removable(mmc)) 1853 1854 mmc->caps |= MMC_CAP_NEEDS_POLL; 1854 1855 1855 1856 mmc->ocr_avail = 0;