Takashi Iwai [Thu, 12 Dec 2019 19:11:01 +0000 (20:11 +0100)]
ALSA: hda: Unify get_response handling
Now most of the get_response handling became quite similar between
HDA-core and legacy drivers, and the only differences are:
- the handling of extra-long polling delay for some codecs
- the debug message for the stalled communication
and both are worth to share in the common code.
This patch unifies the code into snd_hdac_bus_get_response(), and use
this from the legacy get_response callback. It results in a good
amount of code reduction in the end.
Takashi Iwai [Thu, 12 Dec 2019 19:11:00 +0000 (20:11 +0100)]
ALSA: hda: Use waitqueue for RIRB in HDA-core helper, too
This patch implements the same logic that was done for the legacy
HD-audio controller driver by the commit 2e83a9db16aa ("ALSA: hda: Use
standard waitqueue for RIRB wakeup") to the HDA-core helper code,
too. This makes snd_hdac_bus_get_response() waiting for the response
with bus->rirb_wq instead of polling when bus->polling is false.
It'll save both CPU time and response latency.
Forgot to remove the variable declaration as well in the last commit.
sound/pci/hda/hda_tegra.c: In function 'hda_tegra_runtime_suspend':
sound/pci/hda/hda_tegra.c:169:19: warning: unused variable 'bus' [-Wunused-variable]
Takashi Iwai [Tue, 10 Dec 2019 06:34:53 +0000 (07:34 +0100)]
ALSA: vxpocket: Support PCM sync_stop
The driver invokes snd_pcm_period_elapsed() simply from the threaded
interrupt handler. Set card->sync_irq for enabling the missing
sync_stop PCM operation.
Takashi Iwai [Tue, 10 Dec 2019 06:34:52 +0000 (07:34 +0100)]
ALSA: pdaudiocf: Support PCM sync_stop
The driver invokes snd_pcm_period_elapsed() simply from the threaded
interrupt handler. Set card->sync_irq for enabling the missing
sync_stop PCM operation.
Takashi Iwai [Tue, 10 Dec 2019 06:34:51 +0000 (07:34 +0100)]
ALSA: vx222: Support PCM sync_stop
The driver invokes snd_pcm_period_elapsed() simply from the threaded
interrupt handler. Set card->sync_irq for enabling the missing
sync_stop PCM operation.
Takashi Iwai [Tue, 10 Dec 2019 06:34:50 +0000 (07:34 +0100)]
ALSA: pcxhr: Support PCM sync_stop
The driver invokes snd_pcm_period_elapsed() simply from the threaded
interrupt handler. Set card->sync_irq for enabling the missing
sync_stop PCM operation.
Takashi Iwai [Tue, 10 Dec 2019 06:34:49 +0000 (07:34 +0100)]
ALSA: mixart: Support PCM sync_stop
The driver invokes snd_pcm_period_elapsed() simply from the threaded
interrupt handler. Set card->sync_irq for enabling the missing
sync_stop PCM operation.
Takashi Iwai [Tue, 10 Dec 2019 06:34:48 +0000 (07:34 +0100)]
ALSA: lx6464es: Support PCM sync_stop
The driver invokes snd_pcm_period_elapsed() simply from the threaded
interrupt handler. Set card->sync_irq for enabling the missing
sync_stop PCM operation.
Takashi Iwai [Tue, 10 Dec 2019 06:34:36 +0000 (07:34 +0100)]
ALSA: via82xx: Support PCM sync_stop
The driver invokes snd_pcm_period_elapsed() simply from the interrupt
handler. Set card->sync_irq for enabling the missing sync_stop PCM
operation, as well as removing the superfluous synchronize_irq()
call.
Takashi Iwai [Tue, 10 Dec 2019 06:34:28 +0000 (07:34 +0100)]
ALSA: oxygen: Support PCM sync_stop
The driver invokes snd_pcm_period_elapsed() simply from the interrupt
handler. Set card->sync_irq for enabling the missing sync_stop PCM
operation, as well as removing the superfluous synchronize_irq()
call.
Takashi Iwai [Tue, 10 Dec 2019 06:34:27 +0000 (07:34 +0100)]
ALSA: nm256: Support PCM sync_stop
The driver invokes snd_pcm_period_elapsed() simply from the interrupt
handler. Set card->sync_irq for enabling the missing sync_stop PCM
operation. It's cleared and reset dynamically at IRQ re-acquiring for
the PM resume, too.
Takashi Iwai [Tue, 10 Dec 2019 06:34:25 +0000 (07:34 +0100)]
ALSA: lola: Support PCM sync_stop
The driver invokes snd_pcm_period_elapsed() simply from the interrupt
handler. Set card->sync_irq for enabling the missing sync_stop PCM
operation, as well as removing the superfluous synchronize_irq()
call.
Takashi Iwai [Tue, 10 Dec 2019 06:34:23 +0000 (07:34 +0100)]
ALSA: intel8x0: Support PCM sync_stop
The driver invokes snd_pcm_period_elapsed() simply from the interrupt
handler. Set card->sync_irq for enabling the missing sync_stop PCM
operation. It's cleared and reset dynamically at IRQ re-acquiring for
the PM resume, too.
Takashi Iwai [Tue, 10 Dec 2019 06:34:22 +0000 (07:34 +0100)]
ALSA: ice1724: Support PCM sync_stop
The driver invokes snd_pcm_period_elapsed() simply from the interrupt
handler. Set card->sync_irq for enabling the missing sync_stop PCM
operation, as well as removing the superfluous synchronize_irq()
call.
Takashi Iwai [Tue, 10 Dec 2019 06:34:21 +0000 (07:34 +0100)]
ALSA: ice1712: Support PCM sync_stop
The driver invokes snd_pcm_period_elapsed() simply from the interrupt
handler. Set card->sync_irq for enabling the missing sync_stop PCM
operation, as well as removing the superfluous synchronize_irq()
call.
Takashi Iwai [Tue, 10 Dec 2019 06:34:20 +0000 (07:34 +0100)]
ALSA: hda: Support PCM sync_stop
The driver invokes snd_pcm_period_elapsed() simply from the interrupt
handler. Set card->sync_irq for enabling the missing sync_stop PCM
operation. It's cleared and reset dynamically at IRQ re-acquiring for
the PM resume, too.
Takashi Iwai [Tue, 10 Dec 2019 06:34:18 +0000 (07:34 +0100)]
ALSA: es1968: Support PCM sync_stop
The driver invokes snd_pcm_period_elapsed() simply from the interrupt
handler. Set card->sync_irq for enabling the missing sync_stop PCM
operation, as well as removing the superfluous synchronize_irq()
call.
Takashi Iwai [Tue, 10 Dec 2019 06:34:17 +0000 (07:34 +0100)]
ALSA: es1938: Support PCM sync_stop
The driver invokes snd_pcm_period_elapsed() simply from the interrupt
handler. Set card->sync_irq for enabling the missing sync_stop PCM
operation. It's cleared and reset dynamically at IRQ re-acquiring for
the PM resume, too.
Takashi Iwai [Tue, 10 Dec 2019 06:34:16 +0000 (07:34 +0100)]
ALSA: ens137x: Support PCM sync_stop
The driver invokes snd_pcm_period_elapsed() simply from the interrupt
handler. Set card->sync_irq for enabling the missing sync_stop PCM
operation, as well as removing the superfluous synchronize_irq()
call.
Takashi Iwai [Tue, 10 Dec 2019 06:34:14 +0000 (07:34 +0100)]
ALSA: echoaudio: Support PCM sync_stop
The driver invokes snd_pcm_period_elapsed() simply from the interrupt
handler. Set card->sync_irq for enabling the missing sync_stop PCM
operation. It's cleared and reset dynamically at IRQ re-acquiring for
the PM resume, too.
Takashi Iwai [Tue, 10 Dec 2019 06:34:13 +0000 (07:34 +0100)]
ALSA: ctxfi: Support PCM sync_stop
The driver invokes snd_pcm_period_elapsed() simply from the interrupt
handler. Set card->sync_irq for enabling the missing sync_stop PCM
operation, as well as removing the superfluous synchronize_irq()
call.
Takashi Iwai [Tue, 10 Dec 2019 06:34:12 +0000 (07:34 +0100)]
ALSA: cs5535audio: Support PCM sync_stop
The driver invokes snd_pcm_period_elapsed() simply from the interrupt
handler. Set card->sync_irq for enabling the missing sync_stop PCM
operation, as well as removing the superfluous synchronize_irq()
call.
Takashi Iwai [Tue, 10 Dec 2019 06:34:10 +0000 (07:34 +0100)]
ALSA: cs4281: Support PCM sync_stop
The driver invokes snd_pcm_period_elapsed() simply from the interrupt
handler. Set card->sync_irq for enabling the missing sync_stop PCM
operation, as well as removing the superfluous synchronize_irq()
call.
Takashi Iwai [Tue, 10 Dec 2019 06:34:07 +0000 (07:34 +0100)]
ALSA: bt87x: Support PCM sync_stop
The driver invokes snd_pcm_period_elapsed() simply from the interrupt
handler. Set card->sync_irq for enabling the missing sync_stop PCM
operation, as well as removing the superfluous synchronize_irq()
call.
Takashi Iwai [Tue, 10 Dec 2019 06:34:06 +0000 (07:34 +0100)]
ALSA: azt3328: Support PCM sync_stop
The driver invokes snd_pcm_period_elapsed() simply from the interrupt
handler. Set card->sync_irq for enabling the missing sync_stop PCM
operation, as well as removing the superfluous synchronize_irq()
call.
Takashi Iwai [Tue, 10 Dec 2019 06:34:03 +0000 (07:34 +0100)]
ALSA: atiixp: Support PCM sync_stop
The driver invokes snd_pcm_period_elapsed() simply from the interrupt
handler. Set card->sync_irq for enabling the missing sync_stop PCM
operation, as well as removing the superfluous synchronize_irq()
call.
Takashi Iwai [Tue, 10 Dec 2019 06:34:01 +0000 (07:34 +0100)]
ALSA: ali5451: Support PCM sync_stop
The driver invokes snd_pcm_period_elapsed() simply from the interrupt
handler. Set card->sync_irq for enabling the missing sync_stop PCM
operation, as well as removing the superfluous synchronize_irq()
call.
Takashi Iwai [Tue, 10 Dec 2019 06:11:35 +0000 (07:11 +0100)]
ALSA: asihpi: Drop superfluous ioctl PCM ops
snd_card_asihpi_playback_ioctl() and snd_card_asihpi_capture_ioctl()
do nothing but calling the default handler.
Now PCM core accepts NULL as the default ioctl ops(*), so let's drop
altogether.
Takashi Iwai [Mon, 9 Dec 2019 09:49:43 +0000 (10:49 +0100)]
ALSA: hdml-lpe-audio: Use managed buffer allocation
Clean up the driver with the new managed buffer allocation API.
The superfluous snd_pcm_lib_malloc_pages() and
snd_pcm_lib_free_pages() calls are dropped.
Takashi Iwai [Mon, 9 Dec 2019 09:49:42 +0000 (10:49 +0100)]
ALSA: usb-audio: Use managed buffer allocation
Clean up the driver with the new managed buffer allocation API.
The superfluous snd_pcm_lib_malloc_pages() and
snd_pcm_lib_free_pages() calls are dropped.
Takashi Iwai [Mon, 9 Dec 2019 09:49:41 +0000 (10:49 +0100)]
ALSA: usx2y: Use managed buffer allocation
Clean up the driver with the new managed buffer allocation API.
The superfluous snd_pcm_lib_malloc_pages() and
snd_pcm_lib_free_pages() calls are dropped.
Takashi Iwai [Mon, 9 Dec 2019 09:49:39 +0000 (10:49 +0100)]
ALSA: line6: Use managed buffer allocation
Clean up the drivers with the new managed buffer allocation API.
The superfluous snd_pcm_lib_malloc_pages() and
snd_pcm_lib_free_pages() calls are dropped.
Takashi Iwai [Mon, 9 Dec 2019 09:49:37 +0000 (10:49 +0100)]
ALSA: caiaq: Use managed buffer allocation
Clean up the driver with the new managed buffer allocation API.
The hw_params callback became superfluous and dropped.
The hw_free callback still remains because of the substream
deactivation sync call.
Takashi Iwai [Mon, 9 Dec 2019 09:49:27 +0000 (10:49 +0100)]
ALSA: via82xx: Use managed buffer allocation
Clean up the drivers with the new managed buffer allocation API.
The superfluous snd_pcm_lib_malloc_pages() and
snd_pcm_lib_free_pages() calls are dropped.
Takashi Iwai [Mon, 9 Dec 2019 09:49:26 +0000 (10:49 +0100)]
ALSA: trident: Use managed buffer allocation
Clean up the driver with the new managed buffer allocation API.
The superfluous snd_pcm_lib_malloc_pages() and
snd_pcm_lib_free_pages() calls are dropped.