• Takashi Iwai's avatar
    ALSA: usb-audio: Re-apply implicit feedback mode to Pioneer devices · fd9db105
    Takashi Iwai authored
    Pioneer devices are supposed to be working with the implicit feedback
    mode, but so far the attempt to apply the implicit feedback caused
    issues, hence we explicitly skipped the implicit feedback mode for
    them.  Recently, Geraldo discovered that the device actually works if
    you skip the generic matching of the sync EPs for the capture stream.
    That is, we should apply the implicit feedback setup for the playback
    like other similar devices, while we need to return 1 from
    audioformat_capture_quirk() so that no further matching will be done.
    
    And, later on, Olivia reported later that the fiddling with the
    capture quirk alone doesn't suffice for the test with speaker-test
    program.  This seems to be a similar case like the recently fixed BOSS
    devices.  Indeed, the problem could be addressed by setting
    playback_first flag, which indicates that the playback URBs have to be
    sent out at first even in the implicit feedback mode.
    
    This patch implements the application of the implicit feedback to
    Pioneer devices as described in the above.  The former
    skip_pioneer_sync_ep() was dropped, and instead we provide
    is_pioneer_implicit_fb() to check the Pioneer devices that need the
    implicit feedback.  In the audioformat_implicit_fb_quirk(), simply
    apply the implicit fb for playback and set chip->playback_first flag
    if matching, and in audioformat_capture_quirk()(), it returns 1 for
    skipping the generic EP sync handling.
    Reported-by: default avatarGeraldo <geraldogabriel@gmail.com>
    Tested-by: default avatarOlivia Mackintosh <livvy@base.nu>
    Link: https://lore.kernel.org/r/s5ha6pygqfz.wl-tiwai@suse.de
    Link: https://lore.kernel.org/r/20210419153918.450-1-tiwai@suse.deSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    fd9db105
implicit.c 18.3 KB