From: Christian Lütke-Stetzkamp Date: Wed, 4 Apr 2018 20:15:39 +0000 (+0200) Subject: staging: mt7621-mmc: Fix different caps for different devices X-Git-Tag: v4.18-rc1~83^2~628 X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=5e5c114d541ea69c962171db41537f1094d15acd;p=linux.git staging: mt7621-mmc: Fix different caps for different devices Current code saves the need for polling in a global variable, that leeds to problems, when the driver should handle multiple devices with different capabilities. By looking up the capability in the mmc_host capabilities, they now have per device scope. Signed-off-by: Christian Lütke-Stetzkamp Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/mt7621-mmc/sd.c b/drivers/staging/mt7621-mmc/sd.c index 70f9649adfa4..840fb7986597 100644 --- a/drivers/staging/mt7621-mmc/sd.c +++ b/drivers/staging/mt7621-mmc/sd.c @@ -153,7 +153,6 @@ static struct msdc_regs *msdc_reg[HOST_MAX_NUM]; #endif -static int mtk_sw_poll; static int cd_active_low = 1; @@ -2361,7 +2360,7 @@ static irqreturn_t msdc_irq(int irq, void *dev_id) /* card change interrupt */ if (intsts & MSDC_INT_CDSC) { - if (mtk_sw_poll) + if (host->mmc->caps & MMC_CAP_NEEDS_POLL) return IRQ_HANDLED; IRQ_MSG("MSDC_INT_CDSC irq<0x%.8x>", intsts); #if 0 /* ---/+++ by chhung: fix slot mechanical bounce issue */ @@ -2739,9 +2738,8 @@ static int msdc_drv_probe(struct platform_device *pdev) mmc->caps |= MMC_CAP_SDIO_IRQ; /* yes for sdio */ cd_active_low = !of_property_read_bool(pdev->dev.of_node, "mediatek,cd-high"); - mtk_sw_poll = of_property_read_bool(pdev->dev.of_node, "mediatek,cd-poll"); - if (mtk_sw_poll) + if (of_property_read_bool(pdev->dev.of_node, "mediatek,cd-poll")) mmc->caps |= MMC_CAP_NEEDS_POLL; /* MMC core transfer sizes tunable parameters */