From patchwork Mon Oct 5 17:11:56 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tony Lindgren X-Patchwork-Id: 7329671 Return-Path: X-Original-To: patchwork-linux-mmc@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 251E49F302 for ; Mon, 5 Oct 2015 17:12:06 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 34682206AD for ; Mon, 5 Oct 2015 17:12:05 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 390D4203F1 for ; Mon, 5 Oct 2015 17:12:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751759AbbJERMC (ORCPT ); Mon, 5 Oct 2015 13:12:02 -0400 Received: from muru.com ([72.249.23.125]:56013 "EHLO muru.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751238AbbJERMB (ORCPT ); Mon, 5 Oct 2015 13:12:01 -0400 Received: from atomide.com (localhost [127.0.0.1]) by muru.com (Postfix) with ESMTPS id EB364814C; Mon, 5 Oct 2015 17:16:04 +0000 (UTC) Date: Mon, 5 Oct 2015 10:11:56 -0700 From: Tony Lindgren To: Russell King - ARM Linux Cc: Nishanth Menon , Ulf Hansson , linux-mmc , Felipe Balbi , Kishon Vijay Abraham I , "arm@kernel.org" , linux-omap@vger.kernel.org, "linux-arm-kernel@lists.infradead.org" Subject: Re: All OMAP platforms: MMC is broken Message-ID: <20151005171155.GF23801@atomide.com> References: <20150924090048.GA21626@n2100.arm.linux.org.uk> <20150924233756.GN23801@atomide.com> <20151001093325.GU21513@n2100.arm.linux.org.uk> <20151001100326.GV21513@n2100.arm.linux.org.uk> <20151005112304.GZ23801@atomide.com> <20151005143532.GA23801@atomide.com> <20151005145127.GB23801@atomide.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20151005145127.GB23801@atomide.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-mmc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-mmc@vger.kernel.org X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP * Tony Lindgren [151005 07:57]: > * Tony Lindgren [151005 07:44]: > > * Tony Lindgren [151005 04:28]: > > > > Based on some tests it seems that the duovero unpaired regulator usage > > is fixed by reverting: > > > > c55d7a055364 ("mmc: host: omap_hsmmc: use regulator_is_enabled to > > find pbias status") > > With commit c55d7a055364 my guess is that the PBIAS regulator is > already on from an earlier MMC probe and getting re-enabled when > a deferred probe happens? Unless somebody has a better fix in mind for the above, I suggest we revert it for the -rc kernel. > > And it seems that omap3 legacy MMC is broken earlier in the > > series with: > > > > 7d607f917008 ("mmc: host: omap_hsmmc: use > > devm_regulator_get_optional() for vmmc") > > > > This one does not cleanly revert so have not yet tried reverting > > it. > > And with commit 7d607f917008 I'm guessing we can't return an > error if the PBIAS regulator does not exist as that's not there > for the legacy booting. For omap3 legacy booting, we keep getting -EPROBE_DEFER for all the optional regulators. Something like the following might be the minimal fix for the -rc cycle? Regards, Tony 8< ---------------- From: Tony Lindgren Date: Mon, 5 Oct 2015 09:37:36 -0700 Subject: [PATCH] mmc: host: omap_hsmmc: Fix MMC for omap3 legacy booting Starting with commit 7d607f917008 ("mmc: host: omap_hsmmc: use devm_regulator_get_optional() for vmmc") MMC on omap3 stopped working for legacy booting. This is because legacy booting sets up some of the resource in the platform init code, and for optional regulators always seem to return -EPROBE_DEFER for the legacy booting. Let's fix the issue by checking for device tree based booting for now. Then when omap3 boots in device tree only mode, this patch can be just reverted. Fixes: 7d607f917008 ("mmc: host: omap_hsmmc: use devm_regulator_get_optional() for vmmc") Signed-off-by: Tony Lindgren --- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html --- a/drivers/mmc/host/omap_hsmmc.c +++ b/drivers/mmc/host/omap_hsmmc.c @@ -478,7 +478,7 @@ static int omap_hsmmc_reg_get(struct omap_hsmmc_host *host) mmc->supply.vmmc = devm_regulator_get_optional(host->dev, "vmmc"); if (IS_ERR(mmc->supply.vmmc)) { ret = PTR_ERR(mmc->supply.vmmc); - if (ret != -ENODEV) + if ((ret != -ENODEV) && host->dev->of_node) return ret; dev_dbg(host->dev, "unable to get vmmc regulator %ld\n", PTR_ERR(mmc->supply.vmmc)); @@ -493,7 +493,7 @@ static int omap_hsmmc_reg_get(struct omap_hsmmc_host *host) mmc->supply.vqmmc = devm_regulator_get_optional(host->dev, "vmmc_aux"); if (IS_ERR(mmc->supply.vqmmc)) { ret = PTR_ERR(mmc->supply.vqmmc); - if (ret != -ENODEV) + if ((ret != -ENODEV) && host->dev->of_node) return ret; dev_dbg(host->dev, "unable to get vmmc_aux regulator %ld\n", PTR_ERR(mmc->supply.vqmmc)); @@ -503,7 +503,7 @@ static int omap_hsmmc_reg_get(struct omap_hsmmc_host *host) host->pbias = devm_regulator_get_optional(host->dev, "pbias"); if (IS_ERR(host->pbias)) { ret = PTR_ERR(host->pbias); - if (ret != -ENODEV) + if ((ret != -ENODEV) && host->dev->of_node) return ret; dev_dbg(host->dev, "unable to get pbias regulator %ld\n", PTR_ERR(host->pbias));