• Eyal Shapira's avatar
    wlcore: fix broken TX due to wrong queuing of recovery · 7a50bdfb
    Eyal Shapira authored
    commit 14bba17b "wl12xx: Propagate errors from wl1271_raw_write32"
    breaks down TX in certain scenarios. wl1271_irq_locked() propagates
    errors from wl1271_tx_work_locked however it may return -EBUSY
    when the FW queues are full which is a legitimate case and not a
    a real error. In this case a recovery is triggered by wl1271_irq
    and this keeps repeating itself so TX is completely broken.
    Fix it by avoiding propagating return values as errors even if they
    aren't. Only bus (SDIO or SPI) ops failures would be progagated
    as only these should trigger recovery.
    Signed-off-by: default avatarEyal Shapira <eyal@wizery.com>
    Signed-off-by: default avatarLuciano Coelho <coelho@ti.com>
    7a50bdfb
tx.c 31 KB