• Sujith Manoharan's avatar
    ath9k: Fix MCC scanning · 367b341e
    Sujith Manoharan authored
    Scanning is curently broken when two channel contexts
    are active. For example in a P2P-GO/STA setup, the
    offchannel timer allows HZ / 10 to elapse before initiating
    a switch to the next scan channel from the current operating
    channel, which in this case would be the P2P-GO context.
    
    But, the channel context timer might decide to switch
    to the STA context when an SWBA comes early and a beacon
    is sent out. Since pending offchannel requests are processed
    in EVENT_BEACON_PREPARE, this causes inconsistent scanning.
    
    Fix this by making sure that a context switch happens
    before processing the pending offchannel request. This
    also makes sure that active channel contexts will always
    have higher priority than offchannel operations and the
    scan sequence looks like this:
    
    p2p-go, sta, p2p-go, offchannel, p2p-go, sta, p2p-go, offchannel,.....
    
    The oper-channel is p2p-go, so the STA context has to
    switch to p2p-go again before switching offchannel.
    Signed-off-by: default avatarSujith Manoharan <c_manoha@qca.qualcomm.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    367b341e
ath9k.h 29.4 KB