Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> writes: > This was removed in commit 478ffad6d690 ("drm/i915: drop > engine_pin/unpin_breadcrumbs_irq") as the last user had been removed, > but now there is a promise of a new user in the next patch. > > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> Reviewed-by: Mika Kuoppala <mika.kuoppala@xxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/i915/gt/intel_breadcrumbs.c | 22 +++++++++++++++++++++ > drivers/gpu/drm/i915/gt/intel_engine.h | 3 +++ > 2 files changed, 25 insertions(+) > > diff --git a/drivers/gpu/drm/i915/gt/intel_breadcrumbs.c b/drivers/gpu/drm/i915/gt/intel_breadcrumbs.c > index d907d538176e..03c14ab86d95 100644 > --- a/drivers/gpu/drm/i915/gt/intel_breadcrumbs.c > +++ b/drivers/gpu/drm/i915/gt/intel_breadcrumbs.c > @@ -220,6 +220,28 @@ static void signal_irq_work(struct irq_work *work) > } > } > > +void intel_engine_pin_breadcrumbs_irq(struct intel_engine_cs *engine) > +{ > + struct intel_breadcrumbs *b = &engine->breadcrumbs; > + > + spin_lock_irq(&b->irq_lock); > + if (!b->irq_enabled++) > + irq_enable(engine); > + GEM_BUG_ON(!b->irq_enabled); /* no overflow! */ > + spin_unlock_irq(&b->irq_lock); > +} > + > +void intel_engine_unpin_breadcrumbs_irq(struct intel_engine_cs *engine) > +{ > + struct intel_breadcrumbs *b = &engine->breadcrumbs; > + > + spin_lock_irq(&b->irq_lock); > + GEM_BUG_ON(!b->irq_enabled); /* no underflow! */ > + if (!--b->irq_enabled) > + irq_disable(engine); > + spin_unlock_irq(&b->irq_lock); > +} > + > static bool __intel_breadcrumbs_arm_irq(struct intel_breadcrumbs *b) > { > struct intel_engine_cs *engine = > diff --git a/drivers/gpu/drm/i915/gt/intel_engine.h b/drivers/gpu/drm/i915/gt/intel_engine.h > index 791897f8d847..043462b6ce1f 100644 > --- a/drivers/gpu/drm/i915/gt/intel_engine.h > +++ b/drivers/gpu/drm/i915/gt/intel_engine.h > @@ -226,6 +226,9 @@ void intel_engine_init_execlists(struct intel_engine_cs *engine); > void intel_engine_init_breadcrumbs(struct intel_engine_cs *engine); > void intel_engine_fini_breadcrumbs(struct intel_engine_cs *engine); > > +void intel_engine_pin_breadcrumbs_irq(struct intel_engine_cs *engine); > +void intel_engine_unpin_breadcrumbs_irq(struct intel_engine_cs *engine); > + > void intel_engine_disarm_breadcrumbs(struct intel_engine_cs *engine); > > static inline void > -- > 2.20.1 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/intel-gfx _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx