On Fri, Apr 10, 2026 at 09:59:44PM -0500, Bjorn Andersson wrote:
> On Thu, Apr 09, 2026 at 01:52:27AM -0700, Jingyi Wang wrote:
> > Subsystems can be brought out of reset by entities such as bootloaders.
> > As the irq enablement could be later than subsystem bring up, the state
> > of subsystem should be checked by reading SMP2P bits and performing ping
> > test.
> > 
> 
> I still don't understand.
> 
> Are you saying that devm_request_threaded_irq() will succeed and then
> calling irq_get_irqchip_state() will not work? Or are you saying that
> SMP2P driver isn't reliable and we're loosing the ready or fatal bits?

Hi Bjorn,

After an offline discussion with Jingyi, I understand that we are trying
to provide a stronger check (ping-pong) than SMP2P ready bit to make sure
the subsystem is alive. SMP2P ready bit is a pending state which is not
necessarily reflecting the current subsystem state. There was ever some
corner case seen on production environment (with downstream kernel),
where ready bit is seen but the subsystem is in an abnormal state, where
the subsystem still feeds watchdog but stops responding to any SMP2P
request. A ping-pong test could help detect that.

But since "pong" is not supported by every subsystem, e.g. ADSPs on
Nord, we should do the test only for subsystems that support "pong".

Shawn

Reply via email to