On Thu, 1 Oct 2015, Mark Brown wrote:

> On Thu, Oct 01, 2015 at 02:33:06AM -0400, j...@ringle.org wrote:
> 
> > @@ -2509,6 +2510,10 @@ static int _regmap_update_bits(struct regmap *map, 
> > unsigned int reg,
> >     int ret;
> >     unsigned int tmp, orig;
> >  
> > +   if (map->reg_update_bits)
> > +           return map->reg_update_bits(map->bus_context, reg, mask, val,
> > +                                       change, force_write);
> > +
> >     ret = _regmap_read(map, reg, &orig);
> >     if (ret != 0)
> >             return ret;
> 
> This completely bypasses and therefore breaks the cache infrastructure.
> 

Hi Mark,

Right after sending the v2 patch, I realized that calling the 
custom reg_update_bits would only be applicable for registers that are 
marked as volatile. Would the following solution be acceptable (it would 
also simplify the regmap_update_bits in the encx24j600 driver):

        if (regmap_volatile(map, reg) && map->reg_update_bits) {
                return map->reg_update_bits(map->bus_context, reg, mask, 
                                            val, change, force_write);
                
The cache state should not matter for volatile registers, right?

-Jon
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to