1: 96c920b08ab4 ! 1: a81b47442eb5 wifi: rt2x00: start the link tuner when an interface is added @@ Commit message  Fixes: d96324703ffa ("rt2x00: merge agc and vco works with link tuner") Signed-off-by: Ho Jie Feng  + Acked-by: Stanislaw Gruszka   ## drivers/net/wireless/ralink/rt2x00/rt2x00mac.c ##  @@ drivers/net/wireless/ralink/rt2x00/rt2x00mac.c: int rt2x00mac_add_interface(struct ieee80211_hw *hw, 2: 5503e17f1d45 < -: ------------ wifi: rt2800: calibrate the crystal of RT3593 with the beacons -: ------------ > 2: 5ce993491504 wifi: rt2800: calibrate the crystal of RT3593 with the beacons 3: 15a25ec7a91c ! 3: 2f4afc902fb2 wifi: rt2800: make MCS 16 fall back to MCS 8 on devices with 3 TX chains @@ drivers/net/wireless/ralink/rt2x00/rt2800lib.c: void rt2800_txdone_entry(struct  + * frame that was sent below MCS16 after a three stream rate  + * skipped MCS9 to MCS15.  + */ -+ if (rt2x00_is_3t(rt2x00dev) && mcs >= 16 && real_mcs < 16) ++ if (rt2x00_is_3t(rt2x00dev) && mcs >= 16 && real_mcs <= 8)  + txdesc.retry -= 7; } else { /* 4: a849dbe14ded ! 4: f4bb0ce43229 wifi: rt2800: don't report an A-MPDU length to minstrel_ht @@ Commit message below the TODO comment.  Signed-off-by: Ho Jie Feng  + Acked-by: Stanislaw Gruszka   ## drivers/net/wireless/ralink/rt2x00/rt2800lib.c ##  @@ drivers/net/wireless/ralink/rt2x00/rt2800lib.c: static int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev) 6: 85c8faf9d4b0 ! 5: a2fdeaded17c wifi: rt2800usb: enable RX bulk aggregation @@ drivers/net/wireless/ralink/rt2x00/rt2800usb.c: static int rt2800usb_enable_radi rt2x00_set_field32(®, USB_DMA_CFG_PHY_CLEAR, 0);  - rt2x00_set_field32(®, USB_DMA_CFG_RX_BULK_AGG_EN, 0);  + rt2x00_set_field32(®, USB_DMA_CFG_RX_BULK_AGG_EN, -+ rt2x00dev->rx->usb_maxpacket == 512); ++ rt2x00dev->rx->usb_maxpacket >= 512); rt2x00_set_field32(®, USB_DMA_CFG_RX_BULK_AGG_TIMEOUT, 128); /* * Total room for RX frames in kilobytes, PBF might still exceed @@ drivers/net/wireless/ralink/rt2x00/rt2800usb.c: static void rt2800usb_work_txdon  + word = rt2x00_desc_read(data, 0);  + rx_pkt_len = rt2x00_get_field32(word, RXINFO_W0_USB_DMA_RX_PKT_LEN);  + -+ if (!rx_pkt_len || -+ RXINFO_DESC_SIZE + rx_pkt_len + RXD_DESC_SIZE > len || -+ rx_pkt_len & 0x3) ++ if (WARN_ON_ONCE(RXINFO_DESC_SIZE + rx_pkt_len + RXD_DESC_SIZE > len) || ++ WARN_ON_ONCE(rx_pkt_len & 0x3) || ++ WARN_ON_ONCE(rx_pkt_len < min_seg_len))  + return 0;  +  + return RXINFO_DESC_SIZE + rx_pkt_len + RXD_DESC_SIZE; 5: 0c4eebe3772c = 6: 68ddbbf39763 wifi: rt2800: support A-MSDU in A-MPDU 7: c37126e5aa78 < -: ------------ wifi: rt2x00usb: use a threaded NAPI with GRO for RX -: ------------ > 7: b76e3994ba6b wifi: rt2x00usb: use a threaded NAPI with GRO for RX