On Wed, Apr 27, 2011 at 10:39:50AM +0100, Graeme Gregory wrote: > + switch (info->flags) { > + case 0: > + if (index == 0) > + voltage = 0; > + else if (index < 58) > + voltage = (600000 + (12500 * (index - 1))); > + else if (index == 58) > + voltage = 1350 * 1000; > + else if (index == 59) > + voltage = 1500 * 1000; > + else if (index == 60) > + voltage = 1800 * 1000; > + else if (index == 61) > + voltage = 1900 * 1000; > + else if (index == 62) > + voltage = 2100 * 1000; This reads like a switch statement with a default: case to me. > +static int twl6030dcdc_get_voltage(struct regulator_dev *rdev) > +{ > + struct twlreg_info *info = rdev_get_drvdata(rdev); > + int vsel = twlreg_read(info, TWL_MODULE_PM_RECEIVER, > + VREG_VOLTAGE_DCDC); > + int voltage = 0; > + > + if (vsel < 0) > + return vsel; > + switch (info->flags) { This should just call list_voltage() to do the mapping into a voltage or better yet should be converted into a get_voltage_sel() which will mean that the core can call list_voltage() for you. Either way you save duplicating the code to map from selector to voltage. -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html