linux/sound/firewire
Takashi Sakamoto af13842cad ALSA: firewire-lib: compute extra delay for runtime of PCM substream
All drivers in ALSA firewire stack have never reported extra delay for
the runtime of PCM substream. There is some reason, but the main reason
is that the meaning of extra delay differs depending on driver design,
especially for the packet-oriented driver.

Here I define the extra delay for the case of IEC 61883-1/6. It is the
number of PCM frames transferred or should be transferred between the
current isochronous cycle and the isochronous cycle to which the latest
isochronous packet arrived (in IR context) or is scheduled (in IT context).

A commit baa914cd81 ("firewire: add kernel API to access CYCLE_TIME
register") allow unit drivers to read CYCLE_TIME of 1394 OHCI controller.
It allows the drivers to compute the current isochronous cycle.

Additionally, a commit f011712887 ("ALSA: firewire-lib: keep history to
process isochronous packet") enables to save the history processing
packets. It allows the driver to estimate the total number of data blocks
in packets arriving shortly, or calculate the total number of data blocks
in scheduled packets.

Now it is ready. This commit implements the computation of the extra delay.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Link: https://lore.kernel.org/r/20230110134933.322794-4-o-takashi@sakamocchi.jp
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2023-01-12 12:14:52 +01:00
..
bebob ALSA: firewire: Replace runtime->status->state reference to runtime->state 2022-09-27 08:47:25 +02:00
dice sound updates for 6.2-rc1 2022-12-13 11:27:26 -08:00
digi00x ALSA: firewire-lib: obsolete return value from context payload processing layer 2023-01-12 12:14:50 +01:00
fireface ALSA: firewire-lib: obsolete return value from context payload processing layer 2023-01-12 12:14:50 +01:00
fireworks ALSA: firewire: Replace runtime->status->state reference to runtime->state 2022-09-27 08:47:25 +02:00
motu ALSA: firewire-lib: obsolete return value from context payload processing layer 2023-01-12 12:14:50 +01:00
oxfw ALSA: firewire: Replace runtime->status->state reference to runtime->state 2022-09-27 08:47:25 +02:00
tascam ALSA: firewire-lib: obsolete return value from context payload processing layer 2023-01-12 12:14:50 +01:00
amdtp-am824.c ALSA: firewire-lib: obsolete return value from context payload processing layer 2023-01-12 12:14:50 +01:00
amdtp-am824.h ALSA: firewire-lib/motu: use int type for the value of bitwise OR with enumerator-constant 2021-05-18 12:21:52 +02:00
amdtp-stream-trace.h ALSA: firewire-lib: extend tracepoints event including CYCLE_TIME of 1394 OHCI 2023-01-10 09:34:47 +01:00
amdtp-stream.c ALSA: firewire-lib: compute extra delay for runtime of PCM substream 2023-01-12 12:14:52 +01:00
amdtp-stream.h ALSA: firewire-lib: obsolete return value from context payload processing layer 2023-01-12 12:14:50 +01:00
cmp.c ALSA: firewire: fix kernel-doc 2020-07-07 12:09:32 +02:00
cmp.h ALSA: firewire-lib: split allocation of isochronous resources from establishment of connection 2019-06-17 08:18:36 +02:00
fcp.c ALSA: firewire-lib: fix uninitialized flag for AV/C deferred transaction 2022-03-04 17:23:21 +01:00
fcp.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
isight.c ALSA: firewire: Drop superfluous ioctl PCM ops 2019-12-11 07:25:27 +01:00
iso-resources.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 345 2019-06-05 17:37:08 +02:00
iso-resources.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
Kconfig ALSA: firewire-motu: add support for MOTU Track 16 2021-11-08 13:49:27 +01:00
lib.c ALSA: firewire-lib: delete unused kernel API 2021-06-07 17:14:54 +02:00
lib.h ALSA: firewire-lib: delete unused kernel API 2021-06-07 17:14:54 +02:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
packets-buffer.c ALSA: firewire: fix a memory leak bug 2019-08-08 11:12:26 +02:00
packets-buffer.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00