linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC v4 00/13] rtw88: mac80211 driver for Realtek 802.11ac wireless network chips
@ 2018-10-13  9:00 yhchuang
  2018-10-13  9:00 ` [RFC v4 01/13] rtw88: main files yhchuang
                   ` (13 more replies)
  0 siblings, 14 replies; 24+ messages in thread
From: yhchuang @ 2018-10-13  9:00 UTC (permalink / raw)
  To: kvalo; +Cc: Larry.Finger, pkshih, tehuang, sgruszka, johannes, linux-wireless

From: Yan-Hsuan Chuang <yhchuang@realtek.com>

This is a new mac80211 driver for Realtek 802.11ac wireless network chips.
rtw88 supports 8822BE and 8822CE chips, and will be able to support
multi-vif combinations in run-time.

For now, only PCI bus is supported, but rtw88 was originally designed
to optionally support three buses includes USB & SDIO. USB & SDIO modules
will soon be supported by rtw88, with configurable core module to fit
with different bus modules in the same time.

For example, if we choose 8822BE and 8822CU, only PCI & USB modules will
be selected, built, loaded into kernel. This is one of the major
difference from rtlwifi, which can only support specific combinations.

Another difference from rtlwifi is that rtw88 is designed to support
the latest Realtek 802.11ac wireless network chips like 8822B and
8822C series. Compared to the earlier chips supported by rtlwifi like
the 802.11n 8192EE chipset or 802.11ac 8821AE/8812AE chips, newer ICs
have different MAC & PHY settings, such as new multi-port feature for the
MAC layer design and Jaguar2/Jaguar3 PHY layer IPs.

Multi-Port feature is also supported under rtw88's software architecture.
rtlwifi can only support one vif in the same time, most because of the
hardware limitations for early chips, hence the original design of it
also restricts the usage of multi-vif support, so latest chipset seems not
take advantages from its new MAC engine.

However, rtw88 can run multiple vifs concurrently by holding them on
hardware ports provided by MAC engine, hence can easily start different
roles on a single device.

Based on the reasons mentioned before, we implemented rtw88. It had many
authors, they are listed here alphabetically:

Ping-Ke Shih <pkshih@realtek.com>
Tzu-En Huang <tehuang@realtek.com>
Yan-Hsuan Chuang <yhchuang@realtek.com>

v4

 - remove vis_list and sta_list, use mac80211 iterator
 - use kernel helpers such as bitmap, bcd2bin, lockdep
 - move debugfs into wiphy->debugfsdir
 - use spin_lock in interrupt handler
 - remove unnecessary depends on lines in Kconfig
 - make port config constant
 - avoid watchdog timer spreading
 - return -EOPNOTSUPP for PMF key error message suppression
 - do not replace regd in wiphy for now
 - use host- fix- endian transfer in linux/bitfield.h to
   replace/get bits to/from card

v3

 - missing rcu list traverse for vif_list

v2

 - rename from rtwlan to rtw88
 - remove lots of magic numbers
 - add pci null entry for auto load on boot
 - add rtwdev->mutex to protect against mac80211 callbacks
 - add rcu lock protection for vif_list and sta_list
 - refine bits & endian macros to use helper functions provided by kernel
   instead of create new ones
 - ieee80211_free_txskb for tx path dropped packets
 - not register iface_combination since now only one vif is allowed
 - some fixes suggested by Stanislaw


