Re: [PATCH 1/5] mfd: tps65218: make INT[12] and STATUS registers volatile

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Tue, Jan 06, 2015 at 11:37:34AM -0600, Felipe Balbi wrote:
> On Fri, Dec 26, 2014 at 01:28:20PM -0600, Felipe Balbi wrote:
> > STATUS register can be modified by the HW, so we
> > should bypass cache because of that.
> > 
> > In the case of INT[12] registers, they are the ones
> > that actually clear the IRQ source at the time they
> > are read. If we rely on the cache for them, we will
> > never be able to clear the interrupt, which will cause
> > our IRQ line to be disabled due to IRQ throttling.
> > 
> > Fixes: 44b4dc6 mfd: tps65218: Add driver for the TPS65218 PMIC
> > Cc: <stable@xxxxxxxxxxxxxxx> # v3.15+
> > Cc: Keerthy <j-keerthy@xxxxxx>
> > Cc: Lee Jones <lee.jones@xxxxxxxxxx>
> > Signed-off-by: Felipe Balbi <balbi@xxxxxx>
> 
> ping

another ping. Without this and the following patch TPS65218 power button
driver which was already applied by Dmitry, won't work.

> > ---
> >  drivers/mfd/tps65218.c | 11 +++++++++++
> >  1 file changed, 11 insertions(+)
> > 
> > diff --git a/drivers/mfd/tps65218.c b/drivers/mfd/tps65218.c
> > index 0d256cb..2243f75 100644
> > --- a/drivers/mfd/tps65218.c
> > +++ b/drivers/mfd/tps65218.c
> > @@ -125,10 +125,21 @@ int tps65218_clear_bits(struct tps65218 *tps, unsigned int reg,
> >  }
> >  EXPORT_SYMBOL_GPL(tps65218_clear_bits);
> >  
> > +static const struct regmap_range tps65218_yes_ranges[] = {
> > +	regmap_reg_range(TPS65218_REG_INT1, TPS65218_REG_INT2),
> > +	regmap_reg_range(TPS65218_REG_STATUS, TPS65218_REG_STATUS),
> > +};
> > +
> > +static const struct regmap_access_table tps65218_volatile_table = {
> > +	.yes_ranges = tps65218_yes_ranges,
> > +	.n_yes_ranges = ARRAY_SIZE(tps65218_yes_ranges),
> > +};
> > +
> >  static struct regmap_config tps65218_regmap_config = {
> >  	.reg_bits = 8,
> >  	.val_bits = 8,
> >  	.cache_type = REGCACHE_RBTREE,
> > +	.volatile_table = &tps65218_volatile_table,
> >  };
> >  
> >  static const struct regmap_irq tps65218_irqs[] = {
> > -- 
> > 2.2.0
> > 
> 
> -- 
> balbi



-- 
balbi

Attachment: signature.asc
Description: Digital signature


[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]
  Powered by Linux