netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/20] Add support for Silicon Labs WiFi chip WF200 and further
@ 2019-09-19 10:52 Jerome Pouiller
  2019-09-19 10:52 ` [PATCH 01/20] staging: wfx: add infrastructure for new driver Jerome Pouiller
                   ` (20 more replies)
  0 siblings, 21 replies; 28+ messages in thread
From: Jerome Pouiller @ 2019-09-19 10:52 UTC (permalink / raw)
  To: devel, linux-wireless
  Cc: netdev, linux-kernel, Greg Kroah-Hartman, Kalle Valo,
	David S . Miller, David Le Goff, Jerome Pouiller

From: Jérôme Pouiller <jerome.pouiller@silabs.com>

Hello all,

This series add support for Silicon Labs WiFi chip WF200 and further:

   https://www.silabs.com/documents/public/data-sheets/wf200-datasheet.pdf

This driver is an export from:

   https://github.com/SiliconLabs/wfx-linux-driver/
   
I squashed all commits from github (it definitely does not make sense to
import history). Then I split it in comprehensible (at least try to be)
commits. I hope it will help readers to understand driver architecture.
IMHO, firsts commits are clean enough to be reviewed. Things get more
difficult when I introduce mac8011 API. I tried to extract important
parts like Rx/Tx process but, big and complex patches seem unavoidable
in this part.

Architecture itself is described in commit messages.

The series below is aligned on version 2.3.1 on github. If compare this
series with github, you will find traditional differences between
external and a in-tree driver: Documentation, build infrastructure,
etc... In add, I dropped all code in CONFIG_WFX_SECURE_LINK. Indeed,
"Secure Link" feature depends on mbedtls and I don't think to pull
mbedtls in kernel is an option (see "To be done" below).


What need to be done in this driver  to leave staging area?

  - I kept wfx_version.h in order to ensure synchronization with github
    waiting for development goes entirely in kernel
  - I also kept compatibility code for earlier Linux kernel version. I
    may drop it in future. Maybe I will maintain compatibility with
    older kernels in a external set of patches.
  - I have to make decision about secure link support. I can:
      - drop completely
      - keep it in an external patch (my preferred option)
      - replace call to mbedtls with kernel crypto API (necessitate a
        bunch of work)
      - pull mbedtls in kernel (non-realistic)
  - mac80211 interface does not (yet) have expected quality to be placed
    outside of staging:
      - Some processings are redundant with mac80211 ones
      - Many members from wfx_dev/wfx_vif can be retrieved from mac80211
        structures
      - Some functions are too complex
      - ...

Jérôme Pouiller (20):
  staging: wfx: add infrastructure for new driver
  staging: wfx: add support for I/O access
  staging: wfx: add I/O API
  staging: wfx: add tracepoints for I/O access
  staging: wfx: load firmware
  staging: wfx: import HIF API headers
  staging: wfx: add IRQ handling
  staging: wfx: add tracepoints for HIF
  staging: wfx: add support for start-up indication
  staging: wfx: instantiate mac80211 data
  staging: wfx: allow to send commands to chip
  staging: wfx: add HIF commands helpers
  staging: wfx: introduce "secure link"
  staging: wfx: setup initial chip configuration
  staging: wfx: add debug files and trace debug events
  staging: wfx: allow to send 802.11 frames
  staging: wfx: allow to receive 802.11 frames
  staging: wfx: allow to scan networks
  staging: wfx: implement 802.11 key handling
  staging: wfx: implement the rest of mac80211 API

 MAINTAINERS                                   |    5 +
 drivers/staging/Kconfig                       |    2 +
 drivers/staging/Makefile                      |    1 +
 .../bindings/net/wireless/siliabs,wfx.txt     |   97 +
 drivers/staging/wfx/Kconfig                   |    7 +
 drivers/staging/wfx/Makefile                  |   24 +
 drivers/staging/wfx/bh.c                      |  316 ++++
 drivers/staging/wfx/bh.h                      |   32 +
 drivers/staging/wfx/bus.h                     |   34 +
 drivers/staging/wfx/bus_sdio.c                |  268 +++
 drivers/staging/wfx/bus_spi.c                 |  335 ++++
 drivers/staging/wfx/data_rx.c                 |  213 +++
 drivers/staging/wfx/data_rx.h                 |   18 +
 drivers/staging/wfx/data_tx.c                 |  799 ++++++++
 drivers/staging/wfx/data_tx.h                 |   93 +
 drivers/staging/wfx/debug.c                   |  322 ++++
 drivers/staging/wfx/debug.h                   |   19 +
 drivers/staging/wfx/fwio.c                    |  397 ++++
 drivers/staging/wfx/fwio.h                    |   15 +
 drivers/staging/wfx/hif_api_cmd.h             |  681 +++++++
 drivers/staging/wfx/hif_api_general.h         |  437 +++++
 drivers/staging/wfx/hif_api_mib.h             |  558 ++++++
 drivers/staging/wfx/hif_rx.c                  |  336 ++++
 drivers/staging/wfx/hif_rx.h                  |   18 +
 drivers/staging/wfx/hif_tx.c                  |  470 +++++
 drivers/staging/wfx/hif_tx.h                  |   67 +
 drivers/staging/wfx/hif_tx_mib.h              |  281 +++
 drivers/staging/wfx/hwio.c                    |  338 ++++
 drivers/staging/wfx/hwio.h                    |   75 +
 drivers/staging/wfx/key.c                     |  272 +++
 drivers/staging/wfx/key.h                     |   22 +
 drivers/staging/wfx/main.c                    |  504 +++++
 drivers/staging/wfx/main.h                    |   48 +
 drivers/staging/wfx/queue.c                   |  606 ++++++
 drivers/staging/wfx/queue.h                   |   59 +
 drivers/staging/wfx/scan.c                    |  298 +++
 drivers/staging/wfx/scan.h                    |   42 +
 drivers/staging/wfx/secure_link.h             |   46 +
 drivers/staging/wfx/sta.c                     | 1682 +++++++++++++++++
 drivers/staging/wfx/sta.h                     |  116 ++
 drivers/staging/wfx/traces.h                  |  439 +++++
 drivers/staging/wfx/wfx.h                     |  234 +++
 drivers/staging/wfx/wfx_version.h             |    3 +
 43 files changed, 10629 insertions(+)
 create mode 100644 drivers/staging/wfx/Documentation/devicetree/bindings/net/wireless/siliabs,wfx.txt
 create mode 100644 drivers/staging/wfx/Kconfig
 create mode 100644 drivers/staging/wfx/Makefile
 create mode 100644 drivers/staging/wfx/bh.c
 create mode 100644 drivers/staging/wfx/bh.h
 create mode 100644 drivers/staging/wfx/bus.h
 create mode 100644 drivers/staging/wfx/bus_sdio.c
 create mode 100644 drivers/staging/wfx/bus_spi.c
 create mode 100644 drivers/staging/wfx/data_rx.c
 create mode 100644 drivers/staging/wfx/data_rx.h
 create mode 100644 drivers/staging/wfx/data_tx.c
 create mode 100644 drivers/staging/wfx/data_tx.h
 create mode 100644 drivers/staging/wfx/debug.c
 create mode 100644 drivers/staging/wfx/debug.h
 create mode 100644 drivers/staging/wfx/fwio.c
 create mode 100644 drivers/staging/wfx/fwio.h
 create mode 100644 drivers/staging/wfx/hif_api_cmd.h
 create mode 100644 drivers/staging/wfx/hif_api_general.h
 create mode 100644 drivers/staging/wfx/hif_api_mib.h
 create mode 100644 drivers/staging/wfx/hif_rx.c
 create mode 100644 drivers/staging/wfx/hif_rx.h
 create mode 100644 drivers/staging/wfx/hif_tx.c
 create mode 100644 drivers/staging/wfx/hif_tx.h
 create mode 100644 drivers/staging/wfx/hif_tx_mib.h
 create mode 100644 drivers/staging/wfx/hwio.c
 create mode 100644 drivers/staging/wfx/hwio.h
 create mode 100644 drivers/staging/wfx/key.c
 create mode 100644 drivers/staging/wfx/key.h
 create mode 100644 drivers/staging/wfx/main.c
 create mode 100644 drivers/staging/wfx/main.h
 create mode 100644 drivers/staging/wfx/queue.c
 create mode 100644 drivers/staging/wfx/queue.h
 create mode 100644 drivers/staging/wfx/scan.c
 create mode 100644 drivers/staging/wfx/scan.h
 create mode 100644 drivers/staging/wfx/secure_link.h
 create mode 100644 drivers/staging/wfx/sta.c
 create mode 100644 drivers/staging/wfx/sta.h
 create mode 100644 drivers/staging/wfx/traces.h
 create mode 100644 drivers/staging/wfx/wfx.h
 create mode 100644 drivers/staging/wfx/wfx_version.h

-- 
2.20.1

-- 
Jérôme Pouiller
Silicon Labs

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

end of thread, other threads:[~2019-10-02 16:51 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-19 10:52 [PATCH 00/20] Add support for Silicon Labs WiFi chip WF200 and further Jerome Pouiller
2019-09-19 10:52 ` [PATCH 01/20] staging: wfx: add infrastructure for new driver Jerome Pouiller
2019-09-19 10:52 ` [PATCH 02/20] staging: wfx: add support for I/O access Jerome Pouiller
2019-09-19 16:34   ` Andrew Lunn
2019-09-19 16:40     ` Greg Kroah-Hartman
2019-10-02 16:29     ` Jerome Pouiller
2019-10-02 16:42       ` Greg Kroah-Hartman
2019-10-02 16:51         ` Jerome Pouiller
2019-09-19 10:52 ` [PATCH 03/20] staging: wfx: add I/O API Jerome Pouiller
2019-09-19 10:52 ` [PATCH 04/20] staging: wfx: add tracepoints for I/O access Jerome Pouiller
2019-09-19 10:52 ` [PATCH 05/20] staging: wfx: load firmware Jerome Pouiller
2019-09-19 10:52 ` [PATCH 06/20] staging: wfx: import HIF API headers Jerome Pouiller
2019-09-19 10:52 ` [PATCH 07/20] staging: wfx: add IRQ handling Jerome Pouiller
2019-09-19 10:52 ` [PATCH 08/20] staging: wfx: add tracepoints for HIF Jerome Pouiller
2019-09-19 10:52 ` [PATCH 09/20] staging: wfx: add support for start-up indication Jerome Pouiller
2019-09-19 10:52 ` [PATCH 10/20] staging: wfx: instantiate mac80211 data Jerome Pouiller
2019-09-19 10:52 ` [PATCH 11/20] staging: wfx: allow to send commands to chip Jerome Pouiller
2019-09-19 10:52 ` [PATCH 12/20] staging: wfx: add HIF commands helpers Jerome Pouiller
2019-09-19 10:52 ` [PATCH 13/20] staging: wfx: introduce "secure link" Jerome Pouiller
2019-09-19 10:52 ` [PATCH 14/20] staging: wfx: setup initial chip configuration Jerome Pouiller
2019-09-19 10:52 ` [PATCH 16/20] staging: wfx: allow to send 802.11 frames Jerome Pouiller
2019-09-19 10:52 ` [PATCH 15/20] staging: wfx: add debug files and trace debug events Jerome Pouiller
2019-09-19 10:52 ` [PATCH 17/20] staging: wfx: allow to receive 802.11 frames Jerome Pouiller
2019-09-19 10:52 ` [PATCH 18/20] staging: wfx: allow to scan networks Jerome Pouiller
2019-09-19 10:52 ` [PATCH 19/20] staging: wfx: implement 802.11 key handling Jerome Pouiller
2019-09-19 10:52 ` [PATCH 20/20] staging: wfx: implement the rest of mac80211 API Jerome Pouiller
2019-09-19 11:25 ` [PATCH 00/20] Add support for Silicon Labs WiFi chip WF200 and further Greg Kroah-Hartman
2019-09-19 11:39   ` Arend Van Spriel

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).