Re: [PATCH v2 8/9] ASoC: SOF: Intel: Remove deferred probe for SOF

From: Takashi Iwai
Date: Tue Jul 25 2023 - 06:37:36 EST


On Tue, 25 Jul 2023 12:29:07 +0200,
Maarten Lankhorst wrote:
>
> Hey,
>
> On 2023-07-24 13:32, Pierre-Louis Bossart wrote:
> >
> >
> > On 7/19/23 18:41, Maarten Lankhorst wrote:
> >> This was only used to allow modprobing i915, by converting to the
> >> -EPROBE_DEFER mechanism, it can be completely removed, and is in
> >> fact counterproductive since -EPROBE_DEFER otherwise won't be
> >> handled correctly.
> >
> > I personally remember only that the request_module("i915") was the main
> > motivation for the use of the workqueue, but when it comes to the
> > HDaudio codec management we don't even know what we don't know.
> >
> > I am a bit worried that the snd-hda-intel driver keeps the workqueue for
> > HDaudio codec initialization, and this patch removes the workqueue
> > completely for SOF. That doesn't seem right. Either both drivers need a
> > workqueue or none need a workqueue.
> >
> > Maybe what we need is to move the i915/xe initialization out of the
> > workqueue, and see in a second pass if that workqueue can be safely
> > removed from the SOF driver?
> >
> As I mentioned in some of the other sound driver conversions. I
> believe it's possible to completely kill off most workqueues.
>
> However, I don´t have the hardware or knowledge to test it. I saw
> that the SOF had the non-workqueue path already, so it felt less risky
> to simply convert it to always use that path.
>
> avs/skylake drivers should be easy to convert too. This is why I left
> the comment: "Removing the workqueue would simplify init even further,
> but is left as exercise for the reviewer."
>
> HDA-intel has this retry-probe logic used on AMD's,
> which makes me more hesitant to convert it.

Yes, HDA-Intel requires either a workqueue or async firmware-loader
callback because there is some codec module-autoload mechanism that
may happen during the probe phase. It's not only on AMD, but it's
required in general for all codecs.


Takashi