Re: [PATCH 6/6 v3] regmap: Incorporate the regcache core into regmap

From: Mark Brown
Date: Thu Sep 15 2011 - 18:57:32 EST


On Thu, Sep 15, 2011 at 05:19:32PM +0200, Lars-Peter Clausen wrote:

> > + if (!map->cache_bypass) {
> > + ret = regcache_write(map, reg, val);
> > + if (ret < 0) {
> > + mutex_unlock(&map->lock);
> > + return ret;
> > + }
> > + if (map->cache_only) {
> > + mutex_unlock(&map->lock);
> > + return 0;
> > + }
> > + }

> Would it make sense to move this into _regmap_write ? In that case the code
> wouldn't have to be duplicated in regmap_update_bits and as a bonus it wouldn't
> have to deal with the mutex either.

That does seem sensible, yes.

> > + if (!map->cache_bypass) {
> > + ret = regcache_read(map, reg, val);
> > + if (!ret) {
> > + mutex_unlock(&map->lock);
> > + return 0;
> > + }

> So in case regmap_readable is not true for this register regcache_read will
> return -EIO and we'll fallback to an uncached read. This doesn't make sense in
> my opinion. Or what are the except semantics regmap_readable supposed to be?

It's a bit interesting but falling back to asking the hardware is
probably the right thing to do for cases where you're doing things like
using unspecified registers to activate undocumented features - the
register isn't really documented as being there and may do odd things
but if the device manufacturer gives you an approved sequence then you
can probably use it safely.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/