diff options
Diffstat (limited to 'recipes-kernel/wilc1000')
-rw-r--r-- | recipes-kernel/wilc1000/files/wilc1000.conf | 1 | ||||
-rw-r--r-- | recipes-kernel/wilc1000/files/wilcp1000_3.18_to_3.12_kernel.patch | 82 | ||||
-rw-r--r-- | recipes-kernel/wilc1000/wilc1000_3.12.27.bb.obsolete | 35 |
3 files changed, 118 insertions, 0 deletions
diff --git a/recipes-kernel/wilc1000/files/wilc1000.conf b/recipes-kernel/wilc1000/files/wilc1000.conf new file mode 100644 index 0000000..250e093 --- /dev/null +++ b/recipes-kernel/wilc1000/files/wilc1000.conf @@ -0,0 +1 @@ +blacklist atmel_mci diff --git a/recipes-kernel/wilc1000/files/wilcp1000_3.18_to_3.12_kernel.patch b/recipes-kernel/wilc1000/files/wilcp1000_3.18_to_3.12_kernel.patch new file mode 100644 index 0000000..00d1710 --- /dev/null +++ b/recipes-kernel/wilc1000/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/wilc1000/wilc1000_3.12.27.bb.obsolete b/recipes-kernel/wilc1000/wilc1000_3.12.27.bb.obsolete new file mode 100644 index 0000000..db14e1f --- /dev/null +++ b/recipes-kernel/wilc1000/wilc1000_3.12.27.bb.obsolete @@ -0,0 +1,35 @@ +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 \ + file://wilc1000.conf \ + https://github.com/linux4sc/wireless-firmware/raw/master/wilc1003_firmware.bin;name=blob \ + " + +SRC_URI[blob.md5sum] = "a3651b5696ac674a3b2100d109bb2757" +SRC_URI[blob.sha256sum] = "57584b0cf000f43405b0ef1201c6d1302cc7f7e187144c7946ce2fa12fb6f49b" + +S = "${WORKDIR}/git" + +EXTRA_OEMAKE = '-C ${STAGING_KERNEL_DIR} M=${S} \ + CONFIG_ATMEL_SMARTCONNECT=y \ + CONFIG_WILC1000=m \ + CONFIG_WILC1000_SDIO=m \ + ' + +do_install() { + echo PN is ${PN} + 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 + install -d ${D}${sysconfdir}/modprobe.d + install -m 0644 ${WORKDIR}/wilc1000.conf ${D}${sysconfdir}/modprobe.d + install -d -m 0755 ${D}/lib/firmware/atmel + install -m 0644 ${WORKDIR}/wilc1003_firmware.bin ${D}/lib/firmware/atmel +} +FILES_kernel-module-${PN} += "${sysconfdir}/modprobe.d/wilc1000.conf /lib/firmware/atmel/wilc1003_firmware.bin" |