Search Linux Wireless

[PATCH v6 0/5] wifi: rtw89: preparation of multiple interface concurrency support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



To support concurrency, we implement beacon filter, CQM and
ieee80211::remain_on_channel ops. Since our firmware doesn't support to TX
null packet while doing remain-on-channel, driver does this instead. To
ensure null packet send out before switching channel, patch 2/5 adds a
waiting mechanism.

The patches 4/5 and 5/5 refine things we found during developing.

v6:
  - patch 2/5
    - use kfree_rcu to free 'wait' object, so don't need spin_lock
      introduced by v5. Then, no lock in TX path.
  - others
    - no change

v5:
  - patch 2/5
    - use owner with spin_lock to replace original third work to make
      code simpler.
  - others
    - no change

v4:
  - patch 1/5
    - define h2c/c2h struct to set/get skb->data,
      for example

      * h2c = (__le32 *)skb->data; -->
        h2c = (struct rtw89_h2c_bcnfltr *)skb->data;

      * #define H2C_CFG_BCN_FLTR_LEN 4 (remove) --> sizeof(*h2c)

      * h2c[0] = le32_encode_bits(connect, RTW89_H2C_BCNFLTR_W0_MON_RSSI) -->
        h2c->w0 = le32_encode_bits(connect, RTW89_H2C_BCNFLTR_W0_MON_RSSI)

    - I think this could improve a little more. If anyone have more ideas
      in the future, I will open mind to change them again to make them
      look better.

  - others
    - no change

v3:
  - patch 1/5
    - remove unnecessary type casting
    - use clear style of mask definition for H2C/C2H
  - patch 2/5
    - add comment to describe why polling can help freeing
  - others
    - no change

v2:
  - messed up, please ignore.

Po-Hao Huang (5):
  wifi: rtw89: 8852c: add beacon filter and CQM support
  wifi: rtw89: add function to wait for completion of TX skbs
  wifi: rtw89: add ieee80211::remain_on_channel ops
  wifi: rtw89: add flag check for power state
  wifi: rtw89: fix authentication fail during scan

 drivers/net/wireless/realtek/rtw89/chan.c     |  35 +++
 drivers/net/wireless/realtek/rtw89/chan.h     |   3 +
 drivers/net/wireless/realtek/rtw89/core.c     | 261 +++++++++++++++++-
 drivers/net/wireless/realtek/rtw89/core.h     |  71 +++++
 drivers/net/wireless/realtek/rtw89/fw.c       | 116 +++++++-
 drivers/net/wireless/realtek/rtw89/fw.h       |  63 +++++
 drivers/net/wireless/realtek/rtw89/mac.c      |  62 +++++
 drivers/net/wireless/realtek/rtw89/mac.h      |   1 +
 drivers/net/wireless/realtek/rtw89/mac80211.c |  88 +++++-
 drivers/net/wireless/realtek/rtw89/pci.c      |   5 +
 drivers/net/wireless/realtek/rtw89/pci.h      |   4 +-
 drivers/net/wireless/realtek/rtw89/ps.c       |   6 +
 drivers/net/wireless/realtek/rtw89/ps.h       |  16 ++
 13 files changed, 716 insertions(+), 15 deletions(-)

-- 
2.25.1




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux