[linux-yocto] [kernel-cache][PATCH] features/wifi: Add WiFi driver fragments for various vendors/interfaces

Nathan Rossi nathan at nathanrossi.com
Tue Mar 20 07:10:02 PDT 2018


This change adds WiFi driver configuration fragments. The fragments are
split into vendor and interface files to allow for easy selection of
drivers for specific interface types (USB, PCI, SDIO) which is useful
for BSPs with specific interfaces. The specific vendor/interface config
fragments can be included by specific BSPs in its .scc files.

However .scc files (wifi-*.scc) are provided to allow enabling interface
specific or all interfaces drivers via KERNEL_FEATURES or inclusion via
other .scc files. And wifi-common.scc is provided to enable the base
config options required for all WiFi drivers, which is done to ensure
correct configuration for default no config setups (e.g.
linux-yocto-tiny).

This patch only enables a limited set of drivers, which is based on what
the common-pc-wifi.cfg fragment sets as well as some additional drivers,
that primarily appear in USB WiFi devices.

Signed-off-by: Nathan Rossi <nathan at nathanrossi.com>
---
These changes are very similar to a set of configuration fragments that
were included (?) in minnow branches in ~2013. However they never made
it into the current set of configuration fragments.

https://lists.yoctoproject.org/pipermail/linux-yocto/2013-November/001393.html

Also whilst not in this patch, if accepted these fragments could replace
the common-pc-wifi.cfg to reduce duplication.

For completeness I have tested these fragments on linux-yocto version
v4.14 and v4.15 for qemux86, qemux86-64 and qemuarm builds as well as
for the beaglebone-yocto target. For v4.12 compatibility, due to the
iwlwifi fragments adding patches (which do not apply correctly to
standard/base) the fragments would need to be modified.
---
 features/wifi/atheros-pci.cfg   | 11 +++++++++++
 features/wifi/atheros-usb.cfg   |  8 ++++++++
 features/wifi/broadcom-pci.cfg  | 11 +++++++++++
 features/wifi/broadcom-sdio.cfg | 11 +++++++++++
 features/wifi/broadcom-usb.cfg  |  7 +++++++
 features/wifi/mediatek-pci.cfg  |  3 +++
 features/wifi/mediatek-usb.cfg  |  3 +++
 features/wifi/ralink-pci.cfg    | 15 +++++++++++++++
 features/wifi/ralink-usb.cfg    | 12 ++++++++++++
 features/wifi/realtek-pci.cfg   | 18 ++++++++++++++++++
 features/wifi/realtek-usb.cfg   | 11 +++++++++++
 features/wifi/wifi-all.scc      |  7 +++++++
 features/wifi/wifi-common.cfg   |  4 ++++
 features/wifi/wifi-common.scc   |  7 +++++++
 features/wifi/wifi-pci.scc      | 14 ++++++++++++++
 features/wifi/wifi-sdio.scc     |  7 +++++++
 features/wifi/wifi-usb.scc      | 11 +++++++++++
 17 files changed, 160 insertions(+)
 create mode 100644 features/wifi/atheros-pci.cfg
 create mode 100644 features/wifi/atheros-usb.cfg
 create mode 100644 features/wifi/broadcom-pci.cfg
 create mode 100644 features/wifi/broadcom-sdio.cfg
 create mode 100644 features/wifi/broadcom-usb.cfg
 create mode 100644 features/wifi/mediatek-pci.cfg
 create mode 100644 features/wifi/mediatek-usb.cfg
 create mode 100644 features/wifi/ralink-pci.cfg
 create mode 100644 features/wifi/ralink-usb.cfg
 create mode 100644 features/wifi/realtek-pci.cfg
 create mode 100644 features/wifi/realtek-usb.cfg
 create mode 100644 features/wifi/wifi-all.scc
 create mode 100644 features/wifi/wifi-common.cfg
 create mode 100644 features/wifi/wifi-common.scc
 create mode 100644 features/wifi/wifi-pci.scc
 create mode 100644 features/wifi/wifi-sdio.scc
 create mode 100644 features/wifi/wifi-usb.scc

diff --git a/features/wifi/atheros-pci.cfg b/features/wifi/atheros-pci.cfg
new file mode 100644
index 0000000000..1c48a0528a
--- /dev/null
+++ b/features/wifi/atheros-pci.cfg
@@ -0,0 +1,11 @@
+CONFIG_WLAN_VENDOR_ATH=y
+
+# ath5k
+CONFIG_ATH5K=m
+
+# ath9k
+CONFIG_ATH9K=m
+CONFIG_ATH9K_RFKILL=y
+CONFIG_ATH9K_PCOEM=y
+CONFIG_ATH9K_PCI=y
+
diff --git a/features/wifi/atheros-usb.cfg b/features/wifi/atheros-usb.cfg
new file mode 100644
index 0000000000..b9767dc164
--- /dev/null
+++ b/features/wifi/atheros-usb.cfg
@@ -0,0 +1,8 @@
+CONFIG_WLAN_VENDOR_ATH=y
+
+# ath9k
+CONFIG_ATH9K=m
+CONFIG_ATH9K_RFKILL=y
+CONFIG_ATH9K_PCOEM=y
+CONFIG_ATH9K_HTC=y
+
diff --git a/features/wifi/broadcom-pci.cfg b/features/wifi/broadcom-pci.cfg
new file mode 100644
index 0000000000..2b5abe5842
--- /dev/null
+++ b/features/wifi/broadcom-pci.cfg
@@ -0,0 +1,11 @@
+CONFIG_WLAN_VENDOR_BROADCOM=y
+
+# brcm80211
+CONFIG_BRCMUTIL=m
+CONFIG_BRCMSMAC=m
+CONFIG_BRCMFMAC=m
+CONFIG_BRCMFMAC_PCIE=y
+
+# b43
+CONFIG_B43=m
+
diff --git a/features/wifi/broadcom-sdio.cfg b/features/wifi/broadcom-sdio.cfg
new file mode 100644
index 0000000000..7762ccc61c
--- /dev/null
+++ b/features/wifi/broadcom-sdio.cfg
@@ -0,0 +1,11 @@
+CONFIG_WLAN_VENDOR_BROADCOM=y
+
+# brcm80211
+CONFIG_BRCMUTIL=m
+CONFIG_BRCMFMAC=m
+CONFIG_BRCMFMAC_SDIO=y
+
+# b43
+CONFIG_B43=m
+CONFIG_B43_SDIO=y
+
diff --git a/features/wifi/broadcom-usb.cfg b/features/wifi/broadcom-usb.cfg
new file mode 100644
index 0000000000..098933788d
--- /dev/null
+++ b/features/wifi/broadcom-usb.cfg
@@ -0,0 +1,7 @@
+CONFIG_WLAN_VENDOR_BROADCOM=y
+
+# brcm80211
+CONFIG_BRCMUTIL=m
+CONFIG_BRCMFMAC=m
+CONFIG_BRCMFMAC_USB=y
+
diff --git a/features/wifi/mediatek-pci.cfg b/features/wifi/mediatek-pci.cfg
new file mode 100644
index 0000000000..f37937ac21
--- /dev/null
+++ b/features/wifi/mediatek-pci.cfg
@@ -0,0 +1,3 @@
+CONFIG_WLAN_VENDOR_MEDIATEK=y
+CONFIG_MT76x2E=m
+
diff --git a/features/wifi/mediatek-usb.cfg b/features/wifi/mediatek-usb.cfg
new file mode 100644
index 0000000000..b2975569ea
--- /dev/null
+++ b/features/wifi/mediatek-usb.cfg
@@ -0,0 +1,3 @@
+CONFIG_WLAN_VENDOR_MEDIATEK=y
+CONFIG_MT7601U=m
+
diff --git a/features/wifi/ralink-pci.cfg b/features/wifi/ralink-pci.cfg
new file mode 100644
index 0000000000..8320bd92f7
--- /dev/null
+++ b/features/wifi/ralink-pci.cfg
@@ -0,0 +1,15 @@
+CONFIG_WLAN_VENDOR_RALINK=y
+
+# rt2x00
+CONFIG_RT2X00=m
+
+# pci
+CONFIG_RT2400PCI=m
+CONFIG_RT2500PCI=m
+CONFIG_RT61PCI=m
+CONFIG_RT2800PCI=m
+CONFIG_RT2800PCI_RT33XX=y
+config RT2800PCI_RT35XX=y
+config RT2800PCI_RT53XX=y
+config RT2800PCI_RT3290=y
+
diff --git a/features/wifi/ralink-usb.cfg b/features/wifi/ralink-usb.cfg
new file mode 100644
index 0000000000..25ed907a2b
--- /dev/null
+++ b/features/wifi/ralink-usb.cfg
@@ -0,0 +1,12 @@
+CONFIG_WLAN_VENDOR_RALINK=y
+
+# rt2x00
+CONFIG_RT2X00=m
+
+# usb
+CONFIG_RT2500USB=m
+CONFIG_RT73USB=m
+CONFIG_RT2800USB=m
+CONFIG_RT2800USB_RT33XX=y
+CONFIG_RT2800USB_RT35XX=y
+
diff --git a/features/wifi/realtek-pci.cfg b/features/wifi/realtek-pci.cfg
new file mode 100644
index 0000000000..df67b85102
--- /dev/null
+++ b/features/wifi/realtek-pci.cfg
@@ -0,0 +1,18 @@
+CONFIG_WLAN_VENDOR_REALTEK=y
+
+# rtl818x
+CONFIG_RTL8180=m
+
+# rtl8xxxu
+CONFIG_RTL8XXXU=m
+
+# rtlwifi
+CONFIG_RTL_CARDS=y
+CONFIG_RTL8192CE=m
+CONFIG_RTL8192SE=m
+CONFIG_RTL8192DE=m
+CONFIG_RTL8723AE=m
+CONFIG_RTL8723BE=m
+CONFIG_RTL8188EE=m
+CONFIG_RTL8192EE=m
+CONFIG_RTL8821AE=m
diff --git a/features/wifi/realtek-usb.cfg b/features/wifi/realtek-usb.cfg
new file mode 100644
index 0000000000..111ec439cf
--- /dev/null
+++ b/features/wifi/realtek-usb.cfg
@@ -0,0 +1,11 @@
+CONFIG_WLAN_VENDOR_REALTEK=y
+
+# rtl818x
+CONFIG_RTL8187=y
+
+# rtl8xxxu
+CONFIG_RTL8XXXU=m
+
+# rtlwifi
+CONFIG_RTL_CARDS=y
+CONFIG_RTL8192CU=m
diff --git a/features/wifi/wifi-all.scc b/features/wifi/wifi-all.scc
new file mode 100644
index 0000000000..0fe6f931f6
--- /dev/null
+++ b/features/wifi/wifi-all.scc
@@ -0,0 +1,7 @@
+define KFEATURE_DESCRIPTION "Enable All WiFi Drivers"
+define KFEATURE_COMPATIBILITY board
+
+include wifi-pci.scc
+include wifi-sdio.scc
+include wifi-usb.scc
+
diff --git a/features/wifi/wifi-common.cfg b/features/wifi/wifi-common.cfg
new file mode 100644
index 0000000000..c5b019ebef
--- /dev/null
+++ b/features/wifi/wifi-common.cfg
@@ -0,0 +1,4 @@
+CONFIG_NET=y
+CONFIG_NETDEVICES=y
+CONFIG_WIRELESS=y
+CONFIG_WLAN=y
diff --git a/features/wifi/wifi-common.scc b/features/wifi/wifi-common.scc
new file mode 100644
index 0000000000..4f7633ce24
--- /dev/null
+++ b/features/wifi/wifi-common.scc
@@ -0,0 +1,7 @@
+define KFEATURE_DESCRIPTION "Enable Common WiFi Kernel Features"
+define KFEATURE_COMPATIBILITY board
+
+kconf hardware wifi-common.cfg
+
+include features/mac80211/mac80211.scc
+
diff --git a/features/wifi/wifi-pci.scc b/features/wifi/wifi-pci.scc
new file mode 100644
index 0000000000..a2d7ff5a6a
--- /dev/null
+++ b/features/wifi/wifi-pci.scc
@@ -0,0 +1,14 @@
+define KFEATURE_DESCRIPTION "Enable PCI(e) WiFi Drivers"
+define KFEATURE_COMPATIBILITY board
+
+include wifi-common.scc
+
+kconf hardware atheros-pci.cfg
+kconf hardware broadcom-pci.cfg
+kconf hardware mediatek-pci.cfg
+kconf hardware ralink-pci.cfg
+kconf hardware realtek-pci.cfg
+
+include features/iwlwifi/iwlwifi.scc
+include features/iwlegacy/iwlegacy.scc
+
diff --git a/features/wifi/wifi-sdio.scc b/features/wifi/wifi-sdio.scc
new file mode 100644
index 0000000000..23843d0367
--- /dev/null
+++ b/features/wifi/wifi-sdio.scc
@@ -0,0 +1,7 @@
+define KFEATURE_DESCRIPTION "Enable SDIO WiFi Drivers"
+define KFEATURE_COMPATIBILITY board
+
+include wifi-common.scc
+
+kconf hardware broadcom-sdio.cfg
+
diff --git a/features/wifi/wifi-usb.scc b/features/wifi/wifi-usb.scc
new file mode 100644
index 0000000000..9f9bafd4c9
--- /dev/null
+++ b/features/wifi/wifi-usb.scc
@@ -0,0 +1,11 @@
+define KFEATURE_DESCRIPTION "Enable USB WiFi Drivers"
+define KFEATURE_COMPATIBILITY board
+
+include wifi-common.scc
+
+kconf hardware atheros-usb.cfg
+kconf hardware broadcom-usb.cfg
+kconf hardware mediatek-usb.cfg
+kconf hardware ralink-usb.cfg
+kconf hardware realtek-usb.cfg
+
-- 
2.16.2



More information about the linux-yocto mailing list