From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1161771AbcFHIWT (ORCPT ); Wed, 8 Jun 2016 04:22:19 -0400 Received: from lucky1.263xmail.com ([211.157.147.134]:49525 "EHLO lucky1.263xmail.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1161670AbcFHIWQ (ORCPT ); Wed, 8 Jun 2016 04:22:16 -0400 X-263anti-spam: KSV:0; X-MAIL-GRAY: 1 X-MAIL-DELIVERY: 0 X-KSVirus-check: 0 X-ABS-CHECKED: 4 X-ADDR-CHECKED: 0 X-RL-SENDER: shawn.lin@rock-chips.com X-FST-TO: ulf.hansson@linaro.org X-SENDER-IP: 58.22.7.114 X-LOGIN-NAME: shawn.lin@rock-chips.com X-UNIQUE-TAG: X-ATTACHMENT-NUM: 0 X-DNS-TYPE: 0 From: Shawn Lin To: Ulf Hansson Cc: Jaehoon Chung , Rob Herring , linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org, Doug Anderson , linux-rockchip@lists.infradead.org, devicetree@vger.kernel.org, Shawn Lin Subject: [RFC PATCH 4/4] mmc: core: improve initialization flow Date: Wed, 8 Jun 2016 16:22:01 +0800 Message-Id: <1465374121-2652-1-git-send-email-shawn.lin@rock-chips.com> X-Mailer: git-send-email 1.8.0 In-Reply-To: <1465373996-2485-1-git-send-email-shawn.lin@rock-chips.com> References: <1465373996-2485-1-git-send-email-shawn.lin@rock-chips.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org We should skip sending some unnecessary cmds during initialization if we know that this controller can't support the claimed function. In this way, we provide the capabilities for DT to decide whether they need to reduce booting time if they know a slot is just only for one card type. We also don't want to break the backward compatibility if not assigning any one of these caps for existing dts or dtb. So this patch should be safe. Signed-off-by: Shawn Lin --- drivers/mmc/core/core.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c index e864187..663bf18 100644 --- a/drivers/mmc/core/core.c +++ b/drivers/mmc/core/core.c @@ -2503,13 +2503,13 @@ static int mmc_rescan_try_freq(struct mmc_host *host, unsigned freq) mmc_send_if_cond(host, host->ocr_avail); /* Order's important: probe SDIO, then SD, then MMC */ - if (!(host->caps2 & MMC_CAP2_NO_SDIO)) - if (!mmc_attach_sdio(host)) - return 0; + if (!(host->caps2 & MMC_CAP2_NO_SDIO) && !mmc_attach_sdio(host)) + return 0; - if (!mmc_attach_sd(host)) + if (!(host->caps2 & MMC_CAP2_NO_SD) && !mmc_attach_sd(host)) return 0; - if (!mmc_attach_mmc(host)) + + if (!(host->caps2 & MMC_CAP2_NO_MMC) && !mmc_attach_mmc(host)) return 0; mmc_power_off(host); -- 2.3.7