Comment 17 for bug 591941

Revision history for this message
Robert Nelson (robertcnelson) wrote :

Success... My Bx and XM work great with 6da20c89af64b75302399369a90b9d50c1a87665 Reverted..

At first we looked at the configs, the kernel was bootable again with disabling these

CONFIG_SND_TIMER=m
CONFIG_SND_PCM=m
# CONFIG_SND_SOC is not set

So it looked like the SND_SOC was messing with the mmc clock..

After ruling out 2.6.34-rc1 -> 2.6.35... Started a git bisect between 2.6.33 and 2.6.34-rc1, that led to:

        git bisect start
        git bisect good v2.6.33
        git bisect bad v2.6.34-rc1
 git bisect good 47871889c601d8199c51a4086f77eebd77c29b0b
 git bisect bad 1154fab73ccbab010cfaa272b6987c624cfd63c6
 git bisect good 94015f6e6ba11040f75f4b42aada8de23965290e
 git bisect bad 3ff1562ea48cddaa5ac1adcb8892227389a4c96c
 git bisect bad b610ec502376d915b76a62e22576c5d0462cc9c9
 git bisect bad e3d4d0a2385593e7873e7d7688eeffea949facff
 git bisect good 918cae14872c56446415299fc17cf98704c9a537
 git bisect good 97ec7d585b33bbcc2be92dafa05b540959b4ea47
 git bisect good c2798e9342a1394de966c31703e0410ee3988378
 git bisect good 1df58db8a25ec7656005f1dd161a9ede044551b7
 git bisect bad e0eb2424469ec2333885672d3db8bd07d322455d
 git bisect bad 6da20c89af64b75302399369a90b9d50c1a87665
 git bisect good 4380eea266940a82e5b8edd5c16ce0289679bcfe

Bisecting: 3129 revisions left to test after this (roughly 12 steps)
[47871889c601d8199c51a4086f77eebd77c29b0b] Merge branch 'master' of /home/davem/src/GIT/linux-2.6/
Bisecting: 1607 revisions left to test after this (roughly 11 steps)
[1154fab73ccbab010cfaa272b6987c624cfd63c6] SLUB: Fix per-cpu merge conflict
Bisecting: 760 revisions left to test after this (roughly 10 steps)
[94015f6e6ba11040f75f4b42aada8de23965290e] USB: BKL removal: cdc-wdm
Bisecting: 358 revisions left to test after this (roughly 9 steps)
[3ff1562ea48cddaa5ac1adcb8892227389a4c96c] Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband
Bisecting: 187 revisions left to test after this (roughly 8 steps)
[b610ec502376d915b76a62e22576c5d0462cc9c9] Merge branch 'for_2.6.34_b' of git://git.pwsan.com/linux-2.6 into omap-for-linus
Bisecting: 106 revisions left to test after this (roughly 7 steps)
[e3d4d0a2385593e7873e7d7688eeffea949facff] AM35xx: Introduce am35xx.h file
Bisecting: 52 revisions left to test after this (roughly 6 steps)
[918cae14872c56446415299fc17cf98704c9a537] Merge branch 'for-tony' of git://gitorious.org/linux-omap-dss2/linux into omap-for-linus
Bisecting: 26 revisions left to test after this (roughly 5 steps)
[97ec7d585b33bbcc2be92dafa05b540959b4ea47] omap iommu: cleanup iommu page address mask and definitions
Bisecting: 13 revisions left to test after this (roughly 4 steps)
[c2798e9342a1394de966c31703e0410ee3988378] omap3: SDP: Introducing 'board-sdp-flash.c' for flash init
Bisecting: 6 revisions left to test after this (roughly 3 steps)
[1df58db8a25ec7656005f1dd161a9ede044551b7] omap_hsmmc: Allow for power saving without going off
Bisecting: 3 revisions left to test after this (roughly 2 steps)
[e0eb2424469ec2333885672d3db8bd07d322455d] omap_hsmmc: Allow for a shared VccQ
Bisecting: 0 revisions left to test after this (roughly 1 step)
[6da20c89af64b75302399369a90b9d50c1a87665] omap_hsmmc: Ensure regulator enable / disable are paired
Bisecting: 0 revisions left to test after this (roughly 0 steps)
[4380eea266940a82e5b8edd5c16ce0289679bcfe] omap_hsmmc: Fix disable timeouts
6da20c89af64b75302399369a90b9d50c1a87665 is the first bad commit
commit 6da20c89af64b75302399369a90b9d50c1a87665
Author: Adrian Hunter <email address hidden>
Date: Mon Feb 15 10:03:34 2010 -0800

    omap_hsmmc: Ensure regulator enable / disable are paired

    Stop using 'regulator_is_enabled()' and just pair enables
    with disables so that the regulator reference counts can
    work correctly.

    Signed-off-by: Adrian Hunter <email address hidden>
    Signed-off-by: Tony Lindgren <email address hidden>

:040000 040000 7a5ea1703d313f6468cd3c17ea12a3952d3606fb fb31fcb7f99d945712b85e05a616dd95ef06dad2 M drivers

then reverted that commit on top of 2.6.35 and both xm/bx find the mmc card again..

Regards,

Commit in question:

6da20c89af64b75302399369a90b9d50c1a87665
 drivers/mmc/host/omap_hsmmc.c | 9 +++------
 1 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index cb94044..d2fad58 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -296,11 +296,8 @@ static int omap_hsmmc_23_set_power(struct device *dev, int slot, int power_on,
     ret = mmc_regulator_set_ocr(host->vcc, 0);
   }
  } else {
- if (host->vcc_aux) {
- ret = regulator_is_enabled(host->vcc_aux);
- if (ret > 0)
- ret = regulator_disable(host->vcc_aux);
- }
+ if (host->vcc_aux)
+ ret = regulator_disable(host->vcc_aux);
   if (ret == 0)
    ret = mmc_regulator_set_ocr(host->vcc, 0);
  }
@@ -1975,7 +1972,7 @@ static int __init omap_hsmmc_probe(struct platform_device *pdev)
  host->slot_id = 0;
  host->mapbase = res->start;
  host->base = ioremap(host->mapbase, SZ_4K);
- host->power_mode = -1;
+ host->power_mode = MMC_POWER_OFF;

  platform_set_drvdata(pdev, host);
  INIT_WORK(&host->mmc_carddetect_work, omap_hsmmc_detect);