• Bhaktipriya Shridhar's avatar
    ALSA: sh: aica: Remove deprecated create_workqueue · 43aa56d9
    Bhaktipriya Shridhar authored
    System workqueues have been able to handle high level of concurrency
    for a long time now and there's no reason to use dedicated workqueues
    just to gain concurrency. Since aica_queue for AICA sound
    driver has workitem dreamcastcard->spu_dma_work (maps to run_spu_dma)
    which is involved in aica dma transfers and is not being used on a memory
    reclaim path, dedicated aica_queue has been replaced with the
    use of system_wq.
    
    Unlike a dedicated per-cpu workqueue created with create_workqueue(),
    system_wq allows multiple work items to overlap executions even on
    the same CPU; however, a per-cpu workqueue doesn't have any CPU
    locality or global ordering guarantees unless the target CPU is
    explicitly specified and thus the increase of local concurrency
    shouldn't make any difference.
    
    Since the work items could be pending, flush_work() has been used in
    snd_aicapcm_pcm_close() to ensure that there is no pending task while
    disconnecting the driver.
    Signed-off-by: default avatarBhaktipriya Shridhar <bhaktipriya96@gmail.com>
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    43aa56d9
aica.c 18 KB