• Alex Elder's avatar
    net: ipa: support retries on generic GSI commands · 11361456
    Alex Elder authored
    When stopping an AP RX channel, there can be a transient period
    while the channel enters STOP_IN_PROC state before reaching the
    final STOPPED state.  In that case we make another attempt to stop
    the channel.
    
    Similarly, when stopping a modem channel (using a GSI generic
    command issued from the AP), it's possible that multiple attempts
    will be required before the channel reaches STOPPED state.
    
    Add a field to the GSI structure to record an errno representing the
    result code provided when a generic command completes.  If the
    result learned in gsi_isr_gp_int1() is RETRY, record -EAGAIN in the
    result code, otherwise record 0 for success, or -EIO for any other
    result.
    
    If we time out nf gsi_generic_command() waiting for the command to
    complete, return -ETIMEDOUT (as before).  Otherwise return the
    result stashed by gsi_isr_gp_int1().
    
    Add a loop in gsi_modem_channel_halt() to reissue the HALT command
    if the result code indicates -EAGAIN.  Limit this to 10 retries
    (after the initial attempt).
    Signed-off-by: default avatarAlex Elder <elder@linaro.org>
    Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    11361456
gsi.h 8.23 KB