summaryrefslogtreecommitdiffstats
path: root/recipes-kernel/iwlwifi
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-kernel/iwlwifi')
-rw-r--r--recipes-kernel/iwlwifi/backport-iwlwifi/0001-Makefile.real-skip-host-install-scripts.patch36
-rw-r--r--recipes-kernel/iwlwifi/backport-iwlwifi/0001-hrtimer-fix-version-numbers-because-production-kerne.patch87
-rw-r--r--recipes-kernel/iwlwifi/backport-iwlwifi/iwlwifi.conf12
-rw-r--r--recipes-kernel/iwlwifi/backport-iwlwifi_git.bb56
4 files changed, 191 insertions, 0 deletions
diff --git a/recipes-kernel/iwlwifi/backport-iwlwifi/0001-Makefile.real-skip-host-install-scripts.patch b/recipes-kernel/iwlwifi/backport-iwlwifi/0001-Makefile.real-skip-host-install-scripts.patch
new file mode 100644
index 00000000..1d4137ba
--- /dev/null
+++ b/recipes-kernel/iwlwifi/backport-iwlwifi/0001-Makefile.real-skip-host-install-scripts.patch
@@ -0,0 +1,36 @@
1From f69ff2fd27903ee052309179271f708d720a2f94 Mon Sep 17 00:00:00 2001
2From: Mikko Ylinen <mikko.ylinen@linux.intel.com>
3Date: Thu, 10 Aug 2017 21:12:51 +0300
4Subject: [PATCH] Makefile.real: skip host install scripts
5
6The scripts run in install target are relevant (and working)
7only if the driver installation is run on the build host.
8
9Skip the scripts when cross-compiling.
10
11Upstream-Status: Inappropriate [Cross-Compile]
12
13Signed-off-by: Mikko Ylinen <mikko.ylinen@linux.intel.com>
14---
15 Makefile.real | 5 -----
16 1 file changed, 5 deletions(-)
17
18diff --git a/Makefile.real b/Makefile.real
19index ba09f99..f5075de 100644
20--- a/Makefile.real
21+++ b/Makefile.real
22@@ -104,11 +104,6 @@ install: modules
23 @$(MAKE) -C $(KLIB_BUILD) M=$(BACKPORT_DIR) \
24 INSTALL_MOD_DIR=$(KMODDIR) $(KMODPATH_ARG) \
25 modules_install
26- @./scripts/blacklist.sh $(KLIB)/ $(KLIB)/$(KMODDIR)
27- @./scripts/compress_modules.sh $(KLIB)/$(KMODDIR)
28- @./scripts/check_depmod.sh
29- @/sbin/depmod -a
30- @./scripts/update-initramfs.sh $(KLIB)
31 @echo
32 @echo Your backported driver modules should be installed now.
33 @echo Reboot.
34--
352.1.4
36
diff --git a/recipes-kernel/iwlwifi/backport-iwlwifi/0001-hrtimer-fix-version-numbers-because-production-kerne.patch b/recipes-kernel/iwlwifi/backport-iwlwifi/0001-hrtimer-fix-version-numbers-because-production-kerne.patch
new file mode 100644
index 00000000..4fdc36f7
--- /dev/null
+++ b/recipes-kernel/iwlwifi/backport-iwlwifi/0001-hrtimer-fix-version-numbers-because-production-kerne.patch
@@ -0,0 +1,87 @@
1From ecb29b78ce946c802058be0c46a0d20432f412e5 Mon Sep 17 00:00:00 2001
2From: Saul Wold <sgw@linux.intel.com>
3Date: Thu, 28 Sep 2017 10:51:15 -0700
4Subject: [PATCH] hrtimer: fix version numbers because production kernel has
5 update
6
7Decrease the version check because the OTC production kernel which is
84.9 includes the HRTimer code that this is using.
9
10Upstream-Status: [Backport] It's been backported into the older kernel
11Signed-off-by: Saul Wold <sgw@linux.intel.com>
12---
13 backport-include/linux/hrtimer.h | 2 +-
14 drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 2 +-
15 drivers/net/wireless/intel/iwlwifi/pcie/tx.c | 2 +-
16 drivers/net/wireless/intel/iwlwifi/trans_slave/shared.c | 2 +-
17 net/mac80211/tx.c | 2 +-
18 5 files changed, 5 insertions(+), 5 deletions(-)
19
20diff --git a/backport-include/linux/hrtimer.h b/backport-include/linux/hrtimer.h
21index bdcf106e1..ae128852d 100644
22--- a/backport-include/linux/hrtimer.h
23+++ b/backport-include/linux/hrtimer.h
24@@ -4,7 +4,7 @@
25 #include_next <linux/hrtimer.h>
26 #include <linux/interrupt.h>
27
28-#if LINUX_VERSION_IS_LESS(4,10,0)
29+#if LINUX_VERSION_IS_LESS(4,9,0)
30 static inline void backport_hrtimer_start(struct hrtimer *timer, s64 time,
31 const enum hrtimer_mode mode)
32 {
33diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
34index cf1f95a01..e6f1ff294 100644
35--- a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
36+++ b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
37@@ -1310,7 +1310,7 @@ static void iwl_mvm_tx_lat_add_ts_ack(struct sk_buff *skb)
38 s64 ts_1 = ktime_to_ns(skb->tstamp) >> 32;
39 s64 diff = temp - ts_1;
40
41-#if LINUX_VERSION_IS_LESS(4,10,0)
42+#if LINUX_VERSION_IS_LESS(4,9,0)
43 skb->tstamp.tv64 += diff;
44 #else
45 skb->tstamp += diff;
46diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/tx.c b/drivers/net/wireless/intel/iwlwifi/pcie/tx.c
47index df81bce25..ad664bacd 100644
48--- a/drivers/net/wireless/intel/iwlwifi/pcie/tx.c
49+++ b/drivers/net/wireless/intel/iwlwifi/pcie/tx.c
50@@ -1955,7 +1955,7 @@ static void iwl_trans_pci_tx_lat_add_ts_write(struct sk_buff *skb)
51 s64 ts_1 = ktime_to_ns(skb->tstamp) >> 32;
52 s64 diff = temp - ts_1;
53
54-#if LINUX_VERSION_IS_LESS(4,10,0)
55+#if LINUX_VERSION_IS_LESS(4,9,0)
56 skb->tstamp.tv64 += diff << 16;
57 #else
58 skb->tstamp += diff << 16;
59diff --git a/drivers/net/wireless/intel/iwlwifi/trans_slave/shared.c b/drivers/net/wireless/intel/iwlwifi/trans_slave/shared.c
60index e4d45bcf7..cdd0ba9a2 100644
61--- a/drivers/net/wireless/intel/iwlwifi/trans_slave/shared.c
62+++ b/drivers/net/wireless/intel/iwlwifi/trans_slave/shared.c
63@@ -796,7 +796,7 @@ void iwl_slv_tx_lat_add_ts_write(struct iwl_trans_slv *trans_slv,
64
65 ts_1 = ktime_to_ns(data_entry->skb->tstamp) >> 32;
66 diff = temp - ts_1;
67-#if LINUX_VERSION_IS_LESS(4,10,0)
68+#if LINUX_VERSION_IS_LESS(4,9,0)
69 data_entry->skb->tstamp.tv64 += diff << 16;
70 #else
71 data_entry->skb->tstamp += diff << 16;
72diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
73index 94a348688..0f226c413 100644
74--- a/net/mac80211/tx.c
75+++ b/net/mac80211/tx.c
76@@ -2278,7 +2278,7 @@ static void ieee80211_tx_latency_start_msrmnt(struct ieee80211_local *local,
77 if (!tx_latency && !tx_consec && !tx_thrshld)
78 return;
79 temp = ktime_to_ms(ktime_get());
80-#if LINUX_VERSION_IS_LESS(4,10,0)
81+#if LINUX_VERSION_IS_LESS(4,9,0)
82 skb->tstamp.tv64 += temp << 32;
83 #else
84 skb->tstamp += temp << 32;
85--
862.13.5
87
diff --git a/recipes-kernel/iwlwifi/backport-iwlwifi/iwlwifi.conf b/recipes-kernel/iwlwifi/backport-iwlwifi/iwlwifi.conf
new file mode 100644
index 00000000..a0e5f6ff
--- /dev/null
+++ b/recipes-kernel/iwlwifi/backport-iwlwifi/iwlwifi.conf
@@ -0,0 +1,12 @@
1# /etc/modprobe.d/iwlwifi.conf
2# iwlwifi will dynamically load either iwldvm or iwlmvm depending on the
3# microcode file installed on the system. When removing iwlwifi, first
4# remove the iwl?vm module and then iwlwifi.
5remove iwlwifi (/sbin/lsmod | grep -o -e ^iwlmvm -e ^iwldvm16 -e ^iwldvm -e ^iwlwifi | xargs /sbin/rmmod) && /sbin/modprobe -r mac80211
6
7#options iwlwifi lar_disable=1
8#options iwlwifi nvm_file="nvm-sfp-b2-open.bin"
9options iwlmvm power_scheme=1
10
11# PCI BUS
12
diff --git a/recipes-kernel/iwlwifi/backport-iwlwifi_git.bb b/recipes-kernel/iwlwifi/backport-iwlwifi_git.bb
new file mode 100644
index 00000000..d391045f
--- /dev/null
+++ b/recipes-kernel/iwlwifi/backport-iwlwifi_git.bb
@@ -0,0 +1,56 @@
1SUMMARY = "Intel Wireless LinuxCore kernel driver"
2DESCRIPTION = "Intel Wireless LinuxCore kernel driver"
3SECTION = "kernel"
4LICENSE = "GPLv2"
5
6REQUIRED_DISTRO_FEATURES = "wifi"
7
8LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
9
10inherit module
11
12# For some iwfwifi LinuxCore supported wireless chips, the best/latest
13# firmware blobs are found in the iwlwifi's linux-firmware.git fork.
14#
15# See: https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi/core_release
16#
17# When updating this recipe, ensure that the proper firmware is included from
18# either the linux-firmware or iwlwifi-firmware repos.
19
20PV = "30"
21SRCREV = "b31221a99488021300e7f89d2ecf9bdd2bc52dd2"
22
23# Add a patch for Intel's Production Kernel as it's got a backport of HRTimers
24PK_PATCH = "${@bb.utils.contains('PREFERRED_PROVIDER_virtual/kernel','linux-intel','file://0001-hrtimer-fix-version-numbers-because-production-kerne.patch','',d)}"
25
26SRC_URI = " \
27 git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/backport-iwlwifi;branch=release/LinuxCore${PV} \
28 file://0001-Makefile.real-skip-host-install-scripts.patch \
29 ${PK_PATCH} \
30 file://iwlwifi.conf \
31 "
32
33S = "${WORKDIR}/git"
34
35EXTRA_OEMAKE = "INSTALL_MOD_PATH=${D} KLIB_BUILD=${KBUILD_OUTPUT}"
36
37do_configure() {
38 CC=gcc CFLAGS= LDFLAGS= make defconfig-iwlwifi-public KLIB_BUILD=${KBUILD_OUTPUT}
39}
40
41MODULES_INSTALL_TARGET="install"
42
43do_install_append() {
44 ## install configs and service scripts
45 install -d ${D}${sysconfdir}/modprobe.d
46 install -m 0644 ${WORKDIR}/iwlwifi.conf ${D}${sysconfdir}/modprobe.d
47}
48
49SYSTEMD_AUTO_ENABLE_${PN} = "enable"
50
51RDEPENDS_${PN} = "linux-firmware-iwlwifi"
52
53KERNEL_MODULE_AUTOLOAD_append_core2-32-intel-common = " iwlwifi"
54KERNEL_MODULE_AUTOLOAD_append_corei7-64-intel-common = " iwlwifi"
55
56KERNEL_MODULE_PACKAGE_PREFIX = "backport-iwlwifi"