Thanks for the clarification, Takashi. But just wondering how would one
pass
on the sync_irq when the snd_card is created? Typically in the case of
the
Intel platforms, the card->dev points to the platform device for the
machine
driver that registers the card and the PCI device is the parent of the
machine
drv platform device.
It's completely up to the driver implementation :) You can implement the own sync_stop ops if that's easier, too.
I think this would make sense in the case of the SOF driver and we'd probably need to just call synchronize_irq() in the sync_stop() operation. With this change, we can probably remove the workaround we have to address the issue we were facing during snd_pcm_period_elapsed().
I can give this a try. We might need to run some stress tests to make sure it doesn't break anything.
Thanks, Ranjani