• Alex Elder's avatar
    net: ipa: kill the STARTED IPA power flag · 688de12f
    Alex Elder authored
    A transmit on the modem netdev can only complete if the IPA hardware
    is powered.  Currently, if a transmit request arrives when the
    hardware was not powered, further transmits are be stopped to allow
    power-up to complete.  Once power-up completes, transmits are once
    again enabled.
    
    Runtime resume can complete at the same time a transmit request is
    being handled, and previously there was a race between stopping and
    restarting transmits.  The STARTED flag was used to ensure the
    stop request in the transmit path was skipped if the start request
    in the runtime resume path had already occurred.
    
    Now, the queue is *always* stopped in the transmit path, *before*
    determining whether power is ACTIVE.  If power is found to already
    be active (or if the socket buffer is gets dropped), transmit is
    re-enabled.  Otherwise it will (always) be enabled after runtime
    resume completes.
    
    The race between transmit and runtime resume no longer exists, so
    there is no longer any need to maintain the STARTED flag.
    Signed-off-by: default avatarAlex Elder <elder@linaro.org>
    Link: https://lore.kernel.org/r/20240130192305.250915-4-elder@linaro.orgSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    688de12f
ipa_power.c 11 KB