• Mohammed Shafi Shajakhan's avatar
    ath9k: Add WoW related mac80211 callbacks · b11e640a
    Mohammed Shafi Shajakhan authored
    add suspend/resume/set_wakeup callbacks to the driver
    
    *suspend
    
    - bail out only if all the conditions for configuring WoW.
      is fine, currently multivif case is not handled
    - check for associated state.
    - map wow triggers from user space data.
    - add deauth/disassoc pattern and user defined pattern,
      for the later a list is maintained.
    - store the interrupt mask before suspend, enabled beacon
      miss interrupt for WoW.
    - configure WoW in the hardware by calling ath9k_hw_wow_enable.
    
    *resume
    
    - restore the interrupts based on the interrupt mask
      stored before suspend.
    - call ath9k_hw_wow_wakeup to configure/restore the hardware.
    - after wow wakeup clear away WoW events and query the
      WoW wakeup reason from the status register
    
    *set_wakeup
    
    - to call 'device_set_wakeup_enable' from cfg80211/mac80211
      when wow is configured and as per Rafael/Johannnes the
      right way to do so rather in the driver suspend/resume
      call back
    
    Cc: Senthil Balasubramanian <senthilb@qca.qualcomm.com>
    Cc: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
    Cc: vadivel@qca.qualcomm.com
    Signed-off-by: default avatarMohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    b11e640a
main.c 60.3 KB