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

Bruce Ashfield bruce.ashfield at windriver.com
Wed Mar 21 22:33:52 PDT 2018


On 03/20/2018 10:10 AM, Nathan Rossi wrote:
> 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.
> 

These changes look good to me. I'll let them sit on the list for
another day or so, and see if anyone else has any comments.


> 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

Interesting. I'm not sure how they ended up getting dropped or
lost, but when I merge this, it will go into the versioned
branches and master, so it can't be lost again.

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

Indeed. We can look at that in follow up commits.

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

What configuration were you building to trigger those errors ? Just
qemux86-64 ? something else ? The patches should have been ignored,
as long as the fragment wasn't directly on the SRC_URI.

Bruce

> ---
>   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
> +
> 



More information about the linux-yocto mailing list