summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Klug <john.klug@multitech.com>2017-02-21 16:53:18 -0600
committerJohn Klug <john.klug@multitech.com>2017-02-21 16:53:18 -0600
commitc7722cb7cb342284cfb2db4510c64a16b8983dcd (patch)
treeef46d6bc8497bdaa8767481b06829081b202e63a
parent3b50a48f55c1221968caceaff6299bdbe95ab83c (diff)
downloadmeta-multitech-c7722cb7cb342284cfb2db4510c64a16b8983dcd.tar.gz
meta-multitech-c7722cb7cb342284cfb2db4510c64a16b8983dcd.tar.bz2
meta-multitech-c7722cb7cb342284cfb2db4510c64a16b8983dcd.zip
add wilc1000 driver for MTCAP
-rw-r--r--recipes-kernel/wlic1000/files/wilcp1000_3.18_to_3.12_kernel.patch82
-rw-r--r--recipes-kernel/wlic1000/wilc1000_git.bb25
2 files changed, 107 insertions, 0 deletions
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
+}