Hi, Mark: Do you still have any other problem which have impact on evaluating these two patches?
BR Nenghua On 02/19/2014 06:44 PM, Nenghua Cao wrote: > From: Nenghua Cao <nh...@marvell.com> > > In some cases, we need regmap's format parse_val function > to do be/le translation according to the bus configuration. > For example, snd_soc_bytes_put() uses regmap to write/read values, > and use cpu_to_be() directly to covert MASK into big endian. This > is a defect, and should use regmap's format function to do it according > to bus configuration. > > Signed-off-by: Nenghua Cao <nh...@marvell.com> > --- > drivers/base/regmap/regmap.c | 12 ++++++++++++ > include/linux/regmap.h | 9 +++++++++ > 2 files changed, 21 insertions(+), 0 deletions(-) > > diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c > index 6a19515..4b2ed0c 100644 > --- a/drivers/base/regmap/regmap.c > +++ b/drivers/base/regmap/regmap.c > @@ -2240,6 +2240,18 @@ int regmap_get_val_bytes(struct regmap *map) > } > EXPORT_SYMBOL_GPL(regmap_get_val_bytes); > > +int regmap_parse_val(struct regmap *map, const void *buf, > + unsigned int *val) > +{ > + if (!map->format.parse_val) > + return -EINVAL; > + > + *val = map->format.parse_val(buf); > + > + return 0; > +} > +EXPORT_SYMBOL_GPL(regmap_parse_val); > + > static int __init regmap_initcall(void) > { > regmap_debugfs_initcall(); > diff --git a/include/linux/regmap.h b/include/linux/regmap.h > index 4149f1a..3e1a2e4 100644 > --- a/include/linux/regmap.h > +++ b/include/linux/regmap.h > @@ -423,6 +423,8 @@ bool regmap_check_range_table(struct regmap *map, > unsigned int reg, > > int regmap_register_patch(struct regmap *map, const struct reg_default *regs, > int num_regs); > +int regmap_parse_val(struct regmap *map, const void *buf, > + unsigned int *val); > > static inline bool regmap_reg_in_range(unsigned int reg, > const struct regmap_range *range) > @@ -695,6 +697,13 @@ static inline int regmap_register_patch(struct regmap > *map, > return -EINVAL; > } > > +static inline int regmap_parse_val(struct regmap *map, const void *buf, > + unsigned int *val) > +{ > + WARN_ONCE(1, "regmap API is disabled"); > + return -EINVAL; > +} > + > static inline struct regmap *dev_get_regmap(struct device *dev, > const char *name) > { > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/