Hi Florian, Thomas, On Tue, Jul 21, 2015 at 11:24:29AM -0700, Florian Fainelli wrote: > On 20/06/15 07:11, Thomas Gleixner wrote: > > On Fri, 19 Jun 2015, Brian Norris wrote: ... > > I really don't want to set a precedent for random (*foo)(*bar) > > callbacks. > > > >> + > >> + if (ct->chip.chip_suspend) > >> + ct->chip.chip_suspend(gc); > > > > So wouldn't it be the more intuitive solution to make this a callback > > in the struct gc itself? > > Brian can correct me, but his approach is more generic, if there is > another irqchip driver needing a similar infrastructure, this would be > already there, and directly usable. Maybe all we need to is to change > the chip_suspend/resume arguments to pass a reference to irq_chip instead? I believe Thomas is right. We could just make these into irq_chip_generic callbacks, which would probably be the right abstraction level. Wouldn't be much code change from this submission, AFAICT. (Sorry for dropping the ball on this one.) Brian