regulator: act8865: fix build when OF is not enabled
authorBeniamino Galvani <b.galvani@gmail.com>
Mon, 7 Jul 2014 21:40:47 +0000 (23:40 +0200)
committerMark Brown <broonie@linaro.org>
Tue, 5 Aug 2014 17:02:54 +0000 (18:02 +0100)
act8846_matches and act8865_matches are defined only when OF is
enabled. Move references to them to the act8865_pdata_from_dt()
function to avoid a build error when OF is disabled.

Reported-by: kbuild test robot <fengguang.wu@intel.com>
Signed-off-by: Beniamino Galvani <b.galvani@gmail.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
drivers/regulator/act8865-regulator.c

index a5ad69a0aca9e5365be4187f9c61d25583fe5402..afd06f92dfdf006cba0cc282d5e87e0b757bdf9e 100644 (file)
@@ -198,12 +198,12 @@ static struct of_regulator_match act8865_matches[] = {
 static int act8865_pdata_from_dt(struct device *dev,
                                 struct device_node **of_node,
                                 struct act8865_platform_data *pdata,
-                                struct of_regulator_match *matches,
-                                int num_matches)
+                                unsigned long type)
 {
-       int matched, i;
+       int matched, i, num_matches;
        struct device_node *np;
        struct act8865_regulator_data *regulator;
+       struct of_regulator_match *matches;
 
        np = of_get_child_by_name(dev->of_node, "regulators");
        if (!np) {
@@ -211,6 +211,20 @@ static int act8865_pdata_from_dt(struct device *dev,
                return -EINVAL;
        }
 
+       switch (type) {
+       case ACT8846:
+               matches = act8846_matches;
+               num_matches = ARRAY_SIZE(act8846_matches);
+               break;
+       case ACT8865:
+               matches = act8865_matches;
+               num_matches = ARRAY_SIZE(act8865_matches);
+               break;
+       default:
+               dev_err(dev, "invalid device id %lu\n", type);
+               return -EINVAL;
+       }
+
        matched = of_regulator_match(dev, np, matches, num_matches);
        of_node_put(np);
        if (matched <= 0)
@@ -238,7 +252,8 @@ static int act8865_pdata_from_dt(struct device *dev,
 #else
 static inline int act8865_pdata_from_dt(struct device *dev,
                                        struct device_node **of_node,
-                                       struct act8865_platform_data *pdata)
+                                       struct act8865_platform_data *pdata,
+                                       unsigned long type)
 {
        return 0;
 }
@@ -265,7 +280,6 @@ static int act8865_pmic_probe(struct i2c_client *client,
 {
        static const struct regulator_desc *regulators;
        struct act8865_platform_data pdata_of, *pdata;
-       struct of_regulator_match *matches;
        struct device *dev = &client->dev;
        struct device_node **of_node;
        int i, ret, num_regulators;
@@ -288,12 +302,10 @@ static int act8865_pmic_probe(struct i2c_client *client,
 
        switch (type) {
        case ACT8846:
-               matches = act8846_matches;
                regulators = act8846_regulators;
                num_regulators = ARRAY_SIZE(act8846_regulators);
                break;
        case ACT8865:
-               matches = act8865_matches;
                regulators = act8865_regulators;
                num_regulators = ARRAY_SIZE(act8865_regulators);
                break;
@@ -308,8 +320,7 @@ static int act8865_pmic_probe(struct i2c_client *client,
                return -ENOMEM;
 
        if (dev->of_node && !pdata) {
-               ret = act8865_pdata_from_dt(dev, of_node, &pdata_of, matches,
-                                           num_regulators);
+               ret = act8865_pdata_from_dt(dev, of_node, &pdata_of, type);
                if (ret < 0)
                        return ret;