On Wed, 01 May 2024 13:17:55 +0200, Simon Trimmer wrote: > @@ -964,6 +1011,14 @@ int cs35l56_hda_common_probe(struct cs35l56_hda *cs35l56, int hid, int id) > mutex_init(&cs35l56->base.irq_lock); > dev_set_drvdata(cs35l56->base.dev, cs35l56); > > + cs35l56->dsp_wq = create_singlethread_workqueue("cs35l56-dsp"); > + if (!cs35l56->dsp_wq) { > + ret = -ENOMEM; > + goto err; > + } Do we really need a dedicated workqueue? In most usages, simple schedule_work*() works fine and is recommended. thanks, Takashi