Hi Kalle, here's my first pull request for 5.5 - Felix The following changes since commit eac08515d7bd665d306cefa2ae9f3de56e875d6d: rtl8xxxu: Remove set but not used variable 'vif','dev','len' (2019-11-20 09:47:19 +0200) are available in the Git repository at: https://github.com/nbd168/wireless tags/mt76-for-kvalo-2019-11-20 for you to fetch changes up to 23cb16d2ccb5f819d7acff602e5a153157bf2884: mt76: mt76u: fix endpoint definition order (2019-11-20 13:23:51 +0100) ---------------------------------------------------------------- mt76 patches for 5.5 * monitor mode fix for mt7615 * fixes for rx aggregation race conditions * cleanups * mt7615 smart carrier sense support * code unification / deduplication * mt7615 debugfs improvements * debugfs aggregation statistics * airtime fairness support * mt76x0 OF mac address support * locking fixes * usb support improvements * rate control fixes ---------------------------------------------------------------- Colin Ian King (1): mt76: mt76x0e: make array mt76x0_chan_map static const, makes object smaller Felix Fietkau (22): mt76: mt7615: fix control frame rx in monitor mode mt76: remove aggr_work field from struct mt76_wcid mt76: use cancel_delayed_work_sync in mt76_rx_aggr_shutdown mt76: mt7603: remove q_rx field from struct mt7603_dev mt76: report rx a-mpdu subframe status mt76: rename mt76_driver_ops txwi_flags to drv_flags and include tx aligned4 mt76: store current channel survey_state in struct mt76_dev mt76: track rx airtime for airtime fairness and survey mt76: mt7603: track tx airtime for airtime fairness and survey mt76: mt7603: switch to a different counter for survey busy time mt76: unify channel survey update code mt76: mt76x02: move MT_CH_TIME_CFG init to mt76x02_mac_cc_reset mt76: mt76x02: track approximate tx airtime for airtime fairness and survey mt76: mt7615: fix survey channel busy time mt76: enable airtime fairness mt76: do not use devm API for led classdev mt76: add missing locking around ampdu action mt76: drop rcu read lock in mt76_rx_aggr_stop mt76: fix aggregation stop issue mt76: avoid enabling interrupt if NAPI poll is still pending mt76: add sanity check for a-mpdu rx wcid index mt76: remove obsolete .add_buf() from struct mt76_queue_ops Lorenzo Bianconi (29): mt76: remove empty flag in mt76_txq_schedule_list mt76: usb: add lockdep_assert_held in __mt76u_vendor_request mt76: mt7615: enable SCS by default mt76: mt76x02: move mac_reset_counter in mt76x02_lib module mt76: mt76x2: move mt76x02_mac_reset_counters in mt76x02_mac_start mt76: mt76x0u: reset counter starting the device mt76: mt76x02u: move mt76x02u_mac_start in mt76x02-usb module mt76: move queue debugfs entry to driver specific code mt76: mt7615: add queue entry in debugfs mt76: move aggr_stats array in mt76_dev mt76: mt7615: collect aggregation stats mt76: mt7603: collect aggregation stats mt76: mt7615: report tx_time, bss_rx and busy time to mac80211 mt76: mt7615: introduce mt7615_mac_wtbl_update routine mt76: mt7615: track tx/rx airtime for airtime fairness mt76: refactor cc_lock locking scheme mt76: mt76x02u: update ewma pkt len in mt76x02u_tx_prepare_skb mt76: mt76x0: remove 350ms delay in mt76x0_phy_calibrate mt76: mt76u: rely on usb_interface instead of usb_dev mt76: mt76u: rely on a dedicated stats workqueue mt76: use mt76_dev in mt76_is_{mmio,usb} mt76: move SUPPORTS_REORDERING_BUFFER hw property in mt76_register_device mt76: mt7615: add ibss support mt76: move interface_modes definition in mt76_core module mt76: mt7615: disable radar pattern detector during scanning mt76: fix possible out-of-bound access in mt7615_fill_txs/mt7603_fill_txs mt76: move mt76_get_antenna in mt76_core module mt76: mt7615: read {tx,rx} mask from eeprom mt76: mt76u: fix endpoint definition order Pawel Dembicki (1): mt76: mt76x0: eeprom: add support for MAC address from OF Stanislaw Gruszka (1): Revert "mt76: mt76x0e: don't use hw encryption for MT7630E" YueHaibing (1): mt76: mt7615: remove unneeded semicolon zhengbin (1): mt76: Remove set but not used variable 'idx' drivers/net/wireless/mediatek/mt76/Makefile | 2 +- drivers/net/wireless/mediatek/mt76/agg-rx.c | 20 +++--- drivers/net/wireless/mediatek/mt76/airtime.c | 326 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ drivers/net/wireless/mediatek/mt76/debugfs.c | 5 +- drivers/net/wireless/mediatek/mt76/dma.c | 11 ++-- drivers/net/wireless/mediatek/mt76/mac80211.c | 194 +++++++++++++++++++++++++++++++++++++++++++++++++++----- drivers/net/wireless/mediatek/mt76/mt76.h | 113 ++++++++++++++++++--------------- drivers/net/wireless/mediatek/mt76/mt7603/debugfs.c | 38 +++++++++++ drivers/net/wireless/mediatek/mt76/mt7603/dma.c | 2 + drivers/net/wireless/mediatek/mt76/mt7603/init.c | 14 ++-- drivers/net/wireless/mediatek/mt76/mt7603/mac.c | 141 ++++++++++++++++++++++++++++++++++++----- drivers/net/wireless/mediatek/mt76/mt7603/main.c | 19 +++++- drivers/net/wireless/mediatek/mt76/mt7603/mt7603.h | 11 +++- drivers/net/wireless/mediatek/mt76/mt7603/regs.h | 5 ++ drivers/net/wireless/mediatek/mt76/mt7615/debugfs.c | 100 +++++++++++++++++++++++++++++ drivers/net/wireless/mediatek/mt76/mt7615/dma.c | 2 + drivers/net/wireless/mediatek/mt76/mt7615/eeprom.c | 18 ++++++ drivers/net/wireless/mediatek/mt76/mt7615/eeprom.h | 3 + drivers/net/wireless/mediatek/mt76/mt7615/init.c | 43 +++++++++---- drivers/net/wireless/mediatek/mt76/mt7615/mac.c | 187 +++++++++++++++++++++++++++++++++++++++++++++++------- drivers/net/wireless/mediatek/mt76/mt7615/main.c | 46 ++++++++++++-- drivers/net/wireless/mediatek/mt76/mt7615/mcu.c | 16 ++++- drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h | 11 ++++ drivers/net/wireless/mediatek/mt76/mt7615/pci.c | 5 +- drivers/net/wireless/mediatek/mt76/mt7615/regs.h | 57 ++++++++++++++++- drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.c | 3 +- drivers/net/wireless/mediatek/mt76/mt76x0/init.c | 27 -------- drivers/net/wireless/mediatek/mt76/mt76x0/main.c | 9 +-- drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0.h | 3 +- drivers/net/wireless/mediatek/mt76/mt76x0/pci.c | 29 ++------- drivers/net/wireless/mediatek/mt76/mt76x0/phy.c | 13 ++-- drivers/net/wireless/mediatek/mt76/mt76x0/usb.c | 16 ++--- drivers/net/wireless/mediatek/mt76/mt76x02.h | 3 +- drivers/net/wireless/mediatek/mt76/mt76x02_debugfs.c | 5 +- drivers/net/wireless/mediatek/mt76/mt76x02_mac.c | 119 +++++++++++++++++++++++++++++----- drivers/net/wireless/mediatek/mt76/mt76x02_mac.h | 8 +++ drivers/net/wireless/mediatek/mt76/mt76x02_mcu.c | 2 +- drivers/net/wireless/mediatek/mt76/mt76x02_mmio.c | 1 + drivers/net/wireless/mediatek/mt76/mt76x02_txrx.c | 10 ++- drivers/net/wireless/mediatek/mt76/mt76x02_usb.h | 1 + drivers/net/wireless/mediatek/mt76/mt76x02_usb_core.c | 31 ++++++++- drivers/net/wireless/mediatek/mt76/mt76x02_util.c | 18 ++---- drivers/net/wireless/mediatek/mt76/mt76x2/mac.h | 1 - drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2u.h | 1 - drivers/net/wireless/mediatek/mt76/mt76x2/pci.c | 4 +- drivers/net/wireless/mediatek/mt76/mt76x2/pci_init.c | 30 +-------- drivers/net/wireless/mediatek/mt76/mt76x2/pci_main.c | 26 ++------ drivers/net/wireless/mediatek/mt76/mt76x2/usb.c | 6 +- drivers/net/wireless/mediatek/mt76/mt76x2/usb_init.c | 7 -- drivers/net/wireless/mediatek/mt76/mt76x2/usb_mac.c | 27 -------- drivers/net/wireless/mediatek/mt76/mt76x2/usb_main.c | 9 ++- drivers/net/wireless/mediatek/mt76/tx.c | 23 ++----- drivers/net/wireless/mediatek/mt76/usb.c | 44 ++++++++----- 53 files changed, 1466 insertions(+), 399 deletions(-) create mode 100644 drivers/net/wireless/mediatek/mt76/airtime.c