Yan-Hsuan Chuang (13):
  rtw88: main files
  rtw88: core files
  rtw88: hci files
  rtw88: trx files
  rtw88: mac files
  rtw88: fw and efuse files
  rtw88: phy files
  rtw88: debug files
  rtw88: chip files
  rtw88: 8822B init table
  rtw88: 8822C init table
  rtw88: Kconfig & Makefile
  rtw88: add support for Realtek 802.11ac wireless chips

 MAINTAINERS                                        |     8 +
 drivers/net/wireless/realtek/Kconfig               |     1 +
 drivers/net/wireless/realtek/Makefile              |     1 +
 drivers/net/wireless/realtek/rtw88/Kconfig         |    55 +
 drivers/net/wireless/realtek/rtw88/Makefile        |    19 +
 drivers/net/wireless/realtek/rtw88/debug.c         |   652 +
 drivers/net/wireless/realtek/rtw88/debug.h         |    43 +
 drivers/net/wireless/realtek/rtw88/efuse.c         |   150 +
 drivers/net/wireless/realtek/rtw88/efuse.h         |    53 +
 drivers/net/wireless/realtek/rtw88/fw.c            |   655 +
 drivers/net/wireless/realtek/rtw88/fw.h            |   182 +
 drivers/net/wireless/realtek/rtw88/hci.h           |   211 +
 drivers/net/wireless/realtek/rtw88/mac.c           |  1045 +
 drivers/net/wireless/realtek/rtw88/mac.h           |    35 +
 drivers/net/wireless/realtek/rtw88/mac80211.c      |   478 +
 drivers/net/wireless/realtek/rtw88/main.c          |  1168 ++
 drivers/net/wireless/realtek/rtw88/main.h          |  1092 +
 drivers/net/wireless/realtek/rtw88/pci.c           |  1208 ++
 drivers/net/wireless/realtek/rtw88/pci.h           |   229 +
 drivers/net/wireless/realtek/rtw88/phy.c           |  1679 ++
 drivers/net/wireless/realtek/rtw88/phy.h           |   125 +
 drivers/net/wireless/realtek/rtw88/ps.c            |   168 +
 drivers/net/wireless/realtek/rtw88/ps.h            |    20 +
 drivers/net/wireless/realtek/rtw88/reg.h           |   404 +
 drivers/net/wireless/realtek/rtw88/regd.c          |   328 +
 drivers/net/wireless/realtek/rtw88/regd.h          |    40 +
 drivers/net/wireless/realtek/rtw88/rtw8822b.c      |  1588 ++
 drivers/net/wireless/realtek/rtw88/rtw8822b.h      |   155 +
 .../net/wireless/realtek/rtw88/rtw8822b_table.c    | 20783 +++++++++++++++++++
 .../net/wireless/realtek/rtw88/rtw8822b_table.h    |    18 +
 drivers/net/wireless/realtek/rtw88/rtw8822c.c      |  1167 ++
 drivers/net/wireless/realtek/rtw88/rtw8822c.h      |   171 +
 .../net/wireless/realtek/rtw88/rtw8822c_table.c    |  4150 ++++
 .../net/wireless/realtek/rtw88/rtw8822c_table.h    |    16 +
 drivers/net/wireless/realtek/rtw88/rx.c            |   153 +
 drivers/net/wireless/realtek/rtw88/rx.h            |    41 +
 drivers/net/wireless/realtek/rtw88/sec.c           |   120 +
 drivers/net/wireless/realtek/rtw88/sec.h           |    39 +
 drivers/net/wireless/realtek/rtw88/tx.c            |   273 +
 drivers/net/wireless/realtek/rtw88/tx.h            |    81 +
 40 files changed, 38804 insertions(+)
 create mode 100644 drivers/net/wireless/realtek/rtw88/Kconfig
 create mode 100644 drivers/net/wireless/realtek/rtw88/Makefile
 create mode 100644 drivers/net/wireless/realtek/rtw88/debug.c
 create mode 100644 drivers/net/wireless/realtek/rtw88/debug.h
 create mode 100644 drivers/net/wireless/realtek/rtw88/efuse.c
 create mode 100644 drivers/net/wireless/realtek/rtw88/efuse.h
 create mode 100644 drivers/net/wireless/realtek/rtw88/fw.c
 create mode 100644 drivers/net/wireless/realtek/rtw88/fw.h
 create mode 100644 drivers/net/wireless/realtek/rtw88/hci.h
 create mode 100644 drivers/net/wireless/realtek/rtw88/mac.c
 create mode 100644 drivers/net/wireless/realtek/rtw88/mac.h
 create mode 100644 drivers/net/wireless/realtek/rtw88/mac80211.c
 create mode 100644 drivers/net/wireless/realtek/rtw88/main.c
 create mode 100644 drivers/net/wireless/realtek/rtw88/main.h
 create mode 100644 drivers/net/wireless/realtek/rtw88/pci.c
 create mode 100644 drivers/net/wireless/realtek/rtw88/pci.h
 create mode 100644 drivers/net/wireless/realtek/rtw88/phy.c
 create mode 100644 drivers/net/wireless/realtek/rtw88/phy.h
 create mode 100644 drivers/net/wireless/realtek/rtw88/ps.c
 create mode 100644 drivers/net/wireless/realtek/rtw88/ps.h
 create mode 100644 drivers/net/wireless/realtek/rtw88/reg.h
 create mode 100644 drivers/net/wireless/realtek/rtw88/regd.c
 create mode 100644 drivers/net/wireless/realtek/rtw88/regd.h
 create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822b.c
 create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822b.h
 create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822b_table.c
 create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822b_table.h
 create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822c.c
 create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822c.h
 create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822c_table.c
 create mode 100644 drivers/net/wireless/realtek/rtw88/rtw8822c_table.h
 create mode 100644 drivers/net/wireless/realtek/rtw88/rx.c
 create mode 100644 drivers/net/wireless/realtek/rtw88/rx.h
 create mode 100644 drivers/net/wireless/realtek/rtw88/sec.c
 create mode 100644 drivers/net/wireless/realtek/rtw88/sec.h
 create mode 100644 drivers/net/wireless/realtek/rtw88/tx.c
 create mode 100644 drivers/net/wireless/realtek/rtw88/tx.h

