Re: [PATCH v2 3/9] irq/irq_sim: provide irq_sim_fire_type()

From: Bartosz Golaszewski
Date: Fri Feb 01 2019 - 06:03:12 EST


wt., 29 sty 2019 o 13:55 Uwe Kleine-KÃnig
<u.kleine-koenig@xxxxxxxxxxxxxx> napisaÅ(a):
>
> On Tue, Jan 29, 2019 at 12:01:37PM +0100, Bartosz Golaszewski wrote:
> > wt., 29 sty 2019 o 10:07 Uwe Kleine-KÃnig
> > <u.kleine-koenig@xxxxxxxxxxxxxx> napisaÅ(a):
> > >
> > > Hello Bartosz,
> > >
> > > On Tue, Jan 29, 2019 at 09:44:05AM +0100, Bartosz Golaszewski wrote:
> > > > -void irq_sim_fire(struct irq_sim *sim, unsigned int offset)
> > > > +void irq_sim_fire_type(struct irq_sim *sim,
> > > > + unsigned int offset, unsigned int type)
> > > > {
> > > > struct irq_sim_irq_ctx *ctx = irq_sim_get_ctx(sim, offset);
> > > >
> > > > - if (ctx->enabled) {
> > > > + /* Only care about relevant flags. */
> > > > + type &= IRQ_TYPE_SENSE_MASK;
> > > > +
> > > > + if (ctx->enabled && (ctx->type & type)) {
> > > > set_bit(offset, sim->work_ctx.pending);
> > > > irq_work_queue(&sim->work_ctx.work);
> > > > }
> > > > }
> > > > -EXPORT_SYMBOL_GPL(irq_sim_fire);
> > > > +EXPORT_SYMBOL_GPL(irq_sim_fire_type);
> > >
> > > This looks better than the previous variant. I wonder if it would be
> > > still more sensible to have type only in the mockup driver. But I don't
> > > have the complete picture here and it might be easier this way.
> > >
> >
> > I'm afraid I don't follow. Wasn't that the way it was done in v1?
>
> No, in v1 you already had "type" in the irq_sim driver and the logic if
> the irq should trigger in mockup. My wondering is about having both in
> the mockup driver.
>
> Then you have the tracking of the line's level and the logic if it should
> trigger an irq in a single place.
>
> But as I said, I'm not sure if this is better than your proposed
> solution in v2.
>

I think this a good compromise in case some other user would need it.
If there are no major objections to it, I'd like to keep it that way.

Bart