[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-id: <5502CADB.4040204@samsung.com>
Date: Fri, 13 Mar 2015 20:32:43 +0900
From: Jaehoon Chung <jh80.chung@...sung.com>
To: Doug Anderson <dianders@...omium.org>,
Ulf Hansson <ulf.hansson@...aro.org>,
Heiko Stuebner <heiko@...ech.de>,
Jaehoon Chung <jh80.chung@...sung.com>,
Seungwon Jeon <tgih.jun@...sung.com>
Cc: Mark Brown <broonie@...nel.org>,
Alexandru Stan <amstan@...omium.org>,
Alim Akhtar <alim.akhtar@...sung.com>,
Sonny Rao <sonnyrao@...omium.org>,
Andrew Bresticker <abrestic@...omium.org>,
Addy Ke <addy.ke@...k-chips.com>,
javier.martinez@...labora.co.uk,
linux-rockchip@...ts.infradead.org,
linux-arm-kernel@...ts.infradead.org, chris@...ntf.net,
linux-mmc@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v4 1/4] mmc: dw_mmc: Don't try to enable the CD until we're
sure we're not deferring
Hi Doug,
Will apply. Thanks!
Best Regards,
Jaehoon Chung
On 03/12/2015 07:15 AM, Doug Anderson wrote:
> If dw_mci_init_slot() returns that we got a probe deferral then it may
> leave slot->mmc as NULL. That will cause dw_mci_enable_cd() to crash
> when it calls mmc_gpio_get_cd().
>
> Fix this by moving the call of dw_mci_enable_cd() until we're sure
> that we're good. Note that if we have more than one slot and one
> defers (but the others don't) things won't work so well. ...but
> that's not a new thing and everyone has already agreed that multislot
> support ought to be removed from dw_mmc eventually anyway since it is
> unused, untested, and you can see several bugs like this by inspecting
> the code.
>
> Fixes: bcafaf5470f0 ("mmc: dw_mmc: Only enable CD after setup and only if needed")
> Signed-off-by: Doug Anderson <dianders@...omium.org>
> ---
> Changes in v4:
> - Defer vs. card detect fix patch new for v4.
>
> Changes in v3: None
> Changes in v2: None
>
> drivers/mmc/host/dw_mmc.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
> index 47dfd0e..e2811cf 100644
> --- a/drivers/mmc/host/dw_mmc.c
> +++ b/drivers/mmc/host/dw_mmc.c
> @@ -2863,9 +2863,6 @@ int dw_mci_probe(struct dw_mci *host)
> init_slots++;
> }
>
> - /* Now that slots are all setup, we can enable card detect */
> - dw_mci_enable_cd(host);
> -
> if (init_slots) {
> dev_info(host->dev, "%d slots initialized\n", init_slots);
> } else {
> @@ -2874,6 +2871,9 @@ int dw_mci_probe(struct dw_mci *host)
> goto err_dmaunmap;
> }
>
> + /* Now that slots are all setup, we can enable card detect */
> + dw_mci_enable_cd(host);
> +
> if (host->quirks & DW_MCI_QUIRK_IDMAC_DTO)
> dev_info(host->dev, "Internal DMAC interrupt fix enabled.\n");
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists