On 22 March 2018 at 15:33, Bruce Ashfield <bruce.ashfi...@windriver.com> wrote: > 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 <nat...@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.
Just adding iwlwifi.scc to KERNEL_FEATURES either directly or via the include in one of the .scc files of this patch causes the iwlwifi patches to apply. KERNEL_FEATURES_append = " features/iwlwifi/iwlwifi.scc" | DEBUG: Executing shell function do_patch | (1/310) iwlwifi-mvm-support-getting-nvm-data-from-firmware.patch | [INFO]: check of .kernel-meta//patches//features/iwlwifi/iwlwifi-mvm-support-getting-nvm-data-from-firmware.patch with "git am" did not pass, trying reduced context. | [INFO]: Context reduced git-am of .kernel-meta//patches//features/iwlwifi/iwlwifi-mvm-support-getting-nvm-data-from-firmware.patch with "git am" did not work, trying "apply". | /storage/nathan/build/test-wifi/tmp-glibc/work-shared/qemux86-64/kernel-source/.git/rebase-apply/patch:26: indent with spaces. | * struct iwl_nvm_get_info - request to get NVM data | /storage/nathan/build/test-wifi/tmp-glibc/work-shared/qemux86-64/kernel-source/.git/rebase-apply/patch:27: indent with spaces. | */ | /storage/nathan/build/test-wifi/tmp-glibc/work-shared/qemux86-64/kernel-source/.git/rebase-apply/patch:33: indent with spaces. | * struct iwl_nvm_get_info_general - general NVM data | /storage/nathan/build/test-wifi/tmp-glibc/work-shared/qemux86-64/kernel-source/.git/rebase-apply/patch:34: indent with spaces. | * @flags: 1 - empty, 0 - valid | /storage/nathan/build/test-wifi/tmp-glibc/work-shared/qemux86-64/kernel-source/.git/rebase-apply/patch:35: indent with spaces. | * @nvm_version: nvm version | error: patch failed: drivers/net/wireless/intel/iwlwifi/mvm/fw-api.h:345 | error: drivers/net/wireless/intel/iwlwifi/mvm/fw-api.h: patch does not apply | error: patch failed: drivers/net/wireless/intel/iwlwifi/mvm/fw.c:738 | error: drivers/net/wireless/intel/iwlwifi/mvm/fw.c: patch does not apply | error: patch failed: drivers/net/wireless/intel/iwlwifi/mvm/mvm.h:1390 | error: drivers/net/wireless/intel/iwlwifi/mvm/mvm.h: patch does not apply | error: patch failed: drivers/net/wireless/intel/iwlwifi/mvm/nvm.c:374 | error: drivers/net/wireless/intel/iwlwifi/mvm/nvm.c: patch does not apply | error: patch failed: drivers/net/wireless/intel/iwlwifi/mvm/ops.c:483 | error: drivers/net/wireless/intel/iwlwifi/mvm/ops.c: patch does not apply | [ERROR]: Application of .kernel-meta//patches//features/iwlwifi/iwlwifi-mvm-support-getting-nvm-data-from-firmware.patch failed. | Patch needs to be refreshed. Sample resolution script: | .git/rebase-apply/resolve_rejects | ERROR: Could not apply patches for qemux86-64. I thought this behaviour was intentional given this part of kernel-yocto.bbclass? http://git.openembedded.org/openembedded-core/tree/meta/classes/kernel-yocto.bbclass#n178 Regards, Nathan > > 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 >> + >> > -- _______________________________________________ linux-yocto mailing list linux-yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/linux-yocto