Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

ASoC: replace use of system_wq with system_dfl_wq

Currently if a user enqueue a work item using schedule_delayed_work() the
used wq is "system_wq" (per-cpu wq) while queue_delayed_work() use
WORK_CPU_UNBOUND (used when a cpu is not specified). The same applies to
schedule_work() that is using system_wq and queue_work(), that makes use
again of WORK_CPU_UNBOUND.

This lack of consistentcy cannot be addressed without refactoring the API.

system_wq is a per-CPU worqueue, replaced by system_percpu_wq. Despite that,
system_wq in this change has been replaced by system_dfl_wq, because there
aren't per-cpu variables.

The old wq will be kept for a few release cylces.

Suggested-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Marco Crivellari <marco.crivellari@suse.com>
Link: https://patch.msgid.link/20250929155053.400342-2-marco.crivellari@suse.com
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Marco Crivellari and committed by
Mark Brown
0b0eb770 5e537031

+20 -20
+1 -1
sound/soc/codecs/aw88081.c
··· 779 779 if (sync_start == AW88081_SYNC_START) 780 780 aw88081_start_pa(aw88081); 781 781 else 782 - queue_delayed_work(system_wq, 782 + queue_delayed_work(system_dfl_wq, 783 783 &aw88081->start_work, 784 784 AW88081_START_WORK_DELAY_MS); 785 785 }
+1 -1
sound/soc/codecs/aw88166.c
··· 1310 1310 if (sync_start == AW88166_SYNC_START) 1311 1311 aw88166_start_pa(aw88166); 1312 1312 else 1313 - queue_delayed_work(system_wq, 1313 + queue_delayed_work(system_dfl_wq, 1314 1314 &aw88166->start_work, 1315 1315 AW88166_START_WORK_DELAY_MS); 1316 1316 }
+1 -1
sound/soc/codecs/aw88261.c
··· 705 705 if (sync_start == AW88261_SYNC_START) 706 706 aw88261_start_pa(aw88261); 707 707 else 708 - queue_delayed_work(system_wq, 708 + queue_delayed_work(system_dfl_wq, 709 709 &aw88261->start_work, 710 710 AW88261_START_WORK_DELAY_MS); 711 711 }
+1 -1
sound/soc/codecs/aw88395/aw88395.c
··· 75 75 if (sync_start == AW88395_SYNC_START) 76 76 aw88395_start_pa(aw88395); 77 77 else 78 - queue_delayed_work(system_wq, 78 + queue_delayed_work(system_dfl_wq, 79 79 &aw88395->start_work, 80 80 AW88395_START_WORK_DELAY_MS); 81 81 }
+1 -1
sound/soc/codecs/aw88399.c
··· 1340 1340 if (sync_start == AW88399_SYNC_START) 1341 1341 aw88399_start_pa(aw88399); 1342 1342 else 1343 - queue_delayed_work(system_wq, 1343 + queue_delayed_work(system_dfl_wq, 1344 1344 &aw88399->start_work, 1345 1345 AW88399_START_WORK_DELAY_MS); 1346 1346 }
+1 -1
sound/soc/codecs/cs42l43-jack.c
··· 300 300 { 301 301 struct cs42l43_codec *priv = data; 302 302 303 - queue_delayed_work(system_wq, &priv->bias_sense_timeout, 303 + queue_delayed_work(system_dfl_wq, &priv->bias_sense_timeout, 304 304 msecs_to_jiffies(1000)); 305 305 306 306 return IRQ_HANDLED;
+2 -2
sound/soc/codecs/cs42l43.c
··· 161 161 priv->hp_ilimit_count--; 162 162 163 163 if (priv->hp_ilimit_count) 164 - queue_delayed_work(system_wq, &priv->hp_ilimit_clear_work, 164 + queue_delayed_work(system_dfl_wq, &priv->hp_ilimit_clear_work, 165 165 msecs_to_jiffies(CS42L43_HP_ILIMIT_DECAY_MS)); 166 166 167 167 snd_soc_dapm_mutex_unlock(dapm); ··· 179 179 180 180 if (priv->hp_ilimit_count < CS42L43_HP_ILIMIT_MAX_COUNT) { 181 181 if (!priv->hp_ilimit_count) 182 - queue_delayed_work(system_wq, &priv->hp_ilimit_clear_work, 182 + queue_delayed_work(system_dfl_wq, &priv->hp_ilimit_clear_work, 183 183 msecs_to_jiffies(CS42L43_HP_ILIMIT_DECAY_MS)); 184 184 185 185 priv->hp_ilimit_count++;
+6 -6
sound/soc/codecs/es8326.c
··· 812 812 press_count = 0; 813 813 } 814 814 button_to_report = cur_button; 815 - queue_delayed_work(system_wq, &es8326->button_press_work, 815 + queue_delayed_work(system_dfl_wq, &es8326->button_press_work, 816 816 msecs_to_jiffies(35)); 817 817 } else if (prev_button != cur_button) { 818 818 /* mismatch, detect again */ 819 819 prev_button = cur_button; 820 - queue_delayed_work(system_wq, &es8326->button_press_work, 820 + queue_delayed_work(system_dfl_wq, &es8326->button_press_work, 821 821 msecs_to_jiffies(35)); 822 822 } else { 823 823 /* released or no pressed */ ··· 912 912 (ES8326_INT_SRC_PIN9 | ES8326_INT_SRC_BUTTON)); 913 913 regmap_write(es8326->regmap, ES8326_SYS_BIAS, 0x1f); 914 914 regmap_update_bits(es8326->regmap, ES8326_HP_DRIVER_REF, 0x0f, 0x0d); 915 - queue_delayed_work(system_wq, &es8326->jack_detect_work, 915 + queue_delayed_work(system_dfl_wq, &es8326->jack_detect_work, 916 916 msecs_to_jiffies(400)); 917 917 es8326->hp = 1; 918 918 goto exit; ··· 923 923 regmap_write(es8326->regmap, ES8326_INT_SOURCE, 924 924 (ES8326_INT_SRC_PIN9 | ES8326_INT_SRC_BUTTON)); 925 925 es8326_enable_micbias(es8326->component); 926 - queue_delayed_work(system_wq, &es8326->button_press_work, 10); 926 + queue_delayed_work(system_dfl_wq, &es8326->button_press_work, 10); 927 927 goto exit; 928 928 } 929 929 if ((iface & ES8326_HPBUTTON_FLAG) == 0x01) { ··· 958 958 goto out; 959 959 960 960 if (es8326->jack->status & SND_JACK_HEADSET) 961 - queue_delayed_work(system_wq, &es8326->jack_detect_work, 961 + queue_delayed_work(system_dfl_wq, &es8326->jack_detect_work, 962 962 msecs_to_jiffies(10)); 963 963 else 964 - queue_delayed_work(system_wq, &es8326->jack_detect_work, 964 + queue_delayed_work(system_dfl_wq, &es8326->jack_detect_work, 965 965 msecs_to_jiffies(300)); 966 966 967 967 out:
+3 -3
sound/soc/codecs/rt5663.c
··· 1859 1859 dev_dbg(regmap_get_device(rt5663->regmap), "%s IRQ queue work\n", 1860 1860 __func__); 1861 1861 1862 - queue_delayed_work(system_wq, &rt5663->jack_detect_work, 1862 + queue_delayed_work(system_dfl_wq, &rt5663->jack_detect_work, 1863 1863 msecs_to_jiffies(250)); 1864 1864 1865 1865 return IRQ_HANDLED; ··· 1974 1974 cancel_delayed_work_sync( 1975 1975 &rt5663->jd_unplug_work); 1976 1976 } else { 1977 - queue_delayed_work(system_wq, 1977 + queue_delayed_work(system_dfl_wq, 1978 1978 &rt5663->jd_unplug_work, 1979 1979 msecs_to_jiffies(500)); 1980 1980 } ··· 2024 2024 SND_JACK_BTN_0 | SND_JACK_BTN_1 | 2025 2025 SND_JACK_BTN_2 | SND_JACK_BTN_3); 2026 2026 } else { 2027 - queue_delayed_work(system_wq, &rt5663->jd_unplug_work, 2027 + queue_delayed_work(system_dfl_wq, &rt5663->jd_unplug_work, 2028 2028 msecs_to_jiffies(500)); 2029 2029 } 2030 2030 }
+1 -1
sound/soc/intel/boards/sof_es8336.c
··· 163 163 164 164 priv->speaker_en = !SND_SOC_DAPM_EVENT_ON(event); 165 165 166 - queue_delayed_work(system_wq, &priv->pcm_pop_work, msecs_to_jiffies(70)); 166 + queue_delayed_work(system_dfl_wq, &priv->pcm_pop_work, msecs_to_jiffies(70)); 167 167 return 0; 168 168 } 169 169
+1 -1
sound/soc/sof/intel/cnl.c
··· 329 329 * CTX_SAVE IPC, which is sent before the DSP enters D3. 330 330 */ 331 331 if (hdr->cmd != (SOF_IPC_GLB_PM_MSG | SOF_IPC_PM_CTX_SAVE)) 332 - mod_delayed_work(system_wq, &hdev->d0i3_work, 332 + mod_delayed_work(system_dfl_wq, &hdev->d0i3_work, 333 333 msecs_to_jiffies(SOF_HDA_D0I3_WORK_DELAY_MS)); 334 334 335 335 return 0;
+1 -1
sound/soc/sof/intel/hda-ipc.c
··· 96 96 if (hda_dsp_ipc4_pm_msg(msg_data->primary)) 97 97 return; 98 98 99 - mod_delayed_work(system_wq, &hdev->d0i3_work, 99 + mod_delayed_work(system_dfl_wq, &hdev->d0i3_work, 100 100 msecs_to_jiffies(SOF_HDA_D0I3_WORK_DELAY_MS)); 101 101 } 102 102 EXPORT_SYMBOL_NS(hda_dsp_ipc4_schedule_d0i3_work, "SND_SOC_SOF_INTEL_HDA_COMMON");