mfd: tps65910: Initialize mfd devices after all initialization done
authorLaxman Dewangan <ldewangan@nvidia.com>
Tue, 13 Nov 2012 14:03:56 +0000 (19:33 +0530)
committerSamuel Ortiz <sameo@linux.intel.com>
Tue, 20 Nov 2012 11:21:08 +0000 (12:21 +0100)
Add sub devices of tps65910 after all initialization like interrupt,
clock etc. is done. This will make sure that require data gets
initialized properly before sub devices probe's get called.

Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
drivers/mfd/tps65910.c

index 0d79ce2b5014c938b0f366d74639eace2508659e..27fbbe5101012fee9117e53432f6a9cad696fb2d 100644 (file)
@@ -279,14 +279,6 @@ static __devinit int tps65910_i2c_probe(struct i2c_client *i2c,
                return ret;
        }
 
-       ret = mfd_add_devices(tps65910->dev, -1,
-                             tps65910s, ARRAY_SIZE(tps65910s),
-                             NULL, 0, NULL);
-       if (ret < 0) {
-               dev_err(&i2c->dev, "mfd_add_devices failed: %d\n", ret);
-               return ret;
-       }
-
        init_data->irq = pmic_plat_data->irq;
        init_data->irq_base = pmic_plat_data->irq_base;
 
@@ -299,6 +291,14 @@ static __devinit int tps65910_i2c_probe(struct i2c_client *i2c,
                pm_power_off = tps65910_power_off;
        }
 
+       ret = mfd_add_devices(tps65910->dev, -1,
+                             tps65910s, ARRAY_SIZE(tps65910s),
+                             NULL, 0, NULL);
+       if (ret < 0) {
+               dev_err(&i2c->dev, "mfd_add_devices failed: %d\n", ret);
+               return ret;
+       }
+
        return ret;
 }