-- 
2.7.4


^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2018-11-15 16:08 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-13  9:00 [RFC v4 00/13] rtw88: mac80211 driver for Realtek 802.11ac wireless network chips yhchuang
2018-10-13  9:00 ` [RFC v4 01/13] rtw88: main files yhchuang
2018-10-13  9:00 ` [RFC v4 02/13] rtw88: core files yhchuang
2018-10-13  9:00 ` [RFC v4 03/13] rtw88: hci files yhchuang
2018-10-13  9:00 ` [RFC v4 04/13] rtw88: trx files yhchuang
2018-10-13  9:00 ` [RFC v4 05/13] rtw88: mac files yhchuang
2018-10-16  8:22   ` Stanislaw Gruszka
2018-10-13  9:00 ` [RFC v4 06/13] rtw88: fw and efuse files yhchuang
2018-10-16  8:25   ` Stanislaw Gruszka
2018-10-13  9:00 ` [RFC v4 07/13] rtw88: phy files yhchuang
2018-10-13  9:00 ` [RFC v4 08/13] rtw88: debug files yhchuang
2018-10-13 14:19   ` Joe Perches
2018-10-13 15:23     ` Kalle Valo
2018-10-13 20:28       ` Joe Perches
2018-11-04  4:45         ` Joe Perches
2018-11-15 14:15           ` Kalle Valo
2018-11-15 15:19             ` Joe Perches
2018-11-15 16:08               ` Kalle Valo
2018-10-13  9:00 ` [RFC v4 09/13] rtw88: chip files yhchuang
2018-10-13  9:00 ` [RFC v4 10/13] rtw88: 8822B init table yhchuang
2018-10-13  9:00 ` [RFC v4 11/13] rtw88: 8822C " yhchuang
2018-10-13  9:00 ` [RFC v4 12/13] rtw88: Kconfig & Makefile yhchuang
2018-10-13  9:00 ` [RFC v4 13/13] rtw88: add support for Realtek 802.11ac wireless chips yhchuang
2018-10-16  8:28 ` [RFC v4 00/13] rtw88: mac80211 driver for Realtek 802.11ac wireless network chips Stanislaw Gruszka

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).