• Alex Elder's avatar
    net: ipa: introduce __gsi_channel_start() · 893b838e
    Alex Elder authored
    Create a new function that does most of the work of starting a
    channel.  What's different is that it takes a flag indicating
    whether the channel should really be started or not.  Create
    another new function __gsi_channel_stop() that behaves similarly.
    
    IPA v3.5.1 implements suspend using a special SUSPEND endpoint
    setting.  If the endpoint is suspended when an I/O completes on the
    underlying GSI channel, a SUSPEND interrupt is generated.
    
    Newer versions of IPA do not implement the SUSPEND endpoint mode.
    Instead, endpoint suspend is implemented by simply stopping the
    underlying GSI channel.  In this case, a completing I/O on a
    *stopped* channel causes the SUSPEND interrupt condition.
    
    These new functions put all activity related to starting or stopping
    a channel (including "thawing/freezing" the channel) in one place,
    whether or not the channel is actually started or stopped.
    Signed-off-by: default avatarAlex Elder <elder@linaro.org>
    Acked-by: default avatarWillem de Bruijn <willemb@google.com>
    Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    893b838e
gsi.c 64.7 KB