• Takashi Sakamoto's avatar
    ALSA: firewire-lib: Add support for deferred transaction · 00a7bb81
    Takashi Sakamoto authored
    Some devices based on BeBoB use this type of AV/C transaction.
    
    'Deferred Transaction' is defined in 'AV/C Digital Interface Command Set
    General Specification' and is used by targets to make a response deferred
    during processing it.
    
    If a target may not be able to complete a command within 100msec since
    receiving the command, then the target shall return INTERIM response,
    to which final response will follow later. CONTROL/NOTIFY commands are
    allowed for deferred transaction.
    
    In the specification, devices allow to send INTERIM response just one time.
    But this commit allows to handle several INTERIM response with two reasons.
    One reason is to simplify codes, and another reason is to prepare for
    devices which is out of specification.
    
    There is an issue. In the specification, the interval between INTERIM
    response and final response is 'Unspecified interval'. The specification
    depends on each subunit specification for this interval.
    
    But we promise to finish this function for caller. In this reason, I use
    FCP_TIMEOUT_MS for this interval. Currently it's 125msec. When we find
    devices which needs more time for this interval, then let us add some codes
    to apply more interval for 'Unspecified interval'.
    Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    00a7bb81
fcp.c 6.64 KB