regulator: max8952: Simplify the logic to get vid[0|1] status
authorAxel Lin <axel.lin@gmail.com>
Thu, 15 Mar 2012 00:47:48 +0000 (08:47 +0800)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Sun, 1 Apr 2012 10:59:25 +0000 (11:59 +0100)
The syntax "(((vid >> 1) % 2) == 1)" is inefficient and also hard to read.
Use bitwidse AND operator instead.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
drivers/regulator/max8952.c

index 75d8940..e9c0a0e 100644 (file)
@@ -152,8 +152,8 @@ static int max8952_set_voltage(struct regulator_dev *rdev,
        }
 
        if (vid >= 0 && vid < MAX8952_NUM_DVS_MODE) {
-               max8952->vid0 = (vid % 2 == 1);
-               max8952->vid1 = (((vid >> 1) % 2) == 1);
+               max8952->vid0 = vid & 0x1;
+               max8952->vid1 = (vid >> 1) & 0x1;
                *selector = vid;
                gpio_set_value(max8952->pdata->gpio_vid0, max8952->vid0);
                gpio_set_value(max8952->pdata->gpio_vid1, max8952->vid1);
@@ -217,8 +217,8 @@ static int __devinit max8952_pmic_probe(struct i2c_client *client,
        }
 
        max8952->en = !!(pdata->reg_data.constraints.boot_on);
-       max8952->vid0 = (pdata->default_mode % 2) == 1;
-       max8952->vid1 = ((pdata->default_mode >> 1) % 2) == 1;
+       max8952->vid0 = pdata->default_mode & 0x1;
+       max8952->vid1 = (pdata->default_mode >> 1) & 0x1;
 
        if (gpio_is_valid(pdata->gpio_en)) {
                if (!gpio_request(pdata->gpio_en, "MAX8952 EN"))
@@ -241,13 +241,13 @@ static int __devinit max8952_pmic_probe(struct i2c_client *client,
                        gpio_is_valid(pdata->gpio_vid1)) {
                if (!gpio_request(pdata->gpio_vid0, "MAX8952 VID0"))
                        gpio_direction_output(pdata->gpio_vid0,
-                                       (pdata->default_mode) % 2);
+                                       (pdata->default_mode) & 0x1);
                else
                        err = 1;
 
                if (!gpio_request(pdata->gpio_vid1, "MAX8952 VID1"))
                        gpio_direction_output(pdata->gpio_vid1,
-                               (pdata->default_mode >> 1) % 2);
+                               (pdata->default_mode >> 1) & 0x1);
                else {
                        if (!err)
                                gpio_free(pdata->gpio_vid0);