From: Ajay Singh <ajay.kathat@xxxxxxxxxxxxx> This patch series is to review and move wilc1000 driver out of staging. Most of the review comments received in [1] & [2] are addressed in the latest code. Please review and provide your inputs. [1]. https://lore.kernel.org/linux-wireless/1537957525-11467-1-git-send-email-ajay.kathat@xxxxxxxxxxxxx/ [2]. https://lore.kernel.org/linux-wireless/1562896697-8002-1-git-send-email-ajay.kathat@xxxxxxxxxxxxx/ Changes since v3: - handle few Smatch static checker reported issues. - use flexible-array member instead of zero-length array. Changes since v2: - use 'struct' to extract FW info from received commands. - make use of C style comments instead of C++. - remove use of bool type for firmware struct. - deleted unused code related to interrupt handling. - make use of RCU list to maintain interfaces list. - remove 'wilc_' prefix from file name. - added 'WILC_' prefix for header guard macro. - remove use of infinite loops(i.e. while(1)). - move firmware realted struct to a separate file. - refactor SPI command handling by using 'struct'. - use different functions to handle different SPI commands. - cleanup spi.c and sdio.c by removing unused code. - remove use of vendor specific IE for p2p handling. - refactor p2p related code to avoid use of buf pointer operation. - make use of FIELD_GET/PREP macro. - use #define instead of magic values. - use YAML schemes for DT binding documentation. - deleted unused code from spi.c and sdio.c. - added changes for few issues reported by smatch static code analyzer. Changes since v1: - remove use of shadow buffer to keep scan result. - remove internal messaging flow to handle cfg80211_ops. - make use of cfg80211 provide API. - use 'struct' for packing firmware commands. - make use of kernel API's and Macro. - remove unnecessary log messages - supported dynamically add/remove interfaces. - cleanup and deleted around 3.3k lines of code. Ajay Singh (18): wilc1000: add hif.h wilc1000: add hif.c wilc1000: add wlan_if.h wilc1000: add wlan_cfg.h wilc1000: add wlan_cfg.c wilc1000: add cfg80211.c wilc1000: add cfg80211.h wilc1000: add netdev.h wilc1000: add netdev.c wilc1000: add mon.c wilc1000: add spi.c wilc1000: add wlan.h wilc1000: add wlan.c wilc1000: add sdio.c wilc1000: add fw.h dt: bindings: net: add microchip,wilc1000,sdio.yaml dt: bindings: net: add microchip,wilc1000,spi.yaml wilc1000: add Makefile and Kconfig files for wilc1000 compilation .../net/wireless/microchip,wilc1000,sdio.yaml | 68 + .../net/wireless/microchip,wilc1000,spi.yaml | 61 + drivers/net/wireless/Kconfig | 1 + drivers/net/wireless/Makefile | 1 + drivers/net/wireless/microchip/Kconfig | 15 + drivers/net/wireless/microchip/Makefile | 2 + .../net/wireless/microchip/wilc1000/Kconfig | 42 + .../net/wireless/microchip/wilc1000/Makefile | 14 + .../wireless/microchip/wilc1000/cfg80211.c | 1850 ++++++++++++++++ .../wireless/microchip/wilc1000/cfg80211.h | 29 + drivers/net/wireless/microchip/wilc1000/fw.h | 119 + drivers/net/wireless/microchip/wilc1000/hif.c | 1959 +++++++++++++++++ drivers/net/wireless/microchip/wilc1000/hif.h | 214 ++ drivers/net/wireless/microchip/wilc1000/mon.c | 260 +++ .../net/wireless/microchip/wilc1000/netdev.c | 940 ++++++++ .../net/wireless/microchip/wilc1000/netdev.h | 295 +++ .../net/wireless/microchip/wilc1000/sdio.c | 1030 +++++++++ drivers/net/wireless/microchip/wilc1000/spi.c | 1001 +++++++++ .../net/wireless/microchip/wilc1000/wlan.c | 1238 +++++++++++ .../net/wireless/microchip/wilc1000/wlan.h | 398 ++++ .../wireless/microchip/wilc1000/wlan_cfg.c | 413 ++++ .../wireless/microchip/wilc1000/wlan_cfg.h | 54 + .../net/wireless/microchip/wilc1000/wlan_if.h | 803 +++++++ drivers/staging/Kconfig | 2 - drivers/staging/Makefile | 1 - 25 files changed, 10807 insertions(+), 3 deletions(-) create mode 100644 Documentation/devicetree/bindings/net/wireless/microchip,wilc1000,sdio.yaml create mode 100644 Documentation/devicetree/bindings/net/wireless/microchip,wilc1000,spi.yaml create mode 100644 drivers/net/wireless/microchip/Kconfig create mode 100644 drivers/net/wireless/microchip/Makefile create mode 100644 drivers/net/wireless/microchip/wilc1000/Kconfig create mode 100644 drivers/net/wireless/microchip/wilc1000/Makefile create mode 100644 drivers/net/wireless/microchip/wilc1000/cfg80211.c create mode 100644 drivers/net/wireless/microchip/wilc1000/cfg80211.h create mode 100644 drivers/net/wireless/microchip/wilc1000/fw.h create mode 100644 drivers/net/wireless/microchip/wilc1000/hif.c create mode 100644 drivers/net/wireless/microchip/wilc1000/hif.h create mode 100644 drivers/net/wireless/microchip/wilc1000/mon.c create mode 100644 drivers/net/wireless/microchip/wilc1000/netdev.c create mode 100644 drivers/net/wireless/microchip/wilc1000/netdev.h create mode 100644 drivers/net/wireless/microchip/wilc1000/sdio.c create mode 100644 drivers/net/wireless/microchip/wilc1000/spi.c create mode 100644 drivers/net/wireless/microchip/wilc1000/wlan.c create mode 100644 drivers/net/wireless/microchip/wilc1000/wlan.h create mode 100644 drivers/net/wireless/microchip/wilc1000/wlan_cfg.c create mode 100644 drivers/net/wireless/microchip/wilc1000/wlan_cfg.h create mode 100644 drivers/net/wireless/microchip/wilc1000/wlan_if.h -- 2.24.0