mmc: dw_mmc: fix the debug message for checking card's present
authorJaehoon Chung <jh80.chung@samsung.com>
Thu, 17 Nov 2016 07:40:34 +0000 (16:40 +0900)
committerUlf Hansson <ulf.hansson@linaro.org>
Tue, 29 Nov 2016 08:05:07 +0000 (09:05 +0100)
If display the debug message, this message should be spamming.
If flags is maintained the previous value, didn't display the debug
message.

Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
Tested-by: Heiko Stuebner <heiko@sntech.de>
Reviewed-by: Shawn Lin <shawn.lin@rock-chips.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/dw_mmc.c

index 3cf2490b16bd89486dd5dccb59733e936e39ce19..441ca447c4ba5832c5d69f4666e7ec8d491d9388 100644 (file)
@@ -1538,13 +1538,10 @@ static int dw_mci_get_cd(struct mmc_host *mmc)
                        == 0 ? 1 : 0;
 
        spin_lock_bh(&host->lock);
-       if (present) {
-               set_bit(DW_MMC_CARD_PRESENT, &slot->flags);
+       if (present && !test_and_set_bit(DW_MMC_CARD_PRESENT, &slot->flags))
                dev_dbg(&mmc->class_dev, "card is present\n");
-       } else {
-               clear_bit(DW_MMC_CARD_PRESENT, &slot->flags);
+       else if (!test_and_clear_bit(DW_MMC_CARD_PRESENT, &slot->flags))
                dev_dbg(&mmc->class_dev, "card is not present\n");
-       }
        spin_unlock_bh(&host->lock);
 
        return present;