Hi, This series updates the TI wilink8 driver targetting two issues. First are four driver correctness and/or improvements to the driver. Patch 1 ensures that if the firmware log pointer somehow ends up beyond the buffer limit, we will wrap back to the start, rather than relying on an exact match for the end of the buffer. Patch 2 avoids using the modulus operator for the loop over the WL18xx completed packet circular buffer, which can be expensive for some CPUs. Since we only ever increment the index by one, it is trivial to detect when we need to wrap. Patch 3 improves the code in wlcore_fw_status() to make what's going on with status->counters.tx_lnk_free_pkts[] more clear. Patch 4 removes a potential aliasing issue - wlcore_fw_status() is passed wl->fw_status as an argument, yet rather than using that for wlcore_hw_convert_fw_status(), we use wl->fw_status, and then go back to using the passed-in status to access the data written by this function. Patch 5 is taken from one of TI's wilink8 patches adding support for later firmwares. This adds support for storing the AP key type, which will be used in connection with the pn16 changes found in newer firmware. Patch 6 adds the necessary code for pn16 support, also taken from one of TI's wilink8 patches, augmented in two ways. First, if wlcore_hw_convert_fw_status() did not provide the pn16 array, then this code does nothing (thus maintaining compatibility with existing firmware.) Second, this is an array of 16-bit quantities, and so is subject to endian issues. Use the appropriate type and conversion functions for it. Patch 7 adds support for parsing the status data structures with the new pn16 field buried in the middle (!). Since mainline has to maintain compatibility with existing firmware, and we can't do TI's silly lock-step "upgrade the firmware at the same time" thing, we maintain support for the old layout, and select the appropriate parsing function. We also resize the raw status array as appropriate. Patch 8 allows the driver to accept both 8.9.0.x.>58 and 8.9.>=1.x.x firmwares. drivers/net/wireless/ti/wl18xx/main.c | 71 ++++++++++++++++++++- drivers/net/wireless/ti/wl18xx/tx.c | 13 +++- drivers/net/wireless/ti/wl18xx/wl18xx.h | 62 +++++++++++++++++- drivers/net/wireless/ti/wlcore/cmd.c | 9 +++ drivers/net/wireless/ti/wlcore/event.c | 2 +- drivers/net/wireless/ti/wlcore/main.c | 101 +++++++++++++++++++++++++++--- drivers/net/wireless/ti/wlcore/wlcore_i.h | 4 ++ 7 files changed, 246 insertions(+), 16 deletions(-) -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!