]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
HSMMC: Fix boot crash on boards without gpio_cd set
authorGrazvydas Ignotas <notasas@gmail.com>
Fri, 14 Nov 2008 19:45:16 +0000 (21:45 +0200)
committerTony Lindgren <tony@atomide.com>
Fri, 14 Nov 2008 21:42:32 +0000 (13:42 -0800)
If .gpio_cd is -EINVAL, twl_mmc_late_init() is not called and
hsmmc[x].mmc is not set, so don't use it in twl_mmc*_set_power().

Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/mach-omap2/mmc-twl4030.c

index 0ea6ba6b8671646715976c59a76588af815ef832..626d66867172bc907468b9b2ae0786a6a8d6b7c3 100644 (file)
@@ -239,6 +239,7 @@ static int twl_mmc1_set_power(struct device *dev, int slot, int power_on,
        u32 reg;
        int ret = 0;
        struct twl_mmc_controller *c = &hsmmc[0];
+       struct omap_mmc_platform_data *mmc = dev->platform_data;
 
        if (power_on) {
                if (cpu_is_omap2430()) {
@@ -250,7 +251,7 @@ static int twl_mmc1_set_power(struct device *dev, int slot, int power_on,
                        omap_ctrl_writel(reg, OMAP243X_CONTROL_DEVCONF1);
                }
 
-               if (c->mmc->slots[0].internal_clock) {
+               if (mmc->slots[0].internal_clock) {
                        reg = omap_ctrl_readl(OMAP2_CONTROL_DEVCONF0);
                        reg |= OMAP2_MMCSDIO1ADPCLKISEL;
                        omap_ctrl_writel(reg, OMAP2_CONTROL_DEVCONF0);
@@ -293,11 +294,11 @@ static int twl_mmc1_set_power(struct device *dev, int slot, int power_on,
 static int twl_mmc2_set_power(struct device *dev, int slot, int power_on, int vdd)
 {
        int ret;
-
        struct twl_mmc_controller *c = &hsmmc[1];
+       struct omap_mmc_platform_data *mmc = dev->platform_data;
 
        if (power_on) {
-               if (c->mmc->slots[0].internal_clock) {
+               if (mmc->slots[0].internal_clock) {
                        u32 reg;
 
                        reg = omap_ctrl_readl(control_devconf1_offset);