From c7722cb7cb342284cfb2db4510c64a16b8983dcd Mon Sep 17 00:00:00 2001 From: John Klug Date: Tue, 21 Feb 2017 16:53:18 -0600 Subject: add wilc1000 driver for MTCAP --- .../files/wilcp1000_3.18_to_3.12_kernel.patch | 82 ++++++++++++++++++++++ recipes-kernel/wlic1000/wilc1000_git.bb | 25 +++++++ 2 files changed, 107 insertions(+) create mode 100644 recipes-kernel/wlic1000/files/wilcp1000_3.18_to_3.12_kernel.patch create mode 100644 recipes-kernel/wlic1000/wilc1000_git.bb diff --git a/recipes-kernel/wlic1000/files/wilcp1000_3.18_to_3.12_kernel.patch b/recipes-kernel/wlic1000/files/wilcp1000_3.18_to_3.12_kernel.patch new file mode 100644 index 0000000..00d1710 --- /dev/null +++ b/recipes-kernel/wlic1000/files/wilcp1000_3.18_to_3.12_kernel.patch @@ -0,0 +1,82 @@ +diff -Naur old/linux_wlan.c new/linux_wlan.c +--- old/linux_wlan.c 2017-02-21 15:13:21.389041425 -0600 ++++ new/linux_wlan.c 2017-02-21 15:37:12.987788018 -0600 +@@ -262,12 +262,14 @@ + + for (i = 0; i < wilc->vif_num; i++) { + if (wilc->vif[i]->mode == STATION_MODE) +- if (ether_addr_equal_unaligned(bssid, +- wilc->vif[i]->bssid)) ++ if (memcmp(bssid, ++ wilc->vif[i]->bssid, ++ ETH_ALEN)) + return wilc->vif[i]->ndev; + if (wilc->vif[i]->mode == AP_MODE) +- if (ether_addr_equal_unaligned(bssid1, +- wilc->vif[i]->bssid)) ++ if (memcmp(bssid1, ++ wilc->vif[i]->bssid, ++ ETH_ALEN)) + return wilc->vif[i]->ndev; + } + +diff -Naur old/wilc_wfi_cfgoperations.c new/wilc_wfi_cfgoperations.c +--- old/wilc_wfi_cfgoperations.c 2017-02-21 13:27:59.211945789 -0600 ++++ new/wilc_wfi_cfgoperations.c 2017-02-21 14:19:01.230605864 -0600 +@@ -249,7 +249,6 @@ + direct_scan) { + bss = cfg80211_inform_bss(wiphy, + channel, +- CFG80211_BSS_FTYPE_UNKNOWN, + network_info->bssid, + network_info->tsf_hi, + network_info->cap_info, +@@ -424,7 +423,6 @@ + if (!(memcmp("DIRECT-", network_info->ssid, 7))) { + bss = cfg80211_inform_bss(wiphy, + channel, +- CFG80211_BSS_FTYPE_UNKNOWN, + network_info->bssid, + network_info->tsf_hi, + network_info->cap_info, +@@ -1510,7 +1508,7 @@ + + + if ((buff[P2P_PUB_ACTION_SUBTYPE] == GO_NEG_REQ || buff[P2P_PUB_ACTION_SUBTYPE] == GO_NEG_RSP) && (wilc_ie)) { +- cfg80211_rx_mgmt(priv->wdev, s32Freq, 0, buff, size - 7, 0); ++ cfg80211_rx_mgmt(priv->wdev, s32Freq, 0, buff, size - 7, 0, GFP_ATOMIC); + return; + } + break; +@@ -1522,7 +1520,7 @@ + } + } + +- cfg80211_rx_mgmt(priv->wdev, s32Freq, 0, buff, size, 0); ++ cfg80211_rx_mgmt(priv->wdev, s32Freq, 0, buff, size, 0, GFP_ATOMIC); + } + } + +@@ -1616,14 +1614,16 @@ + + static int mgmt_tx(struct wiphy *wiphy, + struct wireless_dev *wdev, +- struct cfg80211_mgmt_tx_params *params, ++ struct ieee80211_channel *chan, ++ bool offchan, ++ unsigned int wait, ++ const u8 *buf, ++ size_t len, ++ bool no_cck, ++ bool dont_wait_for_ack, + u64 *cookie) + { +- struct ieee80211_channel *chan = params->chan; +- unsigned int wait = params->wait; +- const u8 *buf = params->buf; +- size_t len = params->len; +- const struct ieee80211_mgmt *mgmt; ++ const struct ieee80211_mgmt *mgmt; + struct p2p_mgmt_data *mgmt_tx; + struct wilc_priv *priv; + struct host_if_drv *pstrWFIDrv; diff --git a/recipes-kernel/wlic1000/wilc1000_git.bb b/recipes-kernel/wlic1000/wilc1000_git.bb new file mode 100644 index 0000000..12d3e90 --- /dev/null +++ b/recipes-kernel/wlic1000/wilc1000_git.bb @@ -0,0 +1,25 @@ +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" + +inherit module + +PV = "3.18" +KBRANCH = "kernel-3.18" +SRCREV = "${AUTOREV}" +SRC_URI = "git://github.com/linux4sc/staging.git;protocol=git;branch=${KBRANCH} \ + file://wilcp1000_3.18_to_3.12_kernel.patch \ + " + + +S = "${WORKDIR}/git" + +EXTRA_OEMAKE = '-C ${STAGING_KERNEL_DIR} M=${S} \ + CONFIG_ATMEL_SMARTCONNECT=y \ + CONFIG_WILC1000=m \ + CONFIG_WILC1000_SDIO=m \ + ' + +do_install() { + install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net/wireless/atmel/wilc1000 + install -m 0644 ${S}/*${KERNEL_OBJECT_SUFFIX} ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net/wireless/atmel/wilc1000 +} -- cgit v1.2.3