All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Abraham <thomas.abraham@linaro.org>
To: linux-mmc@vger.kernel.org, devicetree-discuss@lists.ozlabs.org
Cc: will.newton@imgtec.com, cjb@laptop.org,
	grant.likely@secretlab.ca, rob.herring@calxeda.com,
	linux-samsung-soc@vger.kernel.org, kgene.kim@samsung.com,
	girish.shivananjappa@linaro.org, jh80.chung@samsung.com,
	tgih.jun@samsung.com, patches@linaro.org
Subject: [PATCH v5 3/9] mmc: dw_mmc: allow probe to succeed even if one slot is initialized
Date: Wed, 29 Aug 2012 16:18:09 +0530	[thread overview]
Message-ID: <1346237295-7116-4-git-send-email-thomas.abraham@linaro.org> (raw)
In-Reply-To: <1346237295-7116-1-git-send-email-thomas.abraham@linaro.org>

Instead of aborting the probe in case a slot initialization fails, allow
initialization of as many slots as possible. If there are atleast one
instance of slot that is successfully initialized, allow the driver probe
to succeed.

Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org>
Acked-by: Will Newton <will.newton@imgtec.com>
---
 drivers/mmc/host/dw_mmc.c |   23 +++++++++++++----------
 1 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
index a18e73c..227c42e 100644
--- a/drivers/mmc/host/dw_mmc.c
+++ b/drivers/mmc/host/dw_mmc.c
@@ -1946,6 +1946,7 @@ int dw_mci_probe(struct dw_mci *host)
 {
 	int width, i, ret = 0;
 	u32 fifo_size;
+	int init_slots = 0;
 
 	if (!host->pdata || !host->pdata->init) {
 		dev_err(host->dev,
@@ -2054,10 +2055,18 @@ int dw_mci_probe(struct dw_mci *host)
 	/* We need at least one slot to succeed */
 	for (i = 0; i < host->num_slots; i++) {
 		ret = dw_mci_init_slot(host, i);
-		if (ret) {
-			ret = -ENODEV;
-			goto err_init_slot;
-		}
+		if (ret)
+			dev_dbg(host->dev, "slot %d init failed\n", i);
+		else
+			init_slots++;
+	}
+
+	if (init_slots) {
+		dev_info(host->dev, "%d slots initialized\n", init_slots);
+	} else {
+		dev_dbg(host->dev, "attempted to initialize %d slots, "
+					"but failed on all\n", host->num_slots);
+		goto err_init_slot;
 	}
 
 	/*
@@ -2092,12 +2101,6 @@ int dw_mci_probe(struct dw_mci *host)
 	return 0;
 
 err_init_slot:
-	/* De-init any initialized slots */
-	while (i > 0) {
-		if (host->slot[i])
-			dw_mci_cleanup_slot(host->slot[i], i);
-		i--;
-	}
 	free_irq(host->irq, host);
 
 err_workqueue:
-- 
1.6.6.rc2


  parent reply	other threads:[~2012-08-29 10:48 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-29 10:48 [PATCH v5 0/9] mmc: dw_mmc: add support for device tree based instantiation Thomas Abraham
2012-08-29 10:48 ` [PATCH v5 1/9] mmc: dw_mmc: convert copy of struct device in struct dw_mci to a reference Thomas Abraham
2012-08-29 10:48 ` [PATCH v5 2/9] mmc: dw_mmc: Use devm_* functions in dw_mmc platform driver Thomas Abraham
2012-08-29 10:48 ` Thomas Abraham [this message]
2012-08-29 10:48 ` [PATCH v5 4/9] mmc: dw_mmc: lookup for optional biu and ciu clocks Thomas Abraham
2012-08-30  8:48   ` Jaehoon Chung
2012-08-31  5:29     ` Thomas Abraham
2012-08-31  6:02       ` Jaehoon Chung
2012-08-31  6:32         ` Thomas Abraham
2012-08-31  6:32         ` Thomas Abraham
2012-08-31  7:59           ` Jaehoon Chung
2012-08-31  8:48             ` Thomas Abraham
2012-09-04 19:46               ` Thomas Abraham
2012-09-05  8:30                 ` Jaehoon Chung
2012-09-07  6:26                   ` Thomas Abraham
2012-09-07  9:39                     ` Thomas Abraham
2012-08-29 10:48 ` [PATCH v5 5/9] mmc: dw_mmc: add quirk to indicate missing write protect line Thomas Abraham
2012-08-29 10:48 ` [PATCH v5 6/9] mmc: dw_mmc: add device tree support Thomas Abraham
2012-08-29 10:48 ` [PATCH v5 7/9] mmc: dw_mmc: prepare functions in dw_mmc-pltfm for reuse Thomas Abraham
2012-08-29 10:48 ` [PATCH v5 8/9] mmc: dw_mmc: add support for implementation specific callbacks Thomas Abraham
2012-09-04 19:47   ` Thomas Abraham
2012-09-07  9:40   ` Thomas Abraham
2012-08-29 10:48 ` [PATCH v5 9/9] mmc: dw_mmc: add support for exynos specific implementation of dw-mshc Thomas Abraham
2012-09-04 19:48   ` Thomas Abraham
2012-09-05 10:43     ` Seungwon Jeon
2012-09-07  7:15       ` Thomas Abraham
2012-09-07  9:41         ` Thomas Abraham
2012-09-07 10:51         ` Seungwon Jeon
     [not found]           ` <00a601cd8ce6$ca599e50$5f0cdaf0$%jun-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2012-09-07 16:13             ` Thomas Abraham

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1346237295-7116-4-git-send-email-thomas.abraham@linaro.org \
    --to=thomas.abraham@linaro.org \
    --cc=cjb@laptop.org \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=girish.shivananjappa@linaro.org \
    --cc=grant.likely@secretlab.ca \
    --cc=jh80.chung@samsung.com \
    --cc=kgene.kim@samsung.com \
    --cc=linux-mmc@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=patches@linaro.org \
    --cc=rob.herring@calxeda.com \
    --cc=tgih.jun@samsung.com \
    --cc=will.newton@imgtec.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.