• Takashi Sakamoto's avatar
    ALSA: firewire-lib: compute extra delay for runtime of PCM substream · af13842c
    Takashi Sakamoto authored
    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 baa914cd ("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 f0117128 ("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: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
    Link: https://lore.kernel.org/r/20230110134933.322794-4-o-takashi@sakamocchi.jpSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    af13842c
amdtp-stream.c 60.2 KB