summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2018-08-29features: drop obsolete configsyocto-4.12Anuj Mittal
These are no longer present and give warnings when used with KCONF_BSP_AUDIT set. Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-08-28kver: bump to v4.12.29Bruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-08-23dmm.cfg: Change dm-multipath from built-in kernel module to LKMChangqing Li
It is better to use LKM for dm-multipath. 1. For multipathd service, it will modprobe dm-multipath before start the daemon. 2. In package multipath, there is a script mpathconf which can config or check configuration of mutltipath, which will use lsmod to check if dm_multipath is loaded. Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-08-20bsp: Add tiny config entries for intel-x86He Zhe
Signed-off-by: He Zhe <zhe.he@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-08-14kver: bump to v4.12.28Bruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-07-25standard: add bfp configs by defaultBruce Ashfield
Userspace functionality that requires BPF is becoming more common (even systemd is looking for it), so we globally enable these configs in the standard configuration. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-07-19rbd: Add fragments for Rados block deviceHe Zhe
Signed-off-by: He Zhe <zhe.he@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-07-19intel-x86: Add preemp-rt config entriesHe Zhe
Signed-off-by: He Zhe <zhe.he@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-07-13tiny: Remove CONFIG_TINY_RCUHe Zhe
Currently CONFIG_SMP and CONFIG_PREEMPT are enabled for tiny by default which prevents CONFIG_TINY_RCU from being enabled and causes the follow warning. When CONFIG_SMP and CONFIG_PREEMPT are disabled, like when building UP kernel, CONFIG_TINY_RCU will be selected by default. So this removal fixes the warning and is harmless. ---------- CONFIG_TINY_RCU ----------------- Config: CONFIG_TINY_RCU From: kernel-source/.kernel-meta/configs/VERSION/standard/tiny/ktypes/tiny/tiny.cfg Requested value: CONFIG_TINY_RCU=y Actual value: Signed-off-by: He Zhe <zhe.he@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-07-13intel-x86: Add intel-x86 BSPsYongxin Liu
Create intel-x86-32/64 descriptions in yocto-kernel-cache. These BSPs include all the core support for intel-x86 BSP. This is an initial step to get the machines available and testing. Signed-off-by: Yongxin Liu <yongxin.liu@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-07-05Add scsi device handlerChangqing Li
multipathd service depend on kernel module scsi_dh_alua/ scsi_dh_emc/scsi_dh_rdac, without these kernel modules, service start info will have FAIL info. add these device handler so that user can use it. Signed-off-by: Changqing Li <changqing.li@windriver.com>
2018-07-05kver: bump to 4.12.26Bruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-07-02kver: bump to v4.12.25Bruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-05-15kver: bump to v4.12.24Bruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-05-08kver: bump to v4.12.23Bruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-05-01bsp/axxiaarm*: Enable SMP and VMFS supportDaniel Dragomir
Signed-off-by: Daniel Dragomir <daniel.dragomir@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-04-20bsp/axxiaarm*: Change LSI references to AXXIADaniel Dragomir
Also, disable PPS support for axxiarm BSP. Signed-off-by: Daniel Dragomir <daniel.dragomir@windriver.com>
2018-04-17kver: bump to v4.12.22Bruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-04-17features/net/team: Add Ethernet TEAM driversWenzong Fan
Add Ethernet TEAM drivers for supporting libteam: The Team softdev Linux driver provides a mechanism to team multiple NICs (ports) into a single logical one (teamdev) at L2 layer. This process is called "channel bonding", "Ethernet bonding", "channel teaming", "link aggregation", etc. Bonding is already implemented in the Linux kernel but the Team softdev Linux driver is modular, userspace driven, very lean and efficient, and it does have some distinct advantages over the kernel's bonding driver. Detail description can be found in: http://libteam.org Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-03-25features/intel-pmc: add Intel pmc core supportLiwei Song
Add PMC Driver support for Intel Core SoC. Signed-off-by: Liwei Song <liwei.song@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-03-22wifi: move patches to a dedicated "patches" .scc fileBruce Ashfield
With the reorganization of the wifi configuration fragments, it is common that wifi is enabled via KERNEL_FEATURES inclusion. This technique works on 4.14/4.15/master, but not on 4.12, since the iwlwifi .scc file contains patches .. which are already applied to the tree, as a result you get patch failures when attempting to add the wifi configuratio to your kernel. To stay consistent with 4.14+, we can move the patches to a iwlwifi-patches file, include that from the BSPs (so patches will be applied during a new kernel tree construction). We then leave iwlwifi as just configuration fragments (which are also included by the BSPs), and that configuration fragment is safe to use via KERNEL_FEATURES. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-03-22features/wifi: Add WiFi driver fragments for various vendors/interfacesNathan Rossi
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. Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-03-18kver: bump to v4.12.21Bruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-03-05drm/i915/cfl: Coffee Lake works on Kaby Lake PCH.Bruce Ashfield
1/1 [ Author: Rodrigo Vivi Email: rodrigo.vivi@intel.com Subject: drm/i915/cfl: Coffee Lake works on Kaby Lake PCH. Date: Mon, 5 Mar 2018 03:53:05 -0500 commit eb371933cf4d3495d0899880b2e0e252ce9db517 upstream. Coffee Lake CPU on Kaby Lake PCH is possible. It does exist, and it does work. The only missed case was this warning here noticed by Wendy who could get one system with this configuration and reported the issue for us: Hardware Configuration Board ID KBL S DDR4 UDIMM EV CRB Processor Intel® Processor code named Coffee Lake S, (6+2), 6 cores 12 threads, GT2, A0 (Internal) (QNJ4) [ 3.220585] WARNING: CPU: 10 PID: 206 at drivers/gpu/drm/i915/i915_drv.c:340 i915_driver_load+0x1210/0x1660 [i915] [ 3.221312] Modules linked in: hid_generic usbhid i915 i2c_algo_bit drm_kms_helper e1000e syscopyarea sysfillrect sysimgblt nvme fb_sys_fops ptp ahci i2c_hid drm pps_core nvme_core libahci wmi hid video [ 3.222050] CPU: 10 PID: 206 Comm: systemd-udevd Not tainted 4.13.0-rc5-intel-next+ #1 [ 3.222706] Hardware name: Intel Corporation Kabylake Client platform/KBL S DDR4 UDIMM EV CRB, BIOS KBLSE2R1.R00.X089.P00.1705051000 05/05/2017 Cc: Wendy Wang <wendy.wang@intel.com> Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20170821235056.9015-1-rodrigo.vivi@intel.com Signed-off-by: Liwei Song <liwei.song@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> ] Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-03-05features/systemtap/systemtap.cfg: enable CONFIG_KERNEL_DEBUGVictor Kamensky
Need to enable CONFIG_KERNEL_DEBUG in systemtap feature, otherwise CONFIG_DEBUG_INFO set by systemtap.cfg does not have any effect since it depends on CONFIG_KERNEL_DEBUG and is set off in resulting config. So systemtap cannot find DWARF information in resulting kernel. Signed-off-by: Victor Kamensky <kamensky@cisco.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-03-05audit: fix memleak in auditd_send_unicast_skb.Bruce Ashfield
1/2 [ Author: Shu Wang Email: shuwang@redhat.com Subject: audit: fix memleak in auditd_send_unicast_skb. Date: Thu, 1 Mar 2018 21:17:18 -0500 commit b0659ae5e30074ede1dc08f2c6d64f0c11d64e0f upstream. Found this issue by kmemleak report, auditd_send_unicast_skb did not free skb if rcu_dereference(auditd_conn) returns null. unreferenced object 0xffff88082568ce00 (size 256): comm "auditd", pid 1119, jiffies 4294708499 backtrace: [<ffffffff8176166a>] kmemleak_alloc+0x4a/0xa0 [<ffffffff8121820c>] kmem_cache_alloc_node+0xcc/0x210 [<ffffffff8161b99d>] __alloc_skb+0x5d/0x290 [<ffffffff8113c614>] audit_make_reply+0x54/0xd0 [<ffffffff8113dfa7>] audit_receive_msg+0x967/0xd70 ---------------- (gdb) list *audit_receive_msg+0x967 0xffffffff8113dff7 is in audit_receive_msg (kernel/audit.c:1133). 1132 skb = audit_make_reply(0, AUDIT_REPLACE, 0, 0, &pvnr, sizeof(pvnr)); --------------- [<ffffffff8113e402>] audit_receive+0x52/0xa0 [<ffffffff8166c561>] netlink_unicast+0x181/0x240 [<ffffffff8166c8e2>] netlink_sendmsg+0x2c2/0x3b0 [<ffffffff816112e8>] sock_sendmsg+0x38/0x50 [<ffffffff816117a2>] SYSC_sendto+0x102/0x190 [<ffffffff81612f4e>] SyS_sendto+0xe/0x10 [<ffffffff8176d337>] entry_SYSCALL_64_fastpath+0x1a/0xa5 [<ffffffffffffffff>] 0xffffffffffffffff Signed-off-by: Shu Wang <shuwang@redhat.com> Signed-off-by: Paul Moore <paul@paul-moore.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> ] 2/2 [ Author: Mikulas Patocka Email: mpatocka@redhat.com Subject: brd: remove unused brd_mutex Date: Thu, 1 Mar 2018 21:17:19 -0500 commit 15f7b41f70ddcca3b555bd0fdc7c8da7466b517e upstream. Remove unused mutex brd_mutex. It is unused since the commit ff26956875c2 ("brd: remove support for BLKFLSBUF"). Signed-off-by: Mikulas Patocka <mpatocka@redhat.com> Signed-off-by: Jens Axboe <axboe@kernel.dk> Signed-off-by: Liwei Song <liwei.song@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> ] Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-03-05aufs: fix compile warningBruce Ashfield
1/1 [ Author: "Kexin(Casey) Chen" Email: Casey.Chen@windriver.com Subject: aufs: fix compile warning Date: Wed, 28 Feb 2018 20:44:52 -0500 Forward port linux-yocto-4.8's patch to fix the build warning. http://git.yoctoproject.org/cgit/cgit.cgi/linux-yocto-4.8/commit/?h=standard/base&id=7e0dd2f2b0971f0e3191e1ddc088e09eb9855567 fs/aufs/debug.h:95:19: warning: comparison of constant '0' with boolean expression is always false [-Wbool-compare] if (unlikely((e) < 0)) \ ^ fs/aufs/vdir.c:852:2: note: in expansion of macro 'AuTraceErr' AuTraceErr(!valid); ^~~~~~~~~~ In expansion of AuTraceErr(!valid), comparison of (!valid) and constant '0' always passes unlikely(x) false. function 'static int seek_vdir(struct file *file, struct dir_context *ctx)' is to find whether there is a valid vd_deblk following ctx->pos. return 1 means valid, 0 for not. Change to AuTraceErr(valid - 1) makes more sense. Signed-off-by: Kexin(Casey) Chen <Casey.Chen@windriver.com> Signed-off-by: Dengke Du <dengke.du@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> ] Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-02-17kver: bump to v4.12.20Bruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-02-05features/intel-pinctrl: add Intel Cannon Lake PCH pinctrl supportLiwei Song
Set CONFIG_PINCTRL_CANNONLAKE=m to enable Intel Cannon Lake PCH pinctrl feature. Signed-off-by: Liwei Song <liwei.song@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-01-25kver: bump to v4.12.19Bruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-01-23i2c: i801: Add support for Intel Cannon LakeBruce Ashfield
1/5 [ Author: Srinivas Pandruvada Email: srinivas.pandruvada@linux.intel.com Subject: i2c: i801: Add support for Intel Cannon Lake Date: Tue, 23 Jan 2018 04:45:52 -0500 commit 09a1de04d59870b34b2a8106671c7bdea4ca9a90 upstream. Added SMBUS PCI Ids for SMBUS for Cannon Lake PCH. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> [jarkko.nikula@linux.intel.com: Add entries to Documentation and Kconfig. Cover Cannon Lake-H too] Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Signed-off-by: Wolfram Sang <wsa@the-dreams.de> Signed-off-by: Liwei Song <liwei.song@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> ] 2/5 [ Author: Andy Shevchenko Email: andriy.shevchenko@linux.intel.com Subject: mfd: intel-lpss: Add Intel Cannonlake PCI IDs Date: Tue, 23 Jan 2018 04:45:53 -0500 commit b418bbff36dd25dc49ed6abbb1e1deedd0d7cff5 upstream. Intel Cannonlake PCH has the same LPSS than Intel Kabylake. Add the new IDs to the list of supported devices. Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Liwei Song <liwei.song@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> ] 3/5 [ Author: Jarkko Nikula Email: jarkko.nikula@linux.intel.com Subject: spi: pxa2xx: Add support for Intel Cannonlake Date: Tue, 23 Jan 2018 04:45:54 -0500 commit fc0b2acc754a183aa79e2abb8bca8fd915832694 upstream. Intel Cannonlake LPSS SPI has up to four chip selects per port like in Broxton and is clocked like Sunrisepoint and Kaby Lake. Add a new type LPSS_CNL_SSP and configuration that enable runtime chip select detection and use the same FIFO thresholds than in Sunrisepoint. Patch adds support for both Cannonlake SoC and PCH. Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org> Signed-off-by: Liwei Song <liwei.song@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> ] 4/5 [ Author: Matthias Kraemer Email: matthiasmartinsson@gmail.com Subject: mmc: sdhci-pci: Use macros in pci_ids definition Date: Tue, 23 Jan 2018 04:45:55 -0500 commit c949c907497267a97639fee858de9d6691296b99 upstream. This patch applies customized PCI_DEVICE_ macros to specify the pci_ids instead of open-coding them within the sdhci-pci driver. By introducing device specific macros the pci_ids table becomes much shorter and easier to comprehend than it would be possible using the generic version of the PCI_DEVICE_ macros. Signed-off-by: Matthias Kraemer <matthiasmartinsson@gmail.com> Acked-by: Adrian Hunter <adrian.hunter@intel.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Signed-off-by: Liwei Song <liwei.song@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> ] 5/5 [ Author: Adrian Hunter Email: adrian.hunter@intel.com Subject: mmc: sdhci-pci: Add support for Intel CNP Date: Tue, 23 Jan 2018 04:45:56 -0500 commit bc55dcd822f98cd7c170d0aeac4ed4fb79c86bda upstream. Add PCI ids and enhanced strobe support for Intel CNP. This is combined with GLK due to the pending CMDQ support which they both share. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Signed-off-by: Liwei Song <liwei.song@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> ] Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-01-23iwlwifi: mvm: support getting nvm data from firmwareBruce Ashfield
1/310 [ Author: Sara Sharon Email: sara.sharon@intel.com Subject: iwlwifi: mvm: support getting nvm data from firmware Date: Sun, 8 Jan 2017 16:46:14 +0200 commit e9e1ba3dbf00bb2eed4e681ae59f433e45d2e78f upstream. This API replaces the complex NVM parsing of the iwlwifi module. Instead, we get all needed data from firmware. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> [adjust patch for dc1cd1d5ac22 ("iwlwifi: fix host command memory leaks") used] Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 2/310 [ Author: Sara Sharon Email: sara.sharon@intel.com Subject: iwlwifi: mvm: support old method of NVM parsing Date: Mon, 6 Mar 2017 11:13:02 +0200 commit d4f3695eccf9481801d42bebc7a282c5a2af7281 upstream. Add configuration for allowing driver's nvm parsing and bypassing the new host command, for debugging. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 3/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: fix endianness in lq_cmd declaration Date: Mon, 13 Mar 2017 13:40:23 +0100 commit 6909afcade61f760b528118ccb837c8506c23cc1 upstream. This member doesn't seem to be used, so this doesn't really fix anything, but it's better to have the right type there. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 4/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: document which group enums are used with which group ID Date: Thu, 9 Mar 2017 17:06:45 +0100 commit 72361c3d28cf4102b7b514609d3710707b1a1096 upstream. Make it explicit which command definition enum is supposed to be used with which command group, rather than relying on being able to figure it out by name. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 5/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: use proper sta_addr in firmware API Date: Thu, 9 Mar 2017 14:08:51 +0100 commit 3dc6dd9698174b2cf6d078ddfba39ff8640afe47 upstream. There's no point to declare an address as a __le32/__le16 and then only take a pointer to it anyway, change that to just a sta_addr[ETH_ALEN]. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 6/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: fix MCC endianness bug Date: Mon, 13 Mar 2017 12:07:52 +0100 commit 56c1f3c4bd1ee04f8032345fba97cff616fea22a upstream. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 7/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: use u8 for reserved fields Date: Mon, 13 Mar 2017 12:47:37 +0100 commit aed35826d67f31afe010c1d25d204badf7057a25 upstream. There's no saying what kind of type a reserved field will get in the future, so use u8 arrays to reserve space. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 8/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: disentangle paging command structs Date: Mon, 13 Mar 2017 21:48:39 +0100 commit 3b43fbcac4765ac5f7b92464b7d9685eaa34467b upstream. Instead of using a union and hard-coding the size difference, declare both command structs properly, use a union on the stack to build them and the right sizeof() for the size. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 9/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: add documentation to some WoWLAN commands Date: Tue, 14 Mar 2017 10:55:09 +0100 commit 816dc0bc549a34673ef6533b3cb9c135c0b869f6 upstream. Add some documentation for the WoWLAN commands, also linking the correct enums used. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 10/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: fix some kernel-doc Date: Thu, 9 Mar 2017 15:56:57 +0100 commit 31a658b2afc7bff8a4d51418677b579d85060b31 upstream. This mostly fixes missing tags/struct names, but also some other things. Lots of issues remain though. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 11/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: add documentation links to various fields Date: Tue, 14 Mar 2017 11:01:27 +0100 commit 676258651742e69cd77460ea62a591be1aaf2f0e upstream. Link various fields to the documentation of the enums that define their values. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 12/310 [ Author: Sara Sharon Email: sara.sharon@intel.com Subject: iwlwifi: update device ID for a000 family Date: Sun, 12 Mar 2017 10:34:10 +0200 commit a85281ebdef114bde8fc93fa99c79f1c567f23d8 upstream. Three configurations will share device ID 2720, and will be differentiated by RF ID. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 13/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: disentangle binding command versions Date: Tue, 14 Mar 2017 11:04:06 +0100 commit 4d151c2e22532d1167370349ed71125ac2dd5228 upstream. The comments/size of the different binding commands get lost in documentation, so introduce two different command structs that can be used there. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 14/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: create/name various enums Date: Tue, 14 Mar 2017 10:58:16 +0100 commit d69f0a2d88dd7c8e82f027d2d48238426c45e07e upstream. Some values should be in enums so documentation can refer to them, some values should be named for the same reason. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 15/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: document structures used by commands Date: Fri, 10 Mar 2017 14:01:42 +0100 commit 15fc196d6ec388f724093f4950b5927efd31d5b8 upstream. Add documentation to a lot of command IDs that links to the appropriate structure(s) used with those IDs. In one case, actually add and use a new struct for that purpose. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 16/310 [ Author: Liad Kaufman Email: liad.kaufman@intel.com Subject: iwlwifi: mvm: remove wrt support of page dumps in gen2 Date: Sun, 12 Mar 2017 11:00:04 +0200 commit 2ba57c8bf9d4dbeb5d23c0ee94ace119e8ea41c9 upstream. In gen2, page dumping should be done in transport layer, since the addresses needed for the paging mechanism reside there. Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 17/310 [ Author: Liad Kaufman Email: liad.kaufman@intel.com Subject: iwlwifi: pcie: support page dumping in wrt in gen2 Date: Sun, 12 Mar 2017 11:09:58 +0200 commit 5538409ba3935aa1ecaff8255137c3a6a19e0a30 upstream. In gen2, page dumping needs to be done in the trans layer, as it is the one with access to the paging pointers. Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 18/310 [ Author: Haim Dreyfuss Email: haim.dreyfuss@intel.com Subject: iwlwifi: Add fw_name_pre_rf_next_step to support different rf steps Date: Thu, 9 Mar 2017 15:18:58 +0200 commit 0705b953eee4fe20b01ff8e13b8f32c7eac78446 upstream. Integrated chip may have different HW and RF steps. Currently, the driver supports only different HW steps. Add logic to support different RF steps enables combining different HW and RF steps. Signed-off-by: Haim Dreyfuss <haim.dreyfuss@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 19/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: remove unused TX_CMD_NEXT_FRAME_* Date: Wed, 15 Mar 2017 09:53:13 +0100 commit b1e06c65fb69c5e3fddcd91987561e225eaa9bfa upstream. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 20/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: kernel-doc: make proper links Date: Wed, 15 Mar 2017 10:02:23 +0100 commit 69d22e737e07c37def4674ef4e8fe63fef8a654c upstream. Using %enum instead of &enum (and in one case, %struct) results in the wrong parsing. Fix that so that if documentation is generated, the result is clickable links. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 21/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: remove unused REPLY_MAX Date: Wed, 15 Mar 2017 10:22:06 +0100 commit e4eb275ac5cfe71686612d929a9829345b2a4ada upstream. This value is unused, and there's no reason we'd ever use it. Just remove it. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 22/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: fix many kernel-doc warnings Date: Wed, 15 Mar 2017 10:18:20 +0100 commit 3a07d36c2d891b30c25e03146eceaeb6e6375810 upstream. Fix many kernel-doc warnings. In one case, this required adding a new enum value to be able to document things properly. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 23/310 [ Author: Sara Sharon Email: sara.sharon@intel.com Subject: iwlwifi: mvm: add AMSDU flag to offload assist Date: Thu, 16 Mar 2017 10:44:31 +0200 commit f5bd90b72d613ad5a9c3b38dee6ae6b5e3565be4 upstream. Enable offload assist for AMSDU when the AMSDU present flag is set. Fixes: a830baba9c2e ("iwlwifi: mvm: support new TX API") Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 24/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: document RX structures Date: Wed, 15 Mar 2017 14:06:53 +0100 commit 6857df8c10e6986940ee7e14b587352e928589a2 upstream. Document the structures used in RX and link them to the command ID. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 25/310 [ Author: Sara Sharon Email: sara.sharon@intel.com Subject: iwlwifi: pcie: add AMSDU to gen2 Date: Thu, 16 Mar 2017 11:06:41 +0200 commit 6ffe5de35b05907faf4edb66cfd8ddf3c47e099f upstream. This is essentially the same code as gen1, except that it uses gen2 functions and SW checksum is not included. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 26/310 [ Author: Sara Sharon Email: sara.sharon@intel.com Subject: iwlwifi: cleanup references to 8000 family in NVM code Date: Wed, 22 Mar 2017 12:20:40 +0200 commit 7042678dffa3707dea3feb34f09241d54e40648c upstream. NVM code is tightly coupled with 8000 family, while it really refers to extended NVM format introduced back then. Separate it to a configuration dependent boolean, and rename defines accordingly. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 27/310 [ Author: Sara Sharon Email: sara.sharon@intel.com Subject: iwlwifi: remove references to 8000 B-step devices Date: Wed, 22 Mar 2017 13:51:12 +0200 commit 8b4d649552ca857d4f6e903d2f51fec8936e65f0 upstream. We don't have any 8000 B-step right now, and there is no firmware loading code for them anyway. Further more, 9000 B-step devices will hit those code paths. Remove code that was introduced only for 8000 B-step. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 28/310 [ Author: Sara Sharon Email: sara.sharon@intel.com Subject: iwlwifi: add dbgc_supported to transport configuration Date: Wed, 22 Mar 2017 14:06:41 +0200 commit a02797c15dd98434774fa67b323ebee158dc6ecf upstream. Use transport configuration to determine DBGC support instead of relying on device family. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 29/310 [ Author: Beni Lev Email: beni.lev@intel.com Subject: iwlwifi: mvm: add TLV for NAN API differentiation Date: Sun, 19 Mar 2017 19:03:51 +0200 commit 1247070d4763cf0dc8bd7b313d606941c6464e69 upstream. Due to NAN FW API change, add TLV in order to distiguish between the 2 API versions Signed-off-by: Beni Lev <beni.lev@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 30/310 [ Author: Liad Kaufman Email: liad.kaufman@intel.com Subject: iwlwifi: mvm: support init flow debugging Date: Thu, 16 Mar 2017 13:00:59 +0200 commit de8ba41b5e5002e28756963df311246485c330d5 upstream. In case an assert happens on init flow, the current driver powers down the NIC, except if iwlmvm modparam init_dbg=1, and only on very specific flows. Extend this capability to cover most failure cases by keeping track of what init configurations have been completed. This way, we can allow NOT powering down the NIC, while making sure that when the driver is removed we don't try to free resources that haven't been allocated. (This can result in a kernel panic.) Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 31/310 [ Author: Sara Sharon Email: sara.sharon@intel.com Subject: iwlwifi: add 9000 and A000 device families Date: Wed, 22 Mar 2017 14:07:50 +0200 commit 6e5848732288d93f14bb30ce81f09950988556dd upstream. Add two new device families to differentiate them from 8000. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 32/310 [ Author: Liad Kaufman Email: liad.kaufman@intel.com Subject: iwlwifi: pcie: support dumping FH in a000 hw Date: Sun, 26 Mar 2017 13:56:28 +0300 commit 723b45e24150f1b9bde5c1f51f1a845982cb4eeb upstream. FH in A000 HW are placed in a different location, and need to be read as prph, rather than direct. Support A000 dumping as well as legacy. Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 33/310 [ Author: Liad Kaufman Email: liad.kaufman@intel.com Subject: iwlwifi: mvm: disable prph collection in a000 hw Date: Sun, 26 Mar 2017 14:09:46 +0300 commit 9eca702ca1da715199c104363cad041d989aafd1 upstream. Apart from the current list of PRPH that can't be collected in A000 HW, the rest of the debug dump data the driver collects is valid, so there is no need to disable collection only because of this. Disable PRPH collecting in A000 HW, and allow collecting the rest of the debug data. Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 34/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: check firmware is up in debugfs Date: Wed, 22 Mar 2017 22:19:41 +0100 commit 504bd624663cde6141ab025445c93420c387062e upstream. Protect various debugfs files that need to communicate with the firmware from being used when the firmware isn't running. Some will just reject getting written to, while others that store some state will simply store it and not apply it immediately. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 35/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: use schedule_delayed_work() Date: Wed, 22 Mar 2017 21:44:59 +0100 commit 86bbb1e1e0ba8878b554bbb912d348f3b819f5c4 upstream. There's no need to refer to system_wq directly, use the provided wrapper schedule_delayed_work(). Made with the following spatch: @@ expression E,F; @@ -queue_delayed_work(system_wq, E, F); +schedule_delayed_work(E, F); Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 36/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: convert ucode_loaded to a status bit Date: Wed, 22 Mar 2017 22:10:36 +0100 commit 65b280fe9bde124587f9ca290404515d52513b3f upstream. Convert ucode_loaded to a status bit called FIRMWARE_RUNNING. This will make it easier to clear this earlier, to avoid any spurious accesses while shutting down, for example through debugfs. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 37/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: clear firmware running bit earlier Date: Wed, 22 Mar 2017 22:26:03 +0100 commit 771147b0676fb545b7fd268277452609bcaf9243 upstream. Clear the firmware running bit before flushing the FW (error) dump work, because otherwise debugfs isn't blocked (previous patch) and can cause a new work to be scheduled, which will then run after we actually shut down the device, wreaking havoc. Clearing it ensures that debugfs can't interfere anymore, and we can safely cancel or flush the work struct. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 38/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: fix a kernel-doc tag Date: Thu, 30 Mar 2017 14:21:54 +0200 commit b8aed81cd38151928d7af81f2f2ed98481809f2f upstream. The kernel-doc here is on an enum, so don't tag it as struct but correctly as enum instead, preventing an error. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 39/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: split firmware API from iwl-trans.h Date: Thu, 30 Mar 2017 14:30:40 +0200 commit 0aaece81114e403315ae01a6cd36044e32922d3b upstream. In order to more clearly document which parts of this file are firmware API and which are something else, split the firmware API into a separate file to include here. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 40/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: link queue cmd docs to A000 command structs Date: Thu, 30 Mar 2017 14:23:21 +0200 commit e153c1e4c37fcffa26e901251767c1404db83934 upstream. Document which structures are used with the command for the A000 hardware flavour. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 41/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: document structures used for BEACON_TEMPLATE_CMD Date: Fri, 31 Mar 2017 10:48:17 +0200 commit b7bea642d5e53291aaa1a55adbcaa7e481d11940 upstream. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 42/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: link to TX commands in documentation Date: Fri, 31 Mar 2017 11:25:52 +0200 commit e8226a5e4a687cbf9133f47b5d166eb09ddcda1d upstream. Link from the TX_CMD enum value to the TX command structs. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 43/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: remove SCAN_GROUP Date: Thu, 30 Mar 2017 14:17:51 +0200 commit 12edae864161c5fe9f7e5d9fad0d599f344e970d upstream. The firmware no longer uses this command group, so remove it from the driver as well. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 44/310 [ Author: Mordechai Goodstein Email: mordechay.goodstein@intel.com Subject: iwlwifi: fw-api: cleanup cycle includes Date: Sun, 2 Apr 2017 18:25:06 +0300 commit fccdbaa849f62a0992f8b77878a13e3c54161b87 upstream. The include in the deleted file are included in the fw-api.h file. Which caused a cycle include in the dependencies. Signed-off-by: Mordechai Goodstein <mordechay.goodstein@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 45/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: remove unnecessary code in iwl_trans_alloc_tx_cmd Date: Wed, 5 Apr 2017 09:42:18 +0300 commit 0ae0bb3f409d48251a9a1730a514b3521d8f6042 upstream. When we removed dev_cmd_headroom, the check for dev_cmd_ptr == NULL became unnecessary, since we just return dev_cmd_ptr anyway. Cleanup the function to avoid useless code. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 46/310 [ Author: Liad Kaufman Email: liad.kaufman@intel.com Subject: iwlwifi: mvm: remove txq EMPTYING_DELBA state for DQA Date: Wed, 5 Apr 2017 10:35:18 +0300 commit 664e968be329352d2ed2566e43965a25421b1646 upstream. In DQA mode, there is no need to wait for the TXQ to clear out after getting a DELBA, since traffic can continue running on the queue. Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 47/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: remove resp_pkt NULL checks Date: Mon, 10 Apr 2017 10:32:58 +0200 commit 0ec971fdaddfcab72e5104e35774f489991f1f68 upstream. Contrary to what some of the comments say, if rfkill was asserted the transport will return -ERFKILL instead of success, if CMD_WANT_SKB was set, so it's not necessary to check cmd.resp_pkt for being NULL if the return code was success. Validate that this is true in iwl_trans_send_cmd(). Most of the other code modifications were done with the following spatch: @@ struct iwl_host_cmd cmd; identifier pkt; @@ <... ( pkt = cmd.resp_pkt; ... -if (!pkt) { ... } | pkt = cmd.resp_pkt; ... -if (WARN_ON(!pkt)) { ... } | -if (!cmd.resp_pkt) { ... } ) ...> Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 48/310 [ Author: Liad Kaufman Email: liad.kaufman@intel.com Subject: iwlwifi: mvm: disable dbg data collect when fw isn't alive Date: Thu, 23 Mar 2017 11:08:59 +0200 commit f45f979dc208c96bb13a229381be2c1e4bf3afb3 upstream. If FW isn't alive, trying to collect debug data will result in errors both in driver and in the collected data, so just warn and leave the collecting function in this case. Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 49/310 [ Author: David Spinadel Email: david.spinadel@intel.com Subject: iwlwifi: mvm: Enable security on new TX API Date: Thu, 30 Mar 2017 19:43:53 +0300 commit 85aeb58cec1a7a0395e14b45a7c6c1a9dad209fe upstream. Install GTKs on AP side for new TX API. Don't add IV space, it's added by the HW. While at that fix GCMP abnd GCMP-256 GTK installation which work similarly to the new TX API. Signed-off-by: David Spinadel <david.spinadel@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 50/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: mvm: avoid unnecessary cache trashing in Tx path Date: Thu, 30 Mar 2017 23:08:03 +0300 commit 6f2f019495f637375b6d9dbbfa164b5b1e9d5583 upstream. When sending a Tx Command with a Tx packet, we allocate the Tx command separately from the payload of the packet. The WiFi MAC header is then copied into the buffer that was allocated for the Tx Command. This means that this buffer needs to be big enough to contain both. This is why it is allocated with iwl_trans_alloc_tx_cmd which returns a pointer to a newly allocated not zeroed struct iwl_device_cmd. The Tx command has a few bit fields and hence it needs to be zeroed, but all the rest of the buffer doesn't need to be zeroed since it will either be memcopy'ed with the MAC header, or not even sent to the device. This means that we don't need to zero all the iwl_device_cmd structure, but rather only the size of the iwl_tx_cmd structure. Since sizeof(iwl_tx_cmd) - sizeof(iwl_tx_cmd) is about 260 bytes, this can avoid touching 4 cache lines for each packet. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 51/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: remove pointless num_stored condition Date: Wed, 19 Apr 2017 09:45:18 +0200 commit aeb8012cdfb5dded160295c92e6bfdb6ae5e8aa1 upstream. Since we exit if buf->num_stored is 0, there's no need to check it again later. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 52/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: pcie: fix TVQM queue ID range check Date: Wed, 19 Apr 2017 10:29:06 +0200 commit f8565f3329d62dab724b43db3f6ed60b608333fa upstream. The queue ID should never be 512 either, so correct the check to be >= instead of just >. Fixes: 310181ec34e2 ("iwlwifi: move to TVQM mode") Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 53/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: use scnprintf() instead of snprintf() Date: Wed, 19 Apr 2017 09:58:50 +0200 commit 40e86a3619a1e84ad73c716c943f65fc38eb1e28 upstream. It's safer to use scnprintf() here because the buffer might be too short for the full format strings. In most cases this isn't true because of external limits on the values. In one case, this fixes a stack data leak. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 54/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: use bitfield.h for some registers Date: Thu, 9 Mar 2017 11:22:54 +0100 commit f3779f476b85701acc3d7ec0eb9b099c2060e7c9 upstream. Letting the preprocessor/compiler generate the shift/mask by itself is a win for readability, so use bitfield.h for some registers. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 55/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: track and report IBSS manager status to mac80211 Date: Thu, 20 Apr 2017 10:29:03 +0200 commit 2f0282db41194c0099a019b2761911d6c69cbdb9 upstream. Shaul reported that when iwlmvm was sending beacons, it didn't properly also take ownership of the probe responses. This is because the whole mac80211 callback (tx_last_beacon) wasn't implemented. Fix that to make IBSS discovery work better. Reported-by: Shaul Triebitz <shaul.triebitz@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 56/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: mvm: make D0I3_END_CMD sync during system resume Date: Wed, 12 Apr 2017 12:42:12 +0300 commit f28b9361247360b64e0c6cf0bdd72ff5b5815a33 upstream. There is no need to send D0I3_END_CMD as ASYNC during the system resume flow. Additionally, the other flags used are meaningless in this case (they were just copied from the runtime resume flow), so remove them all. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 57/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: mvm: support D0I3_END_CMD at the start of resume Date: Wed, 12 Apr 2017 16:33:41 +0300 commit fcea37b2cf23f615252c424c217975f08da3c50d upstream. New FW versions require the D0I3_END_CMD to be sent as the first command to the FW in the resume flow. If the TLV is set, send that command first, otherwise keep the original behavior (i.e. send last). Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 58/310 [ Author: Mordechai Goodstein Email: mordechay.goodstein@intel.com Subject: iwlwifi: mvm: change the firmware name loading Date: Thu, 30 Mar 2017 14:43:15 +0300 commit e9eb0fa247cc61858e2b61e7242f870b1bfb67c2 upstream. The firmware moved the development from a0 MAC to z0. z0 is using the same RFID and device ID as a0 so we only need to switch the name. Signed-off-by: Mordechai Goodstein <mordechay.goodstein@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 59/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: make iwl_mvm_update_mcc() easier to follow Date: Wed, 19 Apr 2017 10:17:57 +0200 commit 28269897c6cd668ff093da8a123099659376504b upstream. Some static checkers (e.g. smatch) complain about the logic, saying that resp_cp might be leaked. Clearly that isn't true, but making the logic easier to follow does not result in any significant code changes and makes the code more readable by moving the NULL check closer to its source. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 60/310 [ Author: Gregory Greenman Email: gregory.greenman@intel.com Subject: iwlwifi: mvm: rs: add logs for the wrong antenna case Date: Mon, 24 Apr 2017 09:24:37 +0300 commit 8f6438f72a5f6f8c49a7d9b4a1e87f56d6faaf2b upstream. In case that rate's antenna is wrong at the init stage, it's very hard to say what went wrong. Add debug data to the already existing WARN_ON_ONCE. Signed-off-by: Gregory Greenman <gregory.greenman@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 61/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: pcie: pull out common rfkill IRQ handling code Date: Tue, 25 Apr 2017 09:55:36 +0200 commit 3a6e168baa7097bcd747c1689cff509297c6d612 upstream. There's no point in duplicating exactly the same code here for legacy and MSI-X interrupts, so pull it out into a new function to call in both places. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 62/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: pcie: add fake RF-kill to debugfs Date: Tue, 25 Apr 2017 09:58:25 +0200 commit fa4de7f7c349d0fca751d1ad331c1fa8f528a47d upstream. In order to debug "hardware" RF-kill flows, add a low-level hook to allow changing the "hardware" RF-kill from debugfs. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 63/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: don't warn in queue sync on RF-kill Date: Tue, 25 Apr 2017 10:21:18 +0200 commit 6ad0435991482107664f65b7ae3fd588f10149d4 upstream. If we happen to be in or get into the queue sync when RF-kill is asserted, we return from there and warn since there are still queue sync notifications outstanding. These can't ever come though, because we're in RF-kill, so don't WARN then. While at it, also move the warning to the appropriate place, if the request is not synchronous then we shouldn't warn, but currently always will. To make it fast, also trigger the waitq when on rfkill assert. Fixes: 0636b938214c ("iwlwifi: mvm: implement driver RX queues sync command") Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 64/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: pcie: don't report RF-kill enabled while shutting down Date: Tue, 25 Apr 2017 13:41:20 +0200 commit 326477e4858cd6b1e0e067ecf2d6a8252ef41994 upstream. When toggling the RF-kill pin quickly in succession, the driver can get rather confused because it might be in the process of shutting down, expecting all commands to go through quickly due to rfkill, but the transport already thinks the device is accessible again, even though it previously shut it down. This leads to bugs, and I even observed a kernel panic. Avoid this by making the PCIe code only report that the radio is enabled again after the higher layers actually decided to shut it off. This also pulls out this common RF-kill checking code into a common function called by both transport generations and also moves it to the direct method - in the internal helper we don't really care about the RF-kill status anymore since we won't report it up until the stop anyway. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 65/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: pcie: remove pointless debugfs parsing for csr file Date: Tue, 25 Apr 2017 11:38:29 +0200 commit 302b5e9e7df00938720719d4371263e8e852e5ca upstream. We don't actually care about the value at all, just making sure that we can successfully parse a single integer value, but that's entirely pointless - remove it. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 66/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: document status bits Date: Tue, 25 Apr 2017 12:50:32 +0200 commit 87afe9b0f4af44443f88a29458fcebe56385d771 upstream. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 67/310 [ Author: Liad Kaufman Email: liad.kaufman@intel.com Subject: iwlwifi: mvm: support aggregations on A000 HW Date: Wed, 5 Apr 2017 16:25:11 +0300 commit dd32162da4e5b3c9c81adf9a1f6e3a839a35d5f0 upstream. On A000 HW, the SCD rdptr has only 8 bits allocated for it, thus when checking if a queue is full, or when checking if the SSN is equal to the TID's next_reclaimed, A000 HW should trim the SSN. Fix this by "normalizing" the SSN to wrap around 0xFF when comparing to the next_reclaimed on A000 HW. Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 68/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: pcie: use kstrtou32_from_user() Date: Tue, 25 Apr 2017 11:37:40 +0200 commit 078f11311f40007a836467e7ab0b311978fe4adb upstream. Use kstrtou32_from_user() in debugfs instead of open-coding it. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 69/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: better link scan notification results length Date: Wed, 26 Apr 2017 13:34:29 +0200 commit 550aba9b8dce109725a87cdcc8268f56dfd32af0 upstream. Show the name of the member (scanned_channels) that provides the length with some better markup. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 70/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: simplify data tracepoint Date: Wed, 3 May 2017 12:53:22 +0200 commit 78c1acf35fcd528ff4c76057d5724ac00e0f7fff upstream. There's no need to calculate the data_len outside of the tracepoint, since it's always skb->len - hdr_len, which are both available inside. Simplify the callers and move the calculation in. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 71/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: fix TX tracing for non-linear SKBs Date: Wed, 3 May 2017 13:04:40 +0200 commit 8790fce4f696ed55195283d26685cc0edaea63a8 upstream. When sending non-linear SKBs that should be included in the regular TX tracing completely (and not be pushed into the tx_data tracing), the (tracing) code didn't correctly take the fact that they were non-linear into account and added only the skb head portion. This probably never really triggered, since those frames we want traced fully are most likely linear anyway, but the code gets easier to understand and we lose an argument to the tracing function, so overall fixing this is better. Fixes: 206eea783385 ("iwlwifi: pcie: support frag SKBs") Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 72/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: pcie: fix command completion name debug Date: Wed, 3 May 2017 12:16:48 +0200 commit d490e09784a9d0a63f831e5f1104b4826e666b0c upstream. When the command name is printed on command completion, the wrong group is used, leading to the wrong name being printed. Fix this by using the group ID without inappropriately mangling it through iwl_cmd_groupid() - it's already a u8. Also, while at it, use it from the same place as the command ID, everything else is just confusing. Fixes: ab02165ccec4 ("iwlwifi: add wide firmware command infrastructure for TX") Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 73/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: docs: fix enum link, provide TX response link Date: Tue, 2 May 2017 13:01:49 +0200 commit 7b7cab79b8e7f904b22312b83989b2ba785a700c upstream. Fix the enum link by adding the missing & and provide the link to the TX response documentation. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 74/310 [ Author: Liad Kaufman Email: liad.kaufman@intel.com Subject: iwlwifi: mvm: fix fw monitor 7000 HW recollecting Date: Wed, 3 May 2017 18:47:46 +0300 commit 3e73148406c67615bbe8d166d2c22efc3995e305 upstream. To stop and start the FW monitor in the 7000 HW family we need to use a different bit, otherwise after stopping it for the first time - it won't get restarted. Use the correct bitmask. Note: This fix is only for DRAM collection mode. For other modes, an additional fix will be needed. Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 75/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: disentangle union in TX status struct Date: Wed, 3 May 2017 21:56:04 +0200 commit a6a621934e2e041ad4a8b55ef273731794e936ed upstream. This improves documentation, since kernel-doc can't deal with the union well. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 76/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: add documentation for enum iwl_debug_cmds Date: Thu, 4 May 2017 10:00:03 +0200 commit e6138c9ca59293052bae8d7e2db247ab3d0c3ee1 upstream. Add kernel-doc documentation for enum iwl_debug_cmds, linking the structures used by the commands. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 77/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: document transmit buffer bits better Date: Thu, 4 May 2017 11:01:32 +0200 commit d98d6fb9f167978eea79c7379301963053c5319c upstream. Properly document the transmit buffer bits using an enum and kernel-doc documentation. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 78/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: remove useless iwl_free_nvm_data() function Date: Wed, 3 May 2017 15:09:52 +0300 commit 1dad3e0a313c42f8ade19f6987aedb857c4d07d0 upstream. This function just calls kfree(), so it only obscures the code without bringing any benefits. Remove it. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 79/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: mvm: fix nvm_data leak Date: Wed, 3 May 2017 15:12:09 +0300 commit 946af0079cd260546d3773e7ff5409f49949371d upstream. We allocate nvm_data in iwl_mvm_nvm_get_from_fw(). If something goes wrong after the allocation (i.e. if no valid MAC address is valid), we should free nvm_data before returning an error. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 80/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: pcie: don't disable bh when handling FW errors Date: Fri, 5 May 2017 17:55:24 +0300 commit ffd6fd45616672ee1ba122ea54d47fa8fe1dd8d8 upstream. When we started using threaded irqs, all the opmode calls were changed to be called with local_bh disabled. The reason for this was it was that mac80211 needs that. When we are handling FW errors, mac80211 is not involved, so we don't need it. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 81/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: mvm: reset the HW before dumping if HW error is detected Date: Fri, 5 May 2017 16:11:24 +0300 commit 6b54ebf73b3e5adc2cab3abc6cb37ca66fa74ae2 upstream. If the hardware is stuck, we can't read any of the memory we need to dump it, so we end up printing only 0xa5a5a5a5, which is useless. To solve this, poke the hardware by triggering a reset and re-enabling the clocks if we detect a HW error. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 82/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: mvm: don't mark TIDs that are not idle wrt BA as inactive Date: Sun, 7 May 2017 13:31:55 +0300 commit 59df97f7223636399f425a5e76586218c48d791e upstream. A TID may not have traffic but still have a BA agreement active (or being setup / torn down) since a BA agreement can be triggered by a debugfs hook. Just avoid to consider such a TID as inactive to make the logic safer. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 83/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: add a W/A for a scheduler hardware bug Date: Sun, 7 May 2017 15:00:31 +0300 commit dcfbd67b4b8d5223d5362aac9af267387a32f568 upstream. In case we need to move the scheduler write pointer by steps of 0x40, 0x80 or 0xc0, the scheduler gets stuck. This leads to hardware error interrupts with status: 0x5A5A5A5A or alike. In order to work around this, detect in the transport layer that we are going to hit this case and tell iwlmvm to increment the sequence number of the packets. This allows to keep the requirement that the WiFi sequence number is in sync with the index in the scheduler Tx queue and it also allows to avoid the problematic sequence. This means that from time to time, we will start a queue from ssn + 1, but that shouldn't be a problem since we don't switch to new queues for AMPDU now that we have DQA which allows to keep the same queue while toggling the AMPDU state. This bug has been fixed on 9000 devices and up. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 84/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: pcie: make iwl_pcie_apm_stop_master() return void Date: Fri, 5 May 2017 17:24:06 +0200 commit e8c8935efd7d47e8ae18067a898ee1a93dfbc5fc upstream. Nothing ever checks the return value of iwl_pcie_apm_stop_master(), so there's no point in it having one - make it return void. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 85/310 [ Author: Avraham Stern Email: avraham.stern@intel.com Subject: iwlwifi: mvm: set assoc_beacon_arrive_time Date: Tue, 9 May 2017 16:40:01 +0300 commit b56697272564ce9d073ad9159d28d123f3dcae8b upstream. When updating the mac context after association, assoc_beacon_arrive_time is not being set, which causes the FW to set a wrong TSF to the MAC. Fix this by setting the assoc_beacon_arrive_time when updating the mac context after association. Signed-off-by: Avraham Stern <avraham.stern@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 86/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: mvm: reset the fw_dump_desc pointer after ASSERT Date: Wed, 10 May 2017 08:49:41 +0300 commit a509a248bb31ea013c4c2b6801297a2d82eecd43 upstream. When we get an ASSERT, the fw_dump_desc pointer points to iwl_mvm_dump_desc_assert which can't be freed since it is a global. We still need to NULL'ify the pointer when we call iwl_mvm_free_fw_dump_desc otherwise we will hit int iwl_mvm_fw_dbg_collect_desc(struct iwl_mvm *mvm, const struct iwl_mvm_dump_desc *desc, const struct iwl_fw_dbg_trigger_tlv *trigger) { <snip> if (WARN_ON(mvm->fw_dump_desc)) iwl_mvm_free_fw_dump_desc(mvm); Fixes: b6eaa45aa18b ("iwlwifi: mvm: add the cause of the firmware dump in the dump") Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 87/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: mvm: document assoc_beacon_arrive_time Date: Wed, 10 May 2017 11:24:58 +0300 commit a8d011446b4c62f5438b2a9724333c1efedfb26b upstream. Document the assoc_beacon_arrive_time element in the iwl_mac_data_sta struct. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 88/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: mvm: print base HW address during init Date: Tue, 9 May 2017 22:46:19 +0300 commit 4409e72b7113c891e4e28d432d4b459c02e88efb upstream. It's sometimes hard to find out which HW address the iwlwifi device is using, for instance when reading crouded sniffer logs. To make it easier, print out an info level message with the HW address as soon as we know it. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 89/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: pcie: reduce unwanted noise in the logs Date: Tue, 9 May 2017 23:47:18 +0300 commit d74a61fc6bed9698b10427a2424556f1cefb6135 upstream. The driver prints "L1 Enabled - LTR Enabled" all the time as dev_info, which is just useless noise in most cases. Convert this to IWL_DEBUG_POWER() so we don't pollute the log unnecessarily but still can get this info on demand. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 90/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: pcie: delete the Tx queue timer earlier upon firmware crash Date: Wed, 10 May 2017 13:03:01 +0300 commit 7d75f32e09c80da8e7ac383e07fb2bbdd8df4d56 upstream. When the firmware crashes, the transmit queues can't make any progress. This is why we stop the counter that monitor the transmit queues' activity. The call that notifies the error to the op_mode may take a bit of time, so stop the timer of the transmit queues earlier. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 91/310 [ Author: Chaya Rachel Ivgi Email: chaya.rachel.ivgi@intel.com Subject: iwlwifi: mvm: fix typo in CTDP_CMD_OPERATION_REPORT description Date: Mon, 8 May 2017 15:14:01 +0300 commit 3b9449bb1df756cd16bfe50616392fb7caa1211d upstream. Signed-off-by: Chaya Rachel Ivgi <chaya.rachel.ivgi@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 92/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: pcie: work around suspend/resume issue Date: Tue, 9 May 2017 15:35:06 +0200 commit c00ee467b3bf73c9505b1ea308a263ae3c5aab5d upstream. In some platforms, having the device enabled with certain radio frontends causes the platform to not be able to resume properly from suspend, regardless of the wakeup cause. This was traced to a hardware issue with the integrated 9000-series A-step variant. Set the right hardware bit to disable the problematic state. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 93/310 [ Author: Liad Kaufman Email: liad.kaufman@intel.com Subject: iwlwifi: mvm: support TX on MONITOR iface Date: Mon, 15 May 2017 18:26:33 +0300 commit 6d759b02f4121595bf4212662e73c26573dab61a upstream. When trying to TX through a monitor interface, the conditions in iwl_mvm_tx_skb_non_sta() don't match and the frame tries to go out from an usued TXQ. Add a check for monitor iface, and use the AUX queue in such a case. In non-DQA mode the frame is sent through the static-allocated queues anyway, so the problem is in DQA mode only. Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 94/310 [ Author: Haim Dreyfuss Email: haim.dreyfuss@intel.com Subject: iwlwifi: mvm: refactor geo init Date: Thu, 30 Mar 2017 11:16:17 +0300 commit 7fe90e0e3d603844657e8361aa4686c6ee4a8c9d upstream. We are going to add debugfs entry to retrieve the current geographic profile being used in the FW. Currently the driver reads those tables from the BIOS and passes them to the FW. To prepare for this retrieving we want to store those tables in the driver. Signed-off-by: Haim Dreyfuss <haim.dreyfuss@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 95/310 [ Author: Haim Dreyfuss Email: haim.dreyfuss@intel.com Subject: iwlwifi: mvm: Add debugfs entry to retrieve SAR geographic profile Date: Mon, 15 May 2017 14:27:21 +0300 commit e6ee06575bb71ae96d936b2279fc827b82f98353 upstream. Add a debugfs entry to get a verbose description of the power settings used in each band with the currently selected SAR geographic profile. Signed-off-by: Haim Dreyfuss <haim.dreyfuss@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 96/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: remove some CamelCase from firmware API Date: Tue, 16 May 2017 13:21:52 +0200 commit 1644be9189c962cfd064d6b21af16f26f219a146 upstream. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 97/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: fix various "Excess ... description" kernel-doc warnings Date: Tue, 16 May 2017 13:28:53 +0200 commit 83b0319abc5c8bfb16c5fe3063a04de1402f9b21 upstream. Fix various "Excess struct/union/enum/typedef member '...' description in '...'" warnings from kernel-doc, mostly caused by typos. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 98/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: remove various unused command IDs/structs Date: Tue, 16 May 2017 14:33:41 +0200 commit 40e07545d1bb9be2c37140a4d40df1339a4ed51d upstream. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 99/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: use __le16 even for reserved fields Date: Tue, 16 May 2017 15:12:14 +0200 commit cecb43c7b5e68924a57e09bba9290907defc2308 upstream. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 100/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: add documentation for all command IDs Date: Tue, 16 May 2017 15:14:19 +0200 commit 358631bf444547d476476cb90c8fc78962a81884 upstream. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 101/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: fix a bunch of kernel-doc warnings Date: Tue, 16 May 2017 16:15:42 +0200 commit acf91dda3f64bedb4abc46d87b35d41c36a4a28d upstream. Fix the kernel-doc, and remove some fields even the firmware doesn't use in ToF, RX, scan, station and generic FW APIS. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 102/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: dvm: use macros for format strings Date: Wed, 17 May 2017 13:45:29 +0200 commit 779e0513c76e21b62e2ef907f8cfc48f9f41f734 upstream. Some static checkers (e.g. smatch) complain if a non-constant format string is used, even if that's a static const variable. Since there's no impact on code generation, just change those format strings to be macros. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 103/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: pcie: only apply retention workaround on 9000-series A-step Date: Wed, 10 May 2017 11:31:06 +0200 commit 565291c60a3592bd1b6683d2c848dd165a6a3e76 upstream. Due to a hardware issue, certain power saving had to be disabled. However, this issue was fixed in B-step, so the workaround only needs to apply to A-step. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 104/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: pcie: fix 9000-series RF-kill interrupt propagation Date: Thu, 18 May 2017 17:02:05 +0200 commit ae5bb2a62d96e52b138628e0cda4ebb377cbc456 upstream. A hardware issue on 9000 series devices sometimes causes RF-kill interrupts to not be propagated to the host properly if ASPM is enabled. Work around this by setting the right hardware bit to allow it to interrupt the host for this reason (rfkill). Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 105/310 [ Author: Sharon Dvir Email: sharon.dvir@intel.com Subject: iwlwifi: mvm: change sta_id to u8 Date: Sun, 21 May 2017 12:09:49 +0300 commit 806911da64404a6a6348c4840a47218c3bb64a3c upstream. The sta_id variable is used as an index in an array, should be unsigned. Found by Klocwork. Fixes: 9f9af3d7d303 ("iwlwifi: mvm: re-aggregate shared queue after unsharing") Signed-off-by: Sharon Dvir <sharon.dvir@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 106/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: mvm: simplify CHECK_MLME_TRIGGER macro Date: Fri, 19 May 2017 15:06:29 +0300 commit 4c324a51b62079a43a4aa5024785ba542ff83ce3 upstream. There's no reason to pass mvm and trig as parameters to the macro, since it will be expanded inside the function itself. Also remove the bogus buf parameter which doesn't exist and is not used. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 107/310 [ Author: Tzipi Peres Email: tzipi.peres@intel.com Subject: iwlwifi: add the new a000_2ax series Date: Mon, 22 May 2017 12:36:28 +0300 commit 175b87c692532ece6c4622628c8c9df726773236 upstream. Add a new config struct for the new a000 2ax series and add the five PCI ID for it. Signed-off-by: Tzipi Peres <tzipi.peres@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 108/310 [ Author: Tzipi Peres Email: tzipi.peres@intel.com Subject: iwlwifi: add twelve new 9560 series PCI IDs Date: Mon, 22 May 2017 16:16:52 +0300 commit 4e37b063ad9f902052903c579b6f291ba329104e upstream. Add twelve new PCI IDs for the 9560 series. Signed-off-by: Tzipi Peres <tzipi.peres@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 109/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: use proper CDB check in PHY context modify Date: Fri, 26 May 2017 13:11:44 +0200 commit 91109f42d0ad0c0c282d1fa1257a1548977aa895 upstream. When the firmware supports CDB, PHY contexts cannot be modified to change their band, but need to be added/remove instead. Instead of relying on iwl_mvm_has_new_tx_api(), check the right FW capa flag IWL_UCODE_TLV_CAPA_BINDING_CDB_SUPPORT and remove the comment. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 110/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: pcie: improve "invalid queue" warning Date: Fri, 26 May 2017 11:16:39 +0200 commit a395058eb61c888ac5624cccb40eaedf77c01472 upstream. Print out both queue IDs to be able to see what went wrong. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 111/310 [ Author: Liad Kaufman Email: liad.kaufman@intel.com Subject: iwlwifi: mvm: support aggs of 64 frames in A000 family Date: Sun, 28 May 2017 14:20:04 +0300 commit a58bb46855a019a204858cefd3e7d56f87f842f4 upstream. A SCD bug was fixed in the A000 family, allowing to support aggregations of 64 frames (rather than 63). Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 112/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: pcie: improve debug in iwl_pcie_rx_handle_rb() Date: Mon, 29 May 2017 12:15:45 +0200 commit 3bfdee768c09bac3ee3e4b3a6d3b75cdc19e489c upstream. Print the queue for the existing debug message and add a new debug message indicating where the RB ended. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 113/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: mvm: change when the BT_COEX is sent Date: Mon, 29 May 2017 14:01:06 +0300 commit b3de3ef48aa3fe066150243f07d1cc4e6fac2c80 upstream. The BT_COEX command should not be sent to the INIT firmware image starting from 8000 family. The firmware team also requested to send the BT_COEX command after the PHY_DB_CMD and the PHY_CFG_CMD. While at it: s/iwl_send_bt_init_conf/iwl_mvm_send_bt_init_conf/ Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 114/310 [ Author: Liad Kaufman Email: liad.kaufman@intel.com Subject: iwlwifi: mvm: support multi tid ba notif Date: Thu, 13 Apr 2017 17:10:33 +0300 commit cba46988c0813cd9e74d6625af32f7043780dac3 upstream. When receiving a BA_NOTIF on new TX API, it can contain BAs for several TIDs. Go over them and reclaim TX for every TID. Note that although the small API change, the API version still isn't bumped forward, as this NIC isn't still officially released. Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 115/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: unify external & internal modparam names Date: Tue, 30 May 2017 16:45:31 +0200 commit 3b37f4c99c93abf2cdde751a536190bde5a1283a upstream. Where possible (all except for "11n_disable", which isn't valid in C) rename the internal names for module parameters to be the same as the externally visible names, to aid finding their use etc. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 116/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: pcie: make ctxt-info free idempotent Date: Wed, 31 May 2017 13:15:18 +0200 commit 87fc030231b11a190f16d7162a141e2f162eae36 upstream. By setting the pointers to NULL at the end, these functions are made idempotent. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 117/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: pcie: warn if paging is already initialized during init Date: Wed, 31 May 2017 13:19:10 +0200 commit f0fea2b728af737ec45d96a0279087a558ad9774 upstream. This appears to happen in some cases, like when iwlmvm is unloaded and loaded again without also unloading iwlwifi. Warn in this case and free the paging data to be able to continue without causing corruption and kernel crashes due to it (otherwise, paging data is overwritten, but dram->paging_cnt gets to be twice as big as it should be, and then an eventual free will crash.) Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 118/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: unconditionally stop device after init Date: Wed, 31 May 2017 14:14:51 +0200 commit b092c9f25d45972cf401ad8bcfee2429bf189e2b upstream. In commit b93b1fe3b532 ("iwlwifi: mvm: fix init_dbg flow to work as expected"), the code was changed to make the stop conditional on not having failed (and on not having init_dbg), which doesn't make sense - we should stop the device regardless of failures. Failure to do so is leading to the device being enabled when it shouldn't be, and - if it gets re-enabled later - the new context info code gets confused as paging data wasn't freed. Remove the invalid error condition again. Fixes: b93b1fe3b532 ("iwlwifi: mvm: fix init_dbg flow to work as expected") Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 119/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: fix deduplication start logic Date: Wed, 7 Jun 2017 10:35:54 +0200 commit 92c4dca6f5fd3d29d8c1daf02e210dd48dc756ac upstream. If the first frame on a given TID is received with seqno 0 and needed to be retransmitted, we erroneously drop it because the deduplication data is initialized to zero, and then comparing if (unlikely(ieee80211_has_retry(hdr->frame_control) && dup_data->last_seq[tid] == hdr->seq_ctrl && dup_data->last_sub_frame[tid] >= sub_frame_idx)) return true; will return in iwl_mvm_is_dup() since last_sub_frame is also set to zero, and sub_frame_idx is usually zero since this only covers the relatively rare case of A-MSDU. Fix this by initializing the last_seq array to 0xffff, which is an impossible value for hdr->seq_ctrl to have here because the lower four bits are the fragment number, and fragments aren't handled in this code but go to mac80211 instead. Fixes: a571f5f635ef ("iwlwifi: mvm: add duplicate packet detection per rx queue") Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 120/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: rename iwl_shared_mem_cfg_v1 to the correct _v2 Date: Thu, 1 Jun 2017 09:06:11 +0200 commit b4f489857aba0e066847dfd01b980578bbf921c9 upstream. This structure represents V2, V1 has the three last fields missing. Rename it to be more accurate. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 121/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: create new subdirectory for FW interaction Date: Thu, 1 Jun 2017 10:22:09 +0200 commit d962f9b1013b3209813b7b8038c2b9123a9626c4 upstream. There's a lot of mvm code that really should be more generic and part of the iwlwifi module. Start by making a place to keep such code - in the new "fw" subdirectory - and already move the firmware related header files there. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 122/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: move notification wait into fw/ Date: Thu, 1 Jun 2017 10:32:17 +0200 commit 9fca9d5c9745a18f65a380dfc61cd07ee874c7e0 upstream. Move the notification wait code into the new fw interaction directory. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 123/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: move configuration into sub-directory Date: Thu, 1 Jun 2017 10:38:04 +0200 commit 650aaed3b30158f74c1f051a653da4f6eb3db205 upstream. Since we now support 8 device families, move their configuration files into a new subdirectory "cfg". Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 124/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: remove version 2 of paging command Date: Thu, 1 Jun 2017 11:37:25 +0200 commit 4f2210ee8498faa3499a927f0a40027ff972ec3a upstream. Only a000-series devices were going to use this, but actually initialize using the context info, which includes paging, so this code is never invoked; remove it. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 125/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: quietly accept non-sta assoc response frames Date: Mon, 12 Jun 2017 11:24:06 +0200 commit e6835942a7414ef4fd07b59851ad1fca7560dec1 upstream. When hostapd adds a station, it does so before sending the association response frame, so that it can indicate the correct status code in the response. However, when this then fails, or the association response already is a reject for some other reason, then there's no station entry and thus no per-station management queue to send the response on and it must be sent on the probe response queue. The code should therefore not warn. In theory, we could check and warn if the status code is success, but that seems excessive, so just relax the check to allow any association response frames. Fixes: 3ee0f0e23e4f ("iwlwifi: mvm: fix DQA AP mode station assumption") Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 126/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: pcie: add MSI-X interrupt tracing Date: Tue, 13 Jun 2017 21:19:47 +0200 commit c42ff65da8167fa486bfcb7ea290cbdee8350aa7 upstream. We have tracing for both pre-ICT and ICT interrupts, including all the data read there. Extend the tracing to MSI-X interrupts. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 127/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: properly enable IP header checksumming Date: Mon, 19 Jun 2017 13:24:49 +0200 commit 275896ab5fbffcbe9d148ec054efe1af3fb4a29d upstream. The code was intended to enable IP header checksumming on AMSDUs, but failed to really do so because the A-MSDU bit was set after all the checksumming bits, and thus checking for A-MSDU could never be true. Fix this by setting the A-MSDU bit before the offload bits. Fixes: 5e6a98dc4863 ("iwlwifi: mvm: enable TCP/UDP checksum support for 9000 family") Reported-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 128/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: fix mac80211 queue tracking Date: Mon, 19 Jun 2017 22:31:56 +0200 commit 37e474acc9b6f645d92d8dc35014ff1baed3b1bc upstream. In the driver, we track which hardware queue is associated with which mac80211 "hw_queue", in order to be able to stop and wake it. When moving these bitmaps out of the queue_info structures, the type of the bitmap was erroneously changed from u32 to u8, presumably in order to save memory. Turns out that u32 isn't needed, because the highest queue we can ever tell mac80211 is always < 16, but a u16 definitely is needed, queues >=8 do happen. While at it, throw a BUILD_BUG_ON() into the place where we set the limit (mvm->first_agg_queue) and a warning when it actually gets put into the bitmap. The consequence of this bug is that full HW queues associated with such a too-high mac80211 number never stop higher layer queues when full, and thus would simply drop all packets that couldn't be enqueued to the hardware queue. Fixes: 34e10860ae8d ("iwlwifi: mvm: remove references to queue_info in new TX path") Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 129/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: map cab_queue to real one earlier Date: Mon, 19 Jun 2017 22:48:32 +0200 commit b0129db4f0669eb5d7c79031ac54e746f470e45a upstream. There may be a difference between the mac80211 vif->cab_queue and mvmvif->cab_queue, particularly with TVQM. Make the code map this earlier, instead of first returning the mac80211 one again from iwl_mvm_get_ctrl_vif_queue(). Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 130/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: fix mac80211's hw_queue in DQA mode Date: Mon, 19 Jun 2017 23:26:55 +0200 commit 32026e8f709ff29bd00cce58036da8381eaa7592 upstream. When in non-DQA mode, mac80211 actually gets a pretty much perfect idea (in vif->hw_queue/cab_queue) of which queues we're using. But in DQA mode, this isn't true - nonetheless, we were adding all the queues, even the ones stations are using, to the queue allocation bitmap. Fix this, we should only add the queues we really are using in DQA mode: * IWL_MVM_OFFCHANNEL_QUEUE, as we use this in both modes * mvm->aux_queue, as we use this in both modes - mac80211 never really knows about it but we use it as a cookie internally, so can't reuse it * possibly the GCAST queue (cab_queue) * all the "queues" we told mac80211 about we were using on each interface (vif->hw_queue), these are entirely virtual in this mode Also add back the failure now when we can't allocate any more of these - now virtual - queues; this was skipped in DQA mode and would lead to having multiple ACs or even interfaces use the same queue number in mac80211 (10, since that's the limit), which would stop far too many queues if stopped. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 131/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: mvm: don't send fetch the TID from a non-QoS packet in TSO Date: Tue, 20 Jun 2017 16:05:30 +0300 commit 4f555e602b42826b3d79081c9ef8b8e8fe29fc49 upstream. Getting the TID of a packet before we know it is a QoS data packet isn't a good idea. Delay the TID retrieval until we know the packet is a QoS data packet. Fixes: bb81bb68f472 ("iwlwifi: mvm: add Tx A-MSDU inside A-MPDU") Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 132/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: pcie: reconfigure MSI-X HW on resume Date: Tue, 20 Jun 2017 12:51:30 +0200 commit 52848a79b9d2d6773160221e7ea1e1500954de84 upstream. When going into suspend, the HW configuration for MSI-X will likely be lost. As a consequence, after waking up, all IRQ causes will be mapped to interrupt 0, and as a consequence we don't notice the interrupt because in most cases this is an interrupt for a queue, and getting it doesn't read the other cause registers. Fixes: 2e5d4a8f61dc ("iwlwifi: pcie: Add new configuration to enable MSIX") Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 133/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: mvm: don't mess the SNAP header in TSO for non-QoS packets Date: Wed, 21 Jun 2017 09:40:15 +0300 commit 6344436e9d3f4fb4878c12169477d4beb5b825ea upstream. When we get large sends on non-QoS association, we had a bug that mangled the SNAP header. Fix that. Fixes: a6d5e32f247c ("iwlwifi: mvm: send large SKBs to the transport") Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 134/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: remove DQA non-STA client mode special case Date: Thu, 22 Jun 2017 13:06:21 +0200 commit 6e46496302df7e63158fa1476cf9a30d5ee59dee upstream. When we get a non-STA frame to transmit in client mode, we try to use the IWL_MVM_DQA_BSS_CLIENT_QUEUE queue (queue #4). However, at this point, the queue might not be allocated at all, causing warnings. The scenario on which this happened was a race condition between mac80211 and our queue allocation work: * mac80211 sends auth * we stop mac80211 queues to allocate a hw queue * authentication is aborted * we allocate HW queue and start mac80211 queues * mac80211 removes station * mac80211 hands us the auth frame from the pending queue At this point, since mac80211 has already removed the station, we try to transmit the frame through this special non-station case on queue 4 anyway. In order to really use it properly, we'd have to again go through the hw queue allocation work, and attach it to a station, etc. In this case that isn't possible (there's no station anymore), but if this special case were needed, then we'd have to do it this way. However, the special case is documented to exist for TDLS, but can't trigger there because the TDLS setup frames etc. are normal to-DS frames going to the peer through the AP. Testing also confirms that this code path isn't triggered in TDLS. Therefore, remove the code path to avoid using an unused queue. The erroneous frame described above will still be transmitted on the AUX queue, but arguably that's a mac80211 problem, which will eventually be fixed by moving everything there to TXQs. Fixes: e3118ad74d7e ("iwlwifi: mvm: support tdls in dqa mode") Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 135/310 [ Author: Liad Kaufman Email: liad.kaufman@intel.com Subject: iwlwifi: mvm: update rx statistics cmd api Date: Thu, 18 May 2017 18:00:49 +0300 commit 678d9b6dddea3869e78996a94ade8dc6d1b5fe68 upstream. The API has changed - update the code. Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 136/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: quietly accept non-sta disassoc frames Date: Mon, 12 Jun 2017 11:24:06 +0200 commit 51da3d8b94485a8397ae7af3bfdb65feaf582202 upstream. When a station that's not associated sends a data frame (e.g. an NDP) hostapd will respond with a disassoc frame, telling it that it's not associated. The station might also not be authenticated, in which case there will not be a station entry for it, and as a result we need to accept such frames without a station. Fixes: 3ee0f0e23e4f ("iwlwifi: mvm: fix DQA AP mode station assumption") Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 137/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: pcie: propagate iwl_pcie_apm_init's status Date: Tue, 27 Jun 2017 12:23:56 +0300 commit 52b6e168ae579483d71621e4d64d6491e8973e91 upstream. iwl_pcie_apm_init can fail so make sure that the caller takes the status into account. Also, ensure that the error that iwl_pcie_apm_init can emit will appear in the kernel log by default. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 138/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: pcie: wait longer after device reset Date: Tue, 27 Jun 2017 12:29:26 +0300 commit 099a628bf6d9bb1d66cc0383f97cea19cfa4aacc upstream. The newest devices need a longer time to reset because of their more complex hardware. Wait 5ms after device reset. Consolidate all the places that reset the device in the PCIe transport to avoid future bugs. While at it, unify the flow to use set_bit instead of full write as requested by the hardware designers. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 139/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: bump MAX API for 8000/9000/A000 to 33 Date: Fri, 19 May 2017 15:12:07 +0300 commit ba320dd61ec91bbe98730f3407a486facc174d63 upstream. Bump the maximum API supported by these device families to 33. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 140/310 [ Author: Mordechai Goodstein Email: mordechay.goodstein@intel.com Subject: iwlwifi: pcie: fix unused txq NULL pointer dereference Date: Sun, 11 Jun 2017 18:00:36 +0300 commit f6eac740a9b6f3737a969bad82931633519a1cc5 upstream. Before TVQM, all TX queues were allocated straight at init. With TVQM, queues are allocated on demand and hence we need to check if a queue exists before dereferencing it. Fixes: 66128fa08806 ("iwlwifi: move to TVQM mode") Signed-off-by: Mordechai Goodstein <mordechay.goodstein@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 141/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: mvm: fix a NULL pointer dereference of error in recovery Date: Mon, 12 Jun 2017 15:10:09 +0300 commit 61dd8a8a6a0c3cbfb6b02ab652c4f4efb93f3d79 upstream. Sometimes, we can have an firmware crash while trying to recover from a previous firmware problem. When that happens, lots of things can go wrong. For example the stations don't get added properly to mvm->fw_id_to_mac_id. Mac80211 tries to stop A-MPDU upon reconfig but in case of a firmware crash we will bail out fairly early and in the end, we won't delete the A-MPDU Rx timeout. When that timer expired after a double firmware crash, we end up dereferencing mvm->fw_id_to_mac_id[sta_id] which is NULL. Fixes: 10b2b2019d81 ("iwlwifi: mvm: add infrastructure for tracking BA session in driver") Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 142/310 [ Author: Dan Carpenter Email: dan.carpenter@oracle.com Subject: iwlwifi: missing error code in iwl_trans_pcie_alloc() Date: Wed, 14 Jun 2017 13:44:51 +0300 commit 2388bd7b133504fa0991f483db66fad3a0de8694 upstream. We don't set the error code here so we end up returning ERR_PTR(0) which is NULL. The caller doesn't expect that so it results in a NULL dereference. Fixes: 2e5d4a8f61dc ("iwlwifi: pcie: Add new configuration to enable MSIX") Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 143/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: fix tracing when tx only is enabled Date: Wed, 14 Jun 2017 12:21:05 +0300 commit 5462bcd8c9dc7e7ff2dd54c3f1bb5a9a729f7a73 upstream. iwl_trace_data is somewhat confusing. It returns a bool that tells if the payload of the skb should be added to the tx_data event. If it returns false, then the payload of the skb is added to the tx event. The purpose is to be able to start tracing with -e iwlwifi and record non-data packets only which saves bandwidth. Since EAPOLs are important, seldom and not real data packet (despite being WiFi data packets), they are included in tx event and thus iwl_trace_data returns false on those. This last part was buggy, and because of that, all the data packets were included in the tx event. Fix that. Fixes: 0c4cb7314d15 ("iwlwifi: tracing: decouple from mac80211") Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 144/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: mvm: handle IBSS probe_queue in a few missing places Date: Tue, 20 Jun 2017 13:40:03 +0300 commit 7b758a111819006ba64dd23aa016d42a20ba8557 upstream. When IBSS was implemented for DQA, we missid a few places where it should be handled in the same way as AP. Fixes: ee48b72211f8 ("iwlwifi: mvm: support ibss in dqa mode") Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 145/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: defer setting IWL_MVM_STATUS_IN_HW_RESTART Date: Fri, 30 Jun 2017 10:48:28 +0200 commit bf8b286f86fcc66d138fd992acfa37839340218d upstream. A hardware/firmware error may happen at any point in time. In particular, it might happen while mac80211 is in the middle of a flow. We observed the following situation: * mac80211 is in authentication flow, in ieee80211_prep_connection() * iwlwifi firmware crashes, but no error can be reported at this precise point (mostly because the driver method is void, but even if it wasn't we'd just shift to a race condition) * mac80211 continues the flow, trying to add the AP station * iwlwifi has already set its internal restart flag, and so thinks that adding the station is part of the restart and already set up, so it uses the information that's supposed to already be in the struct This can happen with any flow in mac80211 and with any information we try to preserve across hardware restarts. To fix this, only set a new HW_RESTART_REQUESTED flag and translate that to IN_HW_RESTART once mac80211 actually starts the restart by calling our start() method. As a consequence, any mac80211 flow in progress at the time of the restart will properly finish (certainly with errors), before the restart is attempted. This fixes https://bugzilla.kernel.org/show_bug.cgi?id=195299. Reported-by: djagoo <dev@djagoo.io> Reported-by: Łukasz Siudut <lsiudut@gmail.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 146/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: mvm: fix TCP CSUM offload with WEP and A000 series Date: Wed, 21 Jun 2017 10:35:09 +0300 commit 3f25bb4b7f7718d391321608f947840a79934568 upstream. When we enabled TCP checksum offload, we need to tell the firmware where the IP header starts. If we have an IV, then we need to adapt that value since the IV is placed before the SNAP header. This is true only for cases where the driver adds the IV, not the WEP case in which the IV is added by the firmware itself. On A000 devices series, the IV is always added by the device. Fix this. Fixes: 5e6a98dc4863 ("iwlwifi: mvm: enable TCP/UDP checksum support for 9000 family") Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 147/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: add TLV for MLME offload firmware capability Date: Thu, 29 Jun 2017 16:18:21 +0300 commit 58877d7428b0747134cb65096d51dfabdc62000d upstream. The firmware now adds a new DWORD for the MLME offload's capability even on firmware versions that don't support it. Add the TLV bit to avoid getting the print: capa flags index 3 larger than supported by driver. This fixes the bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=196195 Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 148/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: split the regulatory rules when the bandwidth flags require it Date: Mon, 3 Jul 2017 16:25:33 +0300 commit 92b0f7b26b313b23cc9bef0bd406607f4566c0c0 upstream. When we create a regulatory domain out of an MCC notification, we need to make sure that all the channels in the rule have the exact same properties. The current code mixes channel 36 and 40 although 36 can be a control channel with HT40+ (36, 40) whereas 40 can't be a control channel with HT40+ since (40, 44) is invalid. Because of that, cfg80211 would allow to connect in 40MHz to APs that are configured to channel 40 HT40+ and that made our firmware assert. Fix this by checking the bandwidth flags before taking the decision if the rule should be split. This fixes https://bugzilla.kernel.org/show_bug.cgi?id=195299 partly. Fixes: af45a9003f1f ("iwlwifi: create regdomain from mcc_update_cmd response") Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 149/310 [ Author: Gregory Greenman Email: gregory.greenman@intel.com Subject: iwlwifi: mvm: set A-MPDU bit upon empty BA notification from FW Date: Thu, 6 Jul 2017 05:07:33 +0300 commit 9465c3f8ba67cff697c0529de5a03cc5e1509d41 upstream. The bit was set only if there was at least one reclaimed frame in an aggregation. It's important to set it also in the case that the whole A-MPDU was lost, otherwise rate scaling statistics will not be updated correctly. Thus, set it always in ba notification handler. This fixes a throughput degradation of about 20% in certain scenarios with multiple streams on 11ac. Signed-off-by: Gregory Greenman <gregory.greenman@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 150/310 [ Author: Gregory Greenman Email: gregory.greenman@intel.com Subject: iwlwifi: mvm: rs: fix TLC statistics collection Date: Thu, 6 Jul 2017 05:27:55 +0300 commit 87f55616f81bf6c82f0e94cf4661151399d2a7b6 upstream. Statistics should be collected according to the actual rate a frame/aggregation was transmitted and not according to the initial rate from the last LQ command (these rates are different if the frames were retransmitted at a lower rate from the rate scale table). This is needed to remove throughput degradation. Signed-off-by: Gregory Greenman <gregory.greenman@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 151/310 [ Author: Haim Dreyfuss Email: haim.dreyfuss@intel.com Subject: iwlwifi: fix fw_pre_next_step to apply also for C step Date: Sun, 9 Jul 2017 15:51:44 +0300 commit e9fb92e13d5e743a6ff13d3206c0f9e5e8cbc1f4 upstream. C step NICs should use the latest FW (currently B step). Correct the condition to make C step NICs advanced its default FW name to the latest one. Also rename _next_ to b_or_c to avoid confusion. Fixes: 5da083d1922c ("iwlwifi: add support for 9000 HW B-step NICs") Signed-off-by: Haim Dreyfuss <haim.dreyfuss@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 152/310 [ Author: Naftali Goldstein Email: naftali.goldstein@intel.com Subject: iwlwifi: mvm: set the RTS_MIMO_PROT bit in flag mask when sending sta to fw Date: Thu, 27 Jul 2017 04:53:55 +0300 commit 8addabf8e6e299f790038fdc92ddceaaf76adab8 upstream. Set the STA_FLG_RTS_MIMO_PROT bit in station_flags_msk of the add sta command, so that when smps mode changes, the FW will know about it. In particular, in AP mode, clients are added upon receival of an auth request, at which point there's no knowledge of the client's smps mode. When the assoc request arrives, the add_sta command is resent to modify the station parameters. At this point the driver knows the smps mode, but since the corresponding bit in the mask is not set, the fw doesn't update this field so there's no rts protection for mimo. Fixes: 5bc5aaad407c ("iwlwifi: mvm: set up initial SMPS/NSS station info") Signed-off-by: Naftali Goldstein <naftali.goldstein@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 153/310 [ Author: Tzipi Peres Email: tzipi.peres@intel.com Subject: iwlwifi: add the new 9000 series PCI IDs Date: Sun, 30 Jul 2017 13:29:30 +0300 commit 558f479f687aca6a336e13309424a7c3afd32721 upstream. Add two PCI IDs for the 9160 series. Add five PCI IDs for the 9260 series. Add one PCI IDs for the 9270 series. Add seven PCI IDs for the 9460 series. Add five PCI IDs for the 9560 series. Signed-off-by: Tzipi Peres <tzipi.peres@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 154/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: refactor out paging code Date: Thu, 1 Jun 2017 12:10:32 +0200 commit 235acb1894321f91c771464d90c4010a9bef90bb upstream. Refactor the paging code from mvm to be used by different opmodes. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 155/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: refactor shared mem parsing Date: Thu, 1 Jun 2017 14:44:40 +0200 commit d0b813fcdc22d091f8c9eee3a1484dca162667c8 upstream. Refactor the shared memory command parsing into common code. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 156/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: track current firmware image in common code Date: Fri, 2 Jun 2017 11:56:58 +0200 commit 702e975d6a60027968423a4fdaaf0831da87b73b upstream. Track the current firmware image in the common code instead of in the opmode so that later patches can access it there in a common way. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 157/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: refactor firmware debug code Date: Thu, 1 Jun 2017 16:03:19 +0200 commit 7174beb60c53209c6e98c9cee20efdee97ef880f upstream. Split out the firmware debug code to be more general, so that it can be used by different subdrivers. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 158/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: reorganize firmware API Date: Fri, 2 Jun 2017 15:15:53 +0200 commit d172a5eff629127c048272e5d44e8b9f9cd30eac upstream. Apart from DVM, all firmware uses the same base API, and there's code outside iwlmvm that needs to interact with it. Reflect this in the source better and reorganize the firmware API to a new fw/api/ directory. While at it, split the already pretty large fw-api.h file into a number of smaller files, going from almost 3k lines in there to a maximum number of lines less than 1k. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 159/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: fw api: fix various kernel-doc warnings Date: Tue, 6 Jun 2017 12:19:22 +0200 commit b37ca87f93e475eb41aa6dfd3675e5bffdf67c0a upstream. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 160/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: add and use iwl_mvm_has_unified_ucode() Date: Thu, 8 Jun 2017 09:18:22 +0200 commit 7d6222e27013a18f36e54f40a66e209a859fc1a8 upstream. This may need to be refined later, but for now using this, even with the TODO, is better than checking "has new TX API". Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 161/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: check family instead of new TX API for workarounds Date: Thu, 8 Jun 2017 09:42:28 +0200 commit c8c017a6ff933ff88f3abf7d924e717284e218af upstream. There are two workarounds because RSS is currently broken on A000 devices due to firmware issues, but checking for the new TX API doesn't really make sense. Check the hardware family instead of the new TX API - there's nothing better to check since it's just a temporary workaround. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 162/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: byte-swap constant instead of variable Date: Wed, 7 Jun 2017 09:31:13 +0200 commit c67a3d05024fad00ac160e868967a1e711073993 upstream. Convention has it to byte-swap the constant instead of the variable when doing bit checks. This also generates better code when the swap is actually needed, since the constant can be swapped at compile-time. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 163/310 [ Author: Seraphime Kirkovski Email: kirkseraph@gmail.com Subject: iwlwifi: dvm: remove unused defines Date: Wed, 7 Jun 2017 01:20:27 +0200 commit 57bcc81d52a264847944f6e2b812588fbab09e5d upstream. Those constants have been unused for quite some time now. Signed-off-by: Seraphime Kirkovski <kirkseraph@gmail.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 164/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: mvm: refactor beacon template command code Date: Thu, 1 Jun 2017 15:19:45 +0300 commit 09856582bffba3b4a3f6286d53be16c2a569c3ef upstream. We currently support 3 different versions of the beacon template command and the code does some tricks in order to reuse what is possible across these versions. But it is a bit complicated to read and soon there will be one more variation that the driver needs implement, which would complicate it even further. Refactor the way we send beacon template commands, which increases the code size a bit, but makes it much easier to read. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 165/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: mvm: fix the FIFO numbers in A000 devices Date: Tue, 13 Jun 2017 13:18:48 +0300 commit cf6c6ea352faadb15d1373d890bf857080b218a4 upstream. The FIFO numbering is different in A000 devices. This means that we routed BE packets to BK FIFO. Fix this. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 166/310 [ Author: Sharon Dvir Email: sharon.dvir@intel.com Subject: iwlwifi: mvm: fix uninitialized var while waiting for queues to empty Date: Mon, 12 Jun 2017 11:40:33 +0300 commit bec9522aa57421984cb4e1e87eee195bae1ccb25 upstream. While waiting for queues to empty, If txq_id == IWL_MVM_INVALID_QUEUE for all txq_ids, ret is used uninitialized. Found by Klocwork. Fixes: d6d517b7730c ("iwlwifi: add wait for tx queue empty") Signed-off-by: Sharon Dvir <sharon.dvir@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 167/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: pcie: fix A-MSDU on gen2 devices Date: Wed, 14 Jun 2017 15:25:39 +0300 commit c1b68c194ed72a5df55e7344b19c50ccb357f690 upstream. The return status check of iwl_pcie_gen2_build_amsdu was buggy. Fix it. Fixes: 6ffe5de35b05 ("iwlwifi: pcie: add AMSDU to gen2") Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 168/310 [ Author: Liad Kaufman Email: liad.kaufman@intel.com Subject: iwlwifi: mvm: support fw reading empty OTP Date: Mon, 5 Jun 2017 16:39:39 +0300 commit f6aa45f67aaa03bd294040508218bc72c5958ad6 upstream. If the OTP is empty, the NVM_GET_INFO command returns with flags' bit(0) on. This means the FW returns the default values for working with. This is allowed, so use this returned data. Fixes: e9e1ba3dbf00 ("iwlwifi: mvm: support getting nvm data from firmware") Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 169/310 [ Author: Mordechai Goodstein Email: mordechay.goodstein@intel.com Subject: iwlwifi: implement fseq version mismatch warning Date: Tue, 13 Jun 2017 17:17:27 +0300 commit f2e66c8df0d0f10c70ed7f5e14a939714e9ee6a9 upstream. During init, the FW checks whether the FSEQ value matches what it expects. If it doesn't match, we print a warning to let integrators clearly know that something is wrong. This can happen if another core (i.e. not WiFi) has updated the FSEQ version. This notification is only sent by the FW in production, for development firmwares, an assertion is triggered instead. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Mordechai Goodstein <mordechay.goodstein@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 170/310 [ Author: "Zamir, Roee" Email: roee.zamir@intel.com Subject: iwlwifi: mvm: add compile-time option to disable EBS Date: Wed, 14 Jun 2017 13:53:44 +0300 commit 6667e6589a02df8f27f8eebfabd8891c9d74152c upstream. For testing purposes, we may want to disable EBS scans at compile time. Signed-off-by: Roee Zamir <roee.zamir@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 171/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: pcie: rename iwl_trans_check_hw_rf_kill() to pcie Date: Tue, 20 Jun 2017 15:10:31 +0200 commit 9ad8fd0b4a24e64c34130bdfed95bfbf382c8e59 upstream. Rename this function to the more appropriate iwl_pcie_check_hw_rf_kill() since it's only a function in the pcie code and cannot be called from any other place. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 172/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: require AP_LINK_PS for TVQM Date: Tue, 20 Jun 2017 15:18:43 +0200 commit 960f864b7b628f67bb57aeb071066fd2fe092bba upstream. Since the TXQ timer freeze code will not properly handle the large TVQM queue numbers, warn if we get into that code when we have TVQM. Also, just to catch this earlier, warn if the firmware image doesn't support AP_LINK_PS but we're running on HW using TVQM. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 173/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: simplify bufferable MMPDU check Date: Tue, 20 Jun 2017 11:22:07 +0200 commit 7426ee33a29b3215357986378c77bb9949518154 upstream. There's no need to spell out the cases when we can just use ieee80211_is_bufferable_mmpdu(). Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 174/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: mvm: rename p2p-specific sta functions to include p2p in the names Date: Thu, 22 Jun 2017 16:00:25 +0300 commit d197358b755b56bd12c01044b6373986590878f6 upstream. The iwl_mvm_add_bcast_sta() and the iwl_mvm_rm_bcast_sta() functions are only called in P2P flows. Add _p2p_ to the function names to make this explicit. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 175/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: remove non-DQA mode Date: Mon, 19 Jun 2017 23:50:31 +0200 commit c8f54701bdbfcc78ebbc0d10f47a8a1b803f101f upstream. All the firmware versions the driver supports enable DQA, and thus the only way to get non-DQA mode is to modify the source. Remove this mode to simplify the code. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 176/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: mvm: don't retake the pointer to skb's CB Date: Sun, 25 Jun 2017 10:38:12 +0300 commit d20e30af7e65811955af5bc2a268ae75cd14e99e upstream. We already have a such a pointer. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 177/310 [ Author: Christophe Jaillet Email: christophe.jaillet@wanadoo.fr Subject: iwlwifi: mvm: Fix a memory leak in an error handling path in 'iwl_mvm_sar_get_wgds_table()' Date: Fri, 14 Jul 2017 12:06:59 +0200 commit aae9d563230f974f2daa7135f911f021b2bba9e6 upstream. We should free 'wgds.pointer' here as done a few lines above in another error handling path. It was allocated within 'acpi_evaluate_object()'. Fixes: c52030a01ccc ("iwlwifi: mvm: add GEO_TX_POWER_LIMIT cmd for geographic tx power table") Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 178/310 [ Author: Avraham Stern Email: avraham.stern@intel.com Subject: iwlwifi: mvm: start mac queues when deferred tx frames are purged Date: Wed, 26 Jul 2017 15:08:45 +0300 commit 7e39a00d593133ca8fcd3eef0409685e7c895ee6 upstream. In AP mode, if a station is removed just as it is adding a new stream, the queue in question will remain stopped and no more TX will happen in this queue, leading to connection failures and other problems. This is because under DQA, when tx is deferred because a queue needs to be allocated, the mac queue for that TID is stopped until the new stream is added. If at this point the station that this stream belongs to is removed, all the deferred tx frames are purged, but the mac queue is not restarted. As a result, all following tx on this queue will not be transmitted. Fix this by starting the relevant mac queues when the deferred tx frames are purged. Fixes: 24afba7690e4 ("iwlwifi: mvm: support bss dynamic alloc/dealloc of queues") Signed-off-by: Avraham Stern <avraham.stern@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 179/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: mvm: don't WARN when a legit race happens in A-MPDU Date: Thu, 27 Jul 2017 15:34:12 +0300 commit a600852a9d00be08c539307a42729fd46b0a654e upstream. When we start an Rx A-MPDU session, we first get the AddBA request, then we send an ADD_STA command to the firmware that will reply with a BAID which is a hardware resource that tracks the BA session. This BAID will appear on each and every frame that we get from the firwmare until the A-MPDU session is torn down. In the Rx path, we look at this BAID to manage the reordering buffer. This flow is inherently racy since the hardware will start to put the BAID in the frames it receives even if the firmware hasn't sent the response to the ADD_STA command. This basically means that the driver can get frames with a valid BAID that it doesn't know yet. When that happens, the driver used to WARN. Fix this by simply not WARN in this case. When the driver will know abou the BAID, it will initialise the relevant states and the next frame with a valid BAID will refresh them. Fixes: b915c10174fb ("iwlwifi: mvm: add reorder buffer per queue") Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 180/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: remove useless condition in LED code Date: Thu, 29 Jun 2017 09:14:45 +0200 commit 4aa234eeec0aa9414637bd193f0745cf91bb60ef upstream. If the module parameter is set to disable the LED, we leave the initialization routine before setting the LEDS_INIT_COMPLETE status bit. Therefore, there's no need to check the parameter again on exit, just the status check is sufficient. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 181/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: use firmware LED command where applicable Date: Wed, 28 Jun 2017 16:19:49 +0200 commit 7089ae634c50544b29b31faf1a751e8765c8de3b upstream. On devices starting from 8000 series, the host can no longer toggle the LED through the CSR_LED_REG register, but must do it via the firmware instead. Add support for this. Note that this means that the LED cannot be turned on while the firmware is off, so using an arbitrary LED trigger may not work as expected. Fixes: 503ab8c56ca0 ("iwlwifi: Add 8000 HW family support") Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 182/310 [ Author: Bhumika Goyal Email: bhumirks@gmail.com Subject: iwlwifi: mvm: add const to thermal_cooling_device_ops structure Date: Wed, 21 Jun 2017 14:10:42 +0530 commit b1a1efc57665f7c70e2051e0531837cb1985f11b upstream. Declare thermal_cooling_device_ops structure as const as it is only passed as an argument to the function thermal_cooling_device_register and this argument is of type const. So, declare the structure as const. Signed-off-by: Bhumika Goyal <bhumirks@gmail.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 183/310 [ Author: Chaya Rachel Ivgi Email: chaya.rachel.ivgi@intel.com Subject: iwlwifi: mvm: add debugfs to force CT-kill Date: Tue, 27 Jun 2017 14:13:02 +0300 commit 61d8c626468a8193a5e890e9f633edc10aa05c1e upstream. CT-kill is a thermal-based "RF-kill", which disables the NIC completely if the temperature gets too high, in order to avoid damage. Add a debugfs entry to simulate high temperatures, in order to test CT-kill flows in the driver without having to physically heat the device up. Signed-off-by: Chaya Rachel Ivgi <chaya.rachel.ivgi@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 184/310 [ Author: Sharon Dvir Email: sharon.dvir@intel.com Subject: iwlwifi: change functions that can only return 0 to void Date: Mon, 12 Jun 2017 11:28:21 +0300 commit a4380b4eb3da772473efb38bfc1aaad8ddad2b84 upstream. Change iwl_set_ucode_api_flags(), iwl_set_ucode_capabilities() to be void. No need to check returned values. Found by Klocwork. Signed-off-by: Sharon Dvir <sharon.dvir@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 185/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: fix a few instances of misaligned kerneldoc parameters Date: Wed, 28 Jun 2017 14:08:53 +0300 commit cbeb58ef36a01f190a1b61e52a60d4264d420c6b upstream. There are a few places where we don't have a space between the * and the @ in the parameter description. Also, in one case, the @ had trailing space before the parameter name. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 186/310 [ Author: Tzipi Peres Email: tzipi.peres@intel.com Subject: iwlwifi: add support of FPGA fw Date: Wed, 14 Jun 2017 10:02:47 +0300 commit f6586b69b29ef2e4f3c606c3d2da731a5ff4f16c upstream. Load FW according to NIC type, taking into account simulation, if exists. This is determined by a prph register. Signed-off-by: Tzipi Peres <tzipi.peres@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 187/310 [ Author: Liad Kaufman Email: liad.kaufman@intel.com Subject: iwlwifi: fix a000 RF_ID define Date: Sun, 2 Jul 2017 10:32:34 +0300 commit 36ae4f3aafe7768d00510a18e5ad17a55a4849a5 upstream. One of the defines has a wrong value. Fixes: 1afb0ae42174 ("iwlwifi: allow combining different phy images with mac images") Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 188/310 [ Author: Golan Ben-Ami Email: golan.ben.ami@intel.com Subject: iwlwifi: dump smem configuration when firmware crashes Date: Sun, 25 Jun 2017 17:23:23 +0300 commit ce27f005c9e39f2e4081b0a8f6a5f395fc8eaa61 upstream. Add the smem configuration to the fw data dump, once the firmware crashes. This is useful mainly for later parsing of the smem. Signed-off-by: Golan Ben-Ami <golan.ben.ami@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 189/310 [ Author: Shaul Triebitz Email: shaul.triebitz@intel.com Subject: iwlwifi: mvm: move a000 device NVM retrieval to a common place Date: Thu, 22 Jun 2017 17:09:08 +0300 commit c135cb564c6d4d7758fa68e5d0b37021398f4057 upstream. Getting the NVM data in a000 devices should be shared across operation mode. Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 190/310 [ Author: Chaya Rachel Ivgi Email: chaya.rachel.ivgi@intel.com Subject: iwlwifi: mvm: set the default cTDP budget Date: Sun, 9 Jul 2017 16:35:14 +0300 commit 944eafc255500102b69940f425eb073bfab933db upstream. In case there is no value received from BIOS for cTDP budget, the default should be 2000 mWatt. Signed-off-by: Chaya Rachel Ivgi <chaya.rachel.ivgi@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 191/310 [ Author: Naftali Goldstein Email: naftali.goldstein@intel.com Subject: iwlwifi: mvm: send delba upon rx ba session timeout Date: Tue, 11 Jul 2017 10:07:32 +0300 commit 20fc690f38d17b8f961101a477a9aa0841fb6e20 upstream. When an RX block-ack session times out, the firmware, which offloads RX reordering but not the BA session negotiation, stops the session but doesn't send a DELBA. This causes the the session to remain active in the remote device, so no more BA sessions will be established, causing a severe throughput degradation due to the lack of aggregation. Use the new ieee80211_rx_ba_timer_expired API when the ba session timer expires, since this will tear down the ba session and also send a delba. The previous API used is intended for drivers that offload the addba/delba negotiation, but not the rx reordering, while our driver does the opposite. This patch depends on "mac80211: add api to start ba session timer expired flow". Signed-off-by: Naftali Goldstein <naftali.goldstein@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 192/310 [ Author: Haim Dreyfuss Email: haim.dreyfuss@intel.com Subject: iwlwifi: mvm: support new beacon template command Date: Mon, 12 Jun 2017 14:59:02 +0300 commit 6ca33f8bae01bd3f1949287a0339c3e6f9e96aca upstream. Support a new version of the beacon template command. This replaces v8 of the command, which was missing the rate code. Also, export rate decision logic to a separate function. Signed-off-by: Haim Dreyfuss <haim.dreyfuss@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 193/310 [ Author: Matt Chen Email: matt.chen@intel.com Subject: iwlwifi: mvm: don't send CTDP commands via debugfs if not supported Date: Fri, 23 Jun 2017 17:50:18 +0800 commit 0bef1b83d35566e9bc757469c823c126862a65d3 upstream. Fix this issue if it is not supported by the firmware. Fixes: 00f481bd895a ("iwlwifi: mvm: add ctdp operations to debugfs") Signed-off-by: Matt Chen <matt.chen@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 194/310 [ Author: Shaul Triebitz Email: shaul.triebitz@intel.com Subject: iwlwifi: mvm: add station before allocating a queue Date: Mon, 10 Jul 2017 19:58:10 +0300 commit 732d06e9d9cf96c39cd1c0cd16472930a5583bb7 upstream. One of the queue config params is the associated station id. Hence the FW must know about the station prior to the queue allocation. In a000 devices, allocating a queue without a valid station results with assert 0x2B00. In FW restart flow the queues are allocated before adding the station so first add the station. Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 195/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: pcie: don't init a Tx queue with an SSN > size of the queue Date: Thu, 13 Jul 2017 09:49:32 +0300 commit 39fff7599397e1c9fdf54093f1f4c3146066c24b upstream. The TVQM tells us the initial write pointer for a queue, but that write pointer is in WiFi sequence number unit and not in TFD index unit. Which means that the write pointer in the TVQM's response can be bigger than the Tx queue ring size. Fix that by modulo'ing the write pointer from the TVQM with the Tx queue size. Fixes: 66128fa08806 ("iwlwifi: move to TVQM mode") Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 196/310 [ Author: Golan Ben-Ami Email: golan.ben.ami@intel.com Subject: iwlwifi: fix nmi triggering from host Date: Wed, 28 Jun 2017 13:03:58 +0300 commit f4ca70ef931fc7191d6de2feedffb81eccec1982 upstream. Although nmi was triggered fine till now, it appears that the driver didn't write the exact correct values to the correct addresses for each HW. Fix the nmi triggering by setting the correct addresses and values. Fixes: 4c9706dc2f29 ("iwlwifi: update nmi register") Signed-off-by: Golan Ben-Ami <golan.ben.ami@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 197/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: remove references to unsupported HW Date: Mon, 17 Jul 2017 09:15:34 +0300 commit fb70d49f2afec87fc570852c2251ffd3117c7373 upstream. There are still some references to 3945 and 4965 HW, which were never supported in iwlwifi. These references were inherited from a previous project and are irrelevant here. Additionally, remove some irrelevant references to 5100 HW. Remove all these. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 198/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: pcie: free the TSO page when a Tx queue is unmapped on A000 devices Date: Sun, 16 Jul 2017 12:45:12 +0300 commit 9bb3d5a003b1740a8252c59f6c82dd75b3c0fe83 upstream. When we unmap a non-empty Tx queue, we need to free the pages that we allocated for the headers in TSO flows. This code existed for the 9000 device family, but somehow it got left out when the new Tx path for the A000 devices was written. Fixes: 2b0c5946d9ed ("iwlwifi: pcie: introduce a000 TX queues management") Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 199/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: mvm: fix the coex firmware API Date: Sun, 23 Jul 2017 12:53:46 +0300 commit 88c5f476bac964eb96e751b004f5684c90629eab upstream. The firmware API defined in the header files didn't match the structure that are actually passed by the firmware. The impact could be a decision for MIMO in Tx or Rx in coex scenarios. Fixes: 430a3bbafdc7 ("iwlwifi: mvm: BT Coex - new API") Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 200/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: mvm: remove the corunning support Date: Sun, 16 Jul 2017 16:22:08 +0300 commit 64511df45cbeec02670a83b666ff584dd1d767a2 upstream. The corunning block was supposed to help in coex scenarios. It required the driver to configure the firmware based on the coupling between the two antennas of the devices. This was never in use and the configuration sent by the driver has always been blank. Remove all that code. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 201/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: mvm: consider RFKILL during INIT as success Date: Mon, 24 Jul 2017 14:47:52 +0300 commit 00e0c6c8fe8833acfebebf0af53b48a965084fd4 upstream. There's no need to differentiate an INIT that ended early because of RFKILL from one that succeded. Additionally, if INIT fails later, during calibration, due to RFKILL, we can just return success and continue as if we were already in RFKILL to start with. Remove this unnecessary differentiation and do some other small clean-ups while at it. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 202/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: call iwl_remove_notification from iwl_wait_notification Date: Mon, 24 Jul 2017 16:04:47 +0300 commit d98d94952ab8421909159e6a7e4a9c8ad2204753 upstream. The iwl_wait_notification() function removes the wait entry from the list. To make it clearer that it's doing the same thing as iwl_remove_notification(), call the latter instead of having duplicate code. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 203/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: mvm: support new Coex firmware API Date: Sun, 23 Jul 2017 13:59:47 +0300 commit fbfe378fe4e86fd3ff5ca491448da78c26a940ea upstream. The firmware now adds more information about time sharing with the Bluetooth core. Adapt the API structures and add the new fields in the debugfs hooks. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 204/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: pcie: support short Tx queues for A000 device family Date: Sun, 16 Jul 2017 12:28:05 +0300 commit 4ecab5616023e742b70493cf0e90fc97e828d353 upstream. This allows to modify TFD_TX_CMD_SLOTS to a power of 2 which is smaller than 256. Note that we still need to set values to wrap at 256 into the scheduler's write pointer, but all the rest of the code can use shorter transmit queues. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 205/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: mvm: add command name for FRAME_RELEASE Date: Thu, 27 Jul 2017 09:40:16 +0300 commit 3e73aa3bf96619b51c80c73f06512f07fb2b5659 upstream. This name was missing in the list. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 206/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: mvm: group all dummy SAR function declarations together Date: Wed, 26 Jul 2017 15:20:18 +0300 commit 18f1755db781165bcda6b3c8d93b909af96bb5ab upstream. We have some of the SAR dummy functions when ACPI is not set declared in mvm.h and some declared in fw.c. Group them all together in fw.c for consistency and to avoid static/non-static issues. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 207/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: mvm: use mvmsta consistently in rs.c Date: Tue, 1 Aug 2017 09:01:34 +0300 commit 7ccb498ca86c3700f391131b7c5eda9318b3b7db upstream. We use mvmsta for the sta->drv_priv in mvm, but in rs.c we have a bunch of instances using sta_priv, which is probably due to it being copied from dvm. Change all occurrences to mvmsta for consistency with the rest of the driver Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 208/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: mvm: update the firmware API in TX Date: Wed, 2 Aug 2017 09:29:33 +0300 commit f9cd3e0871b54e70d3ecfa89b76b2e9a7ac172af upstream. The firmware team is now re-using a bit that hasn't been used for a few generations. Re-use for TX_ON_AIR drop. This bit will be set by the firmware to indicate that a frame in an A-MPDU was dropped but not because of the already mapped reasons. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 209/310 [ Author: Avraham Stern Email: avraham.stern@intel.com Subject: iwlwifi: mvm: remove session protection to allow channel switch Date: Wed, 2 Aug 2017 12:13:20 +0300 commit 3edfb5f44b942f04b4fbbddb24d8866bbfb5d1a4 upstream. If a time event is already scheduled when trying to schedule one for channel switch, the code assumes the channel switch is already scheduled and no further action is required. However, it is possible that the scheduled time event is actually for session protection (e.g. when the first beacon after association contains the CSA IE). In this case the channel switch will not be scheduled which will finally lead to disconnection. Fix this by removing the old time event and schduling a new one for the channel switch. Signed-off-by: Avraham Stern <avraham.stern@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 210/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: mvm: don't send BAR on flushed frames Date: Sun, 6 Aug 2017 13:19:05 +0300 commit 114db230d35442e6d3382adc8ac34c944b5cd0eb upstream. When we flush a queue, the packets will have a 'failed' status but we shouldn't send a BAR. This check was missing. Because of that, when we got an ampdu_action with IEEE80211_AMPDU_TX_STOP_FLUSH, we started the following ping pong with the firmware: 1) Set the station as 'draining' 2) Get a failed Tx status (DRAINED) 3) Send a BAR because of the failed Tx status (loop of 2 and 3) This loop wasn't endless since the BAR isn't sent on a queue that would trigger a "nested" BAR. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 211/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: move BT_MBOX_PRINT macro to common header Date: Sun, 6 Aug 2017 11:06:44 +0300 commit d91c3fd0ceba90ed66949fccc856b1e8119a9ccd upstream. Move the BT_MBOX_PRINT() macro from mvm/debugfs.c to fw/api/coex.h so it can be reused and remove duplicate definition of BT_MBOX_MSG(), keeping only the one already in coex.h. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 212/310 [ Author: João Paulo Rechi Vita Email: jprvita@gmail.com Subject: iwlwifi: Demote messages about fw flags size to info Date: Thu, 3 Aug 2017 07:47:28 -0700 commit 5f5537ac3f0f7bd527d332aa166a009be833dfae upstream. These messages are not reporting a real error, just the fact that the firmware knows about more flags than the driver. Currently these messages are presented to the user during boot if there is no bootsplash covering the console, even when booting the kernel with "quiet". Demoting it to the warn level helps having a clean boot process. Signed-off-by: João Paulo Rechi Vita <jprvita@endlessm.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 213/310 [ Author: Ilan Peer Email: ilan.peer@intel.com Subject: iwlwifi: mvm: Fix channel switch in case of count <= 1 Date: Tue, 8 Aug 2017 14:56:58 +0300 commit f5d8f50f271d1f80c2afd7eada1c91a863c87a06 upstream. The code did not consider the case that the channel switch counter is <= 1, which would result with an inaccurate calculation of the time event apply time. As the specification states that in case of counter == 0 the switch occurs at any time after the reception the frame, and for counter == 1 the switch would happens before the next TBTT, schedule the time event immediately. Signed-off-by: Ilan Peer <ilan.peer@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 214/310 [ Author: Tzipi Peres Email: tzipi.peres@intel.com Subject: iwlwifi: distinguish different RF modules in A000 devices Date: Tue, 25 Jul 2017 13:04:46 +0300 commit 5f19d6dd811b1bd4ceb0823d22ec00bbc479e379 upstream. Newer versions of A000 devices come with two diffenent RF modules. The PCI_ID, the subsystem ID and the RF ID are identical in these two cases, so we need to differentiate them by using the CSR_HW_RF_ID register- in order to load the appropriate firmware. Signed-off-by: Tzipi Peres <tzipi.peres@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 215/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: update channel flags parser Date: Wed, 16 Aug 2017 10:46:52 +0300 commit b823cf3bae8111341212e698b94ab7293e7fb9f9 upstream. There are some new flags in the channel flags that we don't know about. Also, the "WIDE" flag is very confusing, because it actually means 20MHz bandwidth, which is not very wide. Add the new flags and rename the confusing one. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 216/310 [ Author: Gregory Greenman Email: gregory.greenman@intel.com Subject: iwlwifi: mvm: change open and close criteria of a BA session Date: Tue, 15 Aug 2017 12:27:01 +0300 commit 482e48440a0e0a6260d026b92de99034ac4d7b52 upstream. Tx BA session should be started according to the current throughput without any dependence on the internal rate scaling state. The criteria for opening a BA session will be 10 frames per second. Sending frequent del BAs can cause inter-op issues with some APs. We'll not close a BA session until we receive an explicit del BA from the peer. Signed-off-by: Gregory Greenman <gregory.greenman@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 217/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: add workaround to disable wide channels in 5GHz Date: Tue, 15 Aug 2017 20:48:41 +0300 commit 01a9c948a09348950515bf2abb6113ed83e696d8 upstream. The OTP in some SKUs have erroneously allowed 40MHz and 80MHz channels in the 5.2GHz band. The firmware has been modified to not allow this in those SKUs, so the driver needs to do the same otherwise the firmware will assert when we try to use it. Cc: stable@vger.kernel.org Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 218/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: fw: fix lar_enabled endian problem in iwl_fw_get_nvm Date: Tue, 15 Aug 2017 23:12:39 +0300 commit 8a0d53ce10053ce39b9512a054ab4c0bef2e2cc3 upstream. We read the regulatory.lar_enabled field in iwl_fw_get_nvm() and store it in nvm->lar_enabled, taking care of endianness. But then later we read it again to pass the value to iwl_init_sbands() without handling endianness. To solve this, simply reuse nvm->lar_enabled when calling that function. Fixes: e9e1ba3dbf00 ("iwlwifi: mvm: support getting nvm data from firmware") Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 219/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: mvm: remove useless argument in iwl_nvm_init() Date: Tue, 15 Aug 2017 18:46:44 +0300 commit 5bd1d2c1ea9d0f8ca7ad0457c3a24fb91c9ca756 upstream. We always call iwl_nvm_init() with read_nvm_from_nic == true, so this argument is useless. Remove it. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 220/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: mvm: remove useless check for mvm->cfg in iwl_parse_nvm_section() Date: Tue, 15 Aug 2017 19:24:59 +0300 commit ee4fe54024f071976120dce71aefe056dfab4eb7 upstream. At this point we have already copied the cfg pointer to mvm and we have been dereferencing this pointer many times before, so it will never be NULL or we would have crashed. Remove the useless check. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 221/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: use big-endian for the hw section of the nvm Date: Thu, 17 Aug 2017 18:51:56 +0300 commit 8fe34b060a4b11be35ffd9383acdd0bc7bee72e2 upstream. Unlike the other sections of the NVM, the hw section is in big-endian. To read a value from it, we had to cast it to __be16. Fix that by using __be16 * for the entire section. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 222/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: pcie: move rx workqueue initialization to iwl_trans_pcie_alloc() Date: Tue, 22 Aug 2017 10:37:29 +0300 commit 10a54d8196d11f6cc0db2f71249f93854cb9fe55 upstream. Work queues cannot be allocated when a mutex is held because the mutex may be in use and that would make it sleep. Doing so generates the following splat with 4.13+: [ 19.513298] ====================================================== [ 19.513429] WARNING: possible circular locking dependency detected [ 19.513557] 4.13.0-rc5+ #6 Not tainted [ 19.513638] ------------------------------------------------------ [ 19.513767] cpuhp/0/12 is trying to acquire lock: [ 19.513867] (&tz->lock){+.+.+.}, at: [<ffffffff924afebb>] thermal_zone_get_temp+0x5b/0xb0 [ 19.514047] [ 19.514047] but task is already holding lock: [ 19.514166] (cpuhp_state){+.+.+.}, at: [<ffffffff91cc4baa>] cpuhp_thread_fun+0x3a/0x210 [ 19.514338] [ 19.514338] which lock already depends on the new lock. This lock dependency already existed with previous kernel versions, but it was not detected until commit 49dfe2a67797 ("cpuhotplug: Link lock stacks for hotplug callbacks") was introduced. Reported-by: David Weinehall <david.weinehall@intel.com> Reported-by: Jiri Kosina <jikos@kernel.org> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 223/310 [ Author: Liad Kaufman Email: liad.kaufman@intel.com Subject: iwlwifi: fix long debug print Date: Sun, 20 Aug 2017 18:10:12 +0300 commit 075d8a75daedec14f2337c2881186aabd8fa4fda upstream. There is a debug print that sometimes reaches over 110 chars, thus generating a warning in those cases. Split the print into two to prevent these cases. Fixes: 92b0f7b26b31 ("iwlwifi: split the regulatory rules when the bandwidth flags require it") Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 224/310 [ Author: David Spinadel Email: david.spinadel@intel.com Subject: iwlwifi: mvm: Avoid deferring non bufferable frames Date: Thu, 17 Aug 2017 17:28:22 +0300 commit eb045e6e0389eabfd704dd7a76d8b2a892970e85 upstream. Use bcast station for all non bufferable frames on AP and AD-HOC. The host is no longer aware of STAs PS status because of buffer station offload, so we can't rely on mac80211 to toggle on IEEE80211_TX_CTL_NO_PS_BUFFER bit. A possible issue with buffering such frames, beside the obvious spec violation, is when a station disconnects while in PS but the AP isn't aware of that. In such scenarios the AP won't be able to send probe responses or auth frames so the STA won't be able to reconnect and the AP will have a queue hang. Fixes: 3e56eadfb6a1 ("iwlwifi: mvm: implement AP/GO uAPSD support") Signed-off-by: David Spinadel <david.spinadel@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 225/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: mvm: bump API to 34 for 8000 and up Date: Mon, 26 Jun 2017 18:33:59 +0300 commit d7a5b3e9e42ee95190742fef0d617bbde4f74d80 upstream. These devices support -34.ucode, so load it. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 226/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: mvm: only send LEDS_CMD when the FW supports it Date: Thu, 7 Sep 2017 10:51:52 +0300 commit 2eabc84d2f8e4f36d3719eeb6a330e10c46c8da7 upstream. The LEDS_CMD command is only supported in some newer FW versions (e.g. iwlwifi-8000C-31.ucode), so we can't send it to older versions (such as iwlwifi-8000C-27.ucode). To fix this, check for a new bit in the FW capabilities TLV that tells when the command is supported. Note that the current version of -31.ucode in linux-firmware.git (31.532993.0) does not have this capability bit set, so the LED won't work, even though this version should support it. But we will update this firmware soon, so it won't be a problem anymore. Fixes: 7089ae634c50 ("iwlwifi: mvm: use firmware LED command where applicable") Reported-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 227/310 [ Author: Matt Chen Email: matt.chen@intel.com Subject: iwlwifi: mvm: fix wowlan resume failed to load INIT ucode Date: Mon, 28 Aug 2017 14:57:54 +0800 commit 59cd827f26019ac790b2f34cbad478037f51c570 upstream. If we set disconnect on wowlan and run suspend/resume, will run into: ...snipped iwlwifi 0000:01:00.0: Failed to load firmware chunk! iwlwifi 0000:01:00.0: Could not load the [0] uCode section iwlwifi 0000:01:00.0: Failed to start INIT ucode: -110 iwlwifi 0000:01:00.0: Failed to run INIT ucode: -110 iwlwifi 0000:01:00.0: Failed to start RT ucode: -110 It is because we still keep IWL_MVM_STATUS_IN_HW_RESTART in __iwl_mvm_resume. When mac80211 starts the device as __iwl_mvm_mac_start(), we will miss iwl_mvm_restart_cleanup(mvm). Signed-off-by: Matt Chen <matt.chen@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 228/310 [ Author: David Spinadel Email: david.spinadel@intel.com Subject: iwlwifi: mvm: Flush non STA TX queues Date: Tue, 29 Aug 2017 13:56:02 +0300 commit 6110d9e5bdd15c4e60fb67f330fbf74681e7daf7 upstream. When starting wowlan mac80211 requests flush w/o vif and we ignore this request. As a result some packets stay stuck in the queue and it may end up with a queue hang. Allow the driver to flush queues even if station isn't specified. Signed-off-by: David Spinadel <david.spinadel@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 229/310 [ Author: Avraham Stern Email: avraham.stern@intel.com Subject: iwlwifi: mvm: send all non-bufferable frames on the probe queue Date: Thu, 31 Aug 2017 16:27:06 +0300 commit 0fe8bed6e37c259b85d123ef9667f972305c9d6b upstream. AP interfaces now send all non-bufferable frames using the broadcast station. Thus allow them to use the probe queue and don't warn about it. Fixes: eb045e6e0389 ("iwlwifi: mvm: Avoid deferring non bufferable frames") Signed-off-by: Avraham Stern <avraham.stern@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 230/310 [ Author: Naftali Goldstein Email: naftali.goldstein@intel.com Subject: iwlwifi: mvm: change state when queueing agg start work Date: Mon, 28 Aug 2017 11:51:05 +0300 commit bd800e41a3de5c7e56b2fd27088bdaf5e228d227 upstream. Add a new state to enum iwl_mvm_agg_state, which is used between queueing the work that starts tx aggregations and actually starting that work (changing to state IWL_AGG_STARTING). This solves a race where ieee80211_start_tx_ba_session is called a second time, before the work queued by the first run has a chance to change the agg_state. In this case the second call to ieee80211_start_tx_ba_session returns an error, and the fallback is to abort the ba session start. Fixes: 482e48440a0e ("iwlwifi: mvm: change open and close criteria of a BA session") Signed-off-by: Naftali Goldstein <naftali.goldstein@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 231/310 [ Author: Avraham Stern Email: avraham.stern@intel.com Subject: iwlwifi: mvm: wake the correct mac80211 queue Date: Sun, 3 Sep 2017 16:04:38 +0300 commit 8458e48ac7ad86a5ab7f3d1a8cacd9205a9a97ce upstream. iwl_mvm_start_mac_queues() takes a bitmap of the queues to wake. When deferred tx is purged, set the bit of the hw_queue so the correct queue will be waken up. Fixes: 7e39a00d5931 ("iwlwifi: mvm: start mac queues when deferred tx frames are purged") Signed-off-by: Avraham Stern <avraham.stern@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 232/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: mvm: handle FIF_ALLMULTI when setting multicast addresses Date: Fri, 1 Sep 2017 18:57:35 +0300 commit 61e7d91bcf7725b9fcd9cbfc5fa0e0f84f19e6de upstream. We were ignoring the FIF_ALLMULTI flag when setting the multicast addresses with MCAST_FILTER_CMD. Check if this flag is set and enable pass_all accordingly. We also need to set the count to 0 if pass_all is enable so we don't pass addresses to the firmware when not needed (as doing so causes an assert). This fixes https://bugzilla.kernel.org/show_bug.cgi?id=196741 Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 233/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: mvm: initialize status in iwl_mvm_add_int_sta_common() Date: Sat, 2 Sep 2017 11:05:22 +0300 commit 3f497de997c7ed34ad8a90b64f1ca53a41d428b4 upstream. We always need to initialize the status argument to the success case before calling iwl_mvm_send_cmd_status() or iwl_mvm_send_cmd_pdu_status() (which calls the former) otherwise we may get an uninitialized value back. In this case, we use ADD_STA_SUCCESS as success. Fixes: 732d06e9d9cf ("iwlwifi: mvm: add station before allocating a queue") Reported by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 234/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: mvm: set status before calling iwl_mvm_send_cmd_status() Date: Sat, 2 Sep 2017 11:25:40 +0300 commit d460f1fb83a44833a09c8eaa34b30ce553cab8c5 upstream. We always must set the status to what we consider success before calling iwl_mvm_send_cmd_status() (also iwl_mvm_send_cmd_pdu_status() which calls it). Fix a few places where initialization is missing. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 235/310 [ Author: Sara Sharon Email: sara.sharon@intel.com Subject: iwlwifi: mvm: fix reorder buffer for 9000 devices Date: Mon, 4 Sep 2017 20:27:04 +0300 commit 5f90472c00ddf1e64c2865f71cced297bd5f80a2 upstream. The condition to check if reorder buffer ran out of space is faulty, as it takes into account only the NSSN. In case the head SN was too far behind the reorder buffer should move forward, regardless of the NSSN status. This caused the driver to release packets out of order in some scenarios. Fixes: b915c10174fb ("iwlwifi: mvm: add reorder buffer per queue") Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 236/310 [ Author: Shaul Triebitz Email: shaul.triebitz@intel.com Subject: iwlwifi: mvm: do not print security error in monitor mode Date: Wed, 13 Sep 2017 16:46:14 +0300 commit baf41bc35f2bdb953da532645fd82009c2d12acf upstream. In monitor mode we are not expected to decrypt encrypted packets (not having the keys). Hence we are expected to get an unknown rx security status. Keeping the print in monitor mode causes a print for each captured packet flooding the dmesg. Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 237/310 [ Author: Golan Ben Ami Email: golan.ben.ami@intel.com Subject: iwlwifi: stop dbgc recording before stopping DMA Date: Tue, 12 Sep 2017 12:32:25 +0300 commit 1efc3843a4ee1331bc20df685a79b47fa0f547d2 upstream. Today we stop the device and the DMA without stopping the dbgc recording before. This causes host crashes when the DMA rate is high. Stop dbgc recording when clearing the fw debug configuration to fix this. Signed-off-by: Golan Ben Ami <golan.ben.ami@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 238/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: mvm: return -ENODATA when reading the temperature with the FW down Date: Mon, 18 Sep 2017 14:39:26 +0300 commit 1442a9a9f2e441b15393c2d89286303b103a57e8 upstream. It seems that libsensors treats -EIO as a special non-recoverable failure when it tries to read the temperature while the firmware is not running. To solve that, change the error code to a milder -ENODATA. This fixes https://bugzilla.kernel.org/show_bug.cgi?id=196941 Fixes: c221daf219b1 ("iwlwifi: mvm: add registration to thermal zone") Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 239/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: nvm-parse: unify channel flags printing Date: Thu, 21 Sep 2017 11:03:50 +0200 commit d8c73e455d7b973d1346bb5632b4a41819b090c9 upstream. The current channel flags printing is very strange and messy, in LAR we sometimes print the channel number and sometimes the frequency, in both we print a calculated value (whether ad-hoc is supported or not) etc. Unify all this to * print the channel number, not the frequency * remove the band print (2.4/5.2 GHz, it's obvious) * remove the calculated Ad-Hoc print Doing all of this also gets the length of the string to a max of 101 characters, which is below the max of 110 for tracing, and thus avoids the warning that came up on certain channels with certain flag combinations. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 240/310 [ Author: Chaya Rachel Ivgi Email: chaya.rachel.ivgi@intel.com Subject: iwlwifi: nvm: set the correct offsets to 3168 series Date: Mon, 4 Sep 2017 14:40:06 +0300 commit 44fd09dad5d2b78efbabbbbf623774e561e36cca upstream. The driver currently handles two NVM formats, one for 7000 family and below, and one for 8000 family and above. The 3168 series uses something in between, so currently the driver uses incorrect offsets for it. Fix the incorrect offsets. Fixes: c4836b056d83 ("iwlwifi: Add PCI IDs for the new 3168 series") Signed-off-by: Chaya Rachel Ivgi <chaya.rachel.ivgi@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 241/310 [ Author: Liad Kaufman Email: liad.kaufman@intel.com Subject: iwlwifi: mvm: add dbgfs entry for fw info Date: Wed, 16 Aug 2017 14:15:08 +0300 commit 3669cd31927b8229096622e046bb0f6020328b2b upstream. Add a dbgfs entry for an easy way during runtime to check what FW file was loaded, and get some general FW-related data. Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 242/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: trans: move ref/unref code to the common part of the transport Date: Wed, 30 Mar 2016 22:09:34 +0300 commit d621d3c73391fc49c5bbbf823745f0165981119d upstream. De-inline iwl_trans_ref/unref and move it to common transport code in preparation for more common code to come to these functions. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 243/310 [ Author: Oren Givon Email: oren.givon@intel.com Subject: iwlwifi: fix wrong struct for a000 device Date: Mon, 28 Aug 2017 10:33:38 +0300 commit f7f5873bbd45a67d3097dfb55237ade2ad520184 upstream. The PCI ID (0x2720, 0x0070) was set with the config struct iwla000_2ax_cfg_hr instead of iwla000_2ac_cfg_hr_cdb. Fixes: 175b87c69253 ("iwlwifi: add the new a000_2ax series") Signed-off-by: Oren Givon <oren.givon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 244/310 [ Author: Oren Givon Email: oren.givon@intel.com Subject: iwlwifi: add a new a000 device Date: Thu, 31 Aug 2017 13:15:09 +0300 commit d048b36b9654c4e0cf0d3576be2d1ed2a3084c6f upstream. Add a new a000 device with PCI ID (0x2720, 0x0030). Signed-off-by: Oren Givon <oren.givon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 245/310 [ Author: David Spinadel Email: david.spinadel@intel.com Subject: iwlwifi: mvm: Add new quota command API Date: Wed, 30 Aug 2017 16:23:14 +0300 commit 72cbb73e8ad34b2d4409156546678763e91c71b6 upstream. New quota command adds a field indicating low latency direction per quota. A TLV API bit was added to indicate the new API. Signed-off-by: David Spinadel <david.spinadel@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 246/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: mvm: remove support for Link Quality Measurements Date: Thu, 31 Aug 2017 12:57:33 +0300 commit d7b9bb69c9b3accbd199b51b28d95d08f37049cd upstream. This was never used by any product. Remove it. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 247/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: mvm: support firmware debug trigger on frame reorder timeout Date: Thu, 31 Aug 2017 11:52:30 +0300 commit 528a542aa6654a9ec03830cc75142cc94276739e upstream. The trigger that collects data when a frame is released because of the timer of the reordering buffer was not implemented for 9000 devices. Fix this. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 248/310 [ Author: Ilan Peer Email: ilan.peer@intel.com Subject: iwlwifi: Add few debug prints to the WRT dump flow Date: Mon, 4 Sep 2017 14:39:22 +0300 commit b88beaf95a6253aa8a5a6424db26ecf8a1e0ea0a upstream. This would enable to better catch timing issues with cases that WRT dump takes too much time. Signed-off-by: Ilan Peer <ilan.peer@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 249/310 [ Author: Shahar S Matityahu Email: shahar.s.matityahu@intel.com Subject: iwlwifi: pcie: dynamic Tx command queue size Date: Sun, 30 Jul 2017 17:33:48 +0300 commit dd05f9aab4426ff178b12d601e50d19d336eba30 upstream. Devices in the A000 family can use a different size for the command queue. To allow this, make the command queue size configurable and set the size for A000 devices to 32. Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 250/310 [ Author: Chaya Rachel Ivgi Email: chaya.rachel.ivgi@intel.com Subject: iwlwifi: remove redundant reading from NVM file Date: Wed, 13 Sep 2017 15:12:16 +0300 commit a2ff48af65ad661a257987fa05973351c595002e upstream. The driver reads xtal_calib from NVM file, but actually never uses it. This is only used in dvm driver. Signed-off-by: Chaya Rachel Ivgi <chaya.rachel.ivgi@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 251/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: mvm: don't send identical PHY_CTXT_CMD Date: Thu, 14 Sep 2017 15:45:44 +0300 commit 7a20bcceeddd7162801bb37d992c5a2bfd5ca3ce upstream. When we have an AP which supports HT and a single HT station is connected, we change the min_width from NL80211_CHAN_WIDTH_20_NOHT to NL80211_CHAN_WIDTH_20. This of course has no implication on the channel width but still sends a command to the firmware. Remember the last width that was sent and refrain from sending unnecessary commands to the firmware. Sending a PHY_CTXT_CMD to the firmware has a cost since it recalculates the presence on the medium and because of that it closes the transmit queues for a short while. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 252/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: fw: api: remove excess enum value documentation Date: Tue, 19 Sep 2017 12:59:03 +0200 commit aed52a88c09d486bb405373e6ad35b5f249093fb upstream. These enum values don't exist, so remove their documentation as well. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 253/310 [ Author: Mordechay Goodstein Email: mordechay.goodstein@intel.com Subject: iwlwifi: mvm: add marker cmd response struct. Date: Tue, 19 Sep 2017 15:52:13 +0000 commit 5281f5181a3ba23ff9ee0fd8e9cbd7479d58baef upstream. This helps for documentation and clarifies the code by defining the exact response struct for the marker command. Signed-off-by: Mordechay Goodstein <mordechay.goodstein@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 254/310 [ Author: Rajat Jain Email: rajatja@google.com Subject: iwlwifi: pcie: dump registers when HW becomes inaccessible Date: Thu, 17 Aug 2017 12:05:12 -0700 commit a6d24fad00d98e28841b1f39965fda530df637df upstream. We conclude the HW became inaccessible when we timeout waiting for a bit to be set in a memory mapped register (CSR_GP_CNTRL). This conclusion may not be true because the bit may not get set due to: - a firmware issue - a driver issue - a PCI bus issue - a platform issue There are a lot of such reports with really no good debug information beyond this message to help us. Add some debug information and attempt to dump the different register spaces at such a failure: * Dump some configuration space of device - this will tell us if something very basic is broken in the PCIe bus (so that configuration accesses are failing). If this works, the PCIe bus seems OK. If this does not work, it is definitely an PCIe issue. * Dump some memory mapped registers - if we're reading some sane'ish values, this will tell us that the PCIe bus is OK, but may be a firmware / driver issue. If this does not work, it may be a PCI configuration issue or a driver/firmware issue. * Dump parent and device's AER registers, will give us some straws to chew on. This is the sample output: [ 13.082651] ------------[ cut here ]------------ [ 13.086791] iwlwifi 0000:01:00.0: iwlwifi transaction failed, dumping registers [ 13.086793] iwlwifi 0000:01:00.0: iwlwifi device config registers: [ 13.086893] iwlwifi 0000:01:00.0: 00000000: 095a8086 00100406 02800059 00000000 00000004 00000000 00000000 00000000 [ 13.086895] iwlwifi 0000:01:00.0: 00000020: 00000000 00000000 00000000 50108086 00000000 000000c8 00000000 00000100 [ 13.086901] iwlwifi 0000:01:00.0: iwlwifi device memory mapped registers: [ 13.086989] iwlwifi 0000:01:00.0: 00000000: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff [ 13.086991] iwlwifi 0000:01:00.0: 00000020: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff [ 13.086999] iwlwifi 0000:01:00.0: iwlwifi device AER capability structure: [ 13.087033] iwlwifi 0000:01:00.0: 00000000: 14010001 00100000 00000000 00462031 00002000 00002000 00000014 40000001 [ 13.087034] iwlwifi 0000:01:00.0: 00000020: 0000000f d140000c 00000000 [ 13.087036] iwlwifi 0000:01:00.0: iwlwifi parent port (0000:00:1c.0) config registers: [ 13.087074] iwlwifi 0000:00:1c.0: 00000000: 9d108086 00100506 060400f1 00810010 00000000 00000000 00010100 200000f0 [ 13.087075] iwlwifi 0000:00:1c.0: 00000020: d140d140 0001fff1 00000000 00000000 00000000 00000040 00000000 0006010b [ 13.087087] ------------[ cut here ]------------ [ 13.087095] WARNING: CPU: 0 PID: 1759 at drivers/net/wireless/iwl7000/iwlwifi/pcie/trans.c:2082 iwl_trans_pcie_reclaim+0x1ee4/0x2b9a [iwlwifi]() [ 13.087096] Timeout waiting for hardware access (CSR_GP_CNTRL 0xffffffff) Signed-off-by: Rajat Jain <rajatja@google.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 255/310 [ Author: Sara Sharon Email: sara.sharon@intel.com Subject: iwlwifi: mvm: change warning to warn_once() Date: Thu, 28 Sep 2017 11:11:51 +0300 commit 417795a3f4d634bb50dbffaf2ab9d7f46750b7e8 upstream. In case there is a FW bug where the BAID value in the metadata is not properly initialized we hit the warning for every RX packet. Change it to warn once and add elaborate message. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 256/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: acpi: add common code to read from ACPI Date: Tue, 19 Sep 2017 12:35:18 +0300 commit 813df5cef3bb119940998f2e70cb9016e4b434f7 upstream. There are many places where the same process of invoking a method from ACPI is used, causing a lot of duplicate code. To improve this, introduce a new function to get an ACPI object by invoking an ACPI method that can be reused. Additionally, since this function needs to be called when we only have the trans, the opmode or the device, introduce a new debug macro that gets the device as a parameter so it can be used in the new function. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 257/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: acpi: move ACPI method definitions to acpi.h Date: Thu, 21 Sep 2017 11:02:45 +0300 commit 1c73acf58bd63a5dcc38132cd3060efbeae4a9ef upstream. Instead of defining each method where they are used and re-defining WIFI_DOMAIN in each one of them, move all the definitions to a central place and define the domain only a single time. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 258/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: acpi: move ACPI-related definitions to acpi.h Date: Thu, 21 Sep 2017 13:22:59 +0300 commit e7a3b8d87910bbd653908091242263c4e48d588f upstream. The ACPI table size definitions were spread around the different files that used them. Move them all to a common place. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 259/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: acpi: generalize iwl_mvm_sar_find_wifi_pkg() Date: Thu, 21 Sep 2017 14:30:53 +0300 commit 2fa388cfeb1af9fa94acc7fd1b250fb863fb5d91 upstream. Move this function to acpi.c, renaming it to iwl_acpi_get_wifi_pkg(), because it can also be used with other methods (i.e. SPLC and WRDD). Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 260/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: acpi: use iwl_acpi_get_wifi_pkg when reading reading SPLC Date: Thu, 21 Sep 2017 14:45:27 +0300 commit 45a5c6f68b2649ccb71721b95be22720f04b2bc3 upstream. Instead of finding the wifi package with its own code, we can reuse the new iwl_acpi_get_wifi_pkg() function when reading the default power limit from SPLC. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 261/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: acpi: make iwl_get_bios_mcc() use the common acpi functions Date: Tue, 26 Sep 2017 15:33:56 +0300 commit ed1a962db760bfb5e30b8ab284873767790119b9 upstream. The way iwl_get_bios_mcc() gets the WiFi package and checks for its integrity is almost identical to the new iwl_acpi_get_wifi_pkg() function. Instead of having duplicate code, convert it to use the common code. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 262/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: acpi: remove a couple of unnecessary ifdefs Date: Tue, 26 Sep 2017 16:13:23 +0300 commit d953cdb8ee1ba94f3e64751fe4740c82d09cffa8 upstream. Some of the #ifdef CONFIG_ACPI are not needed anymore, so they can be removed. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 263/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: acpi: move function to get mcc into acpi code Date: Tue, 26 Sep 2017 16:31:10 +0300 commit 45f65569e0d968c5fd1e8c3c6d8983b402caaa27 upstream. The iwl_get_bios_mcc() function was in the iwl-nvm-parse.c file, but it has nothing to do with the NVM. Move it to fw/acpi.c and rename it to iwl_acpi_get_mcc(). Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 264/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: fix indentation in a000 family configuration Date: Thu, 28 Sep 2017 12:59:00 +0200 commit e59a00f4884815a2887837b9d34e0ae59c41d3d3 upstream. Fix the double indentation in the configuration structs for a000 family devices. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 265/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: acpi: move code that reads SPLC to acpi Date: Thu, 28 Sep 2017 15:18:33 +0300 commit 1184611ee88f309fe4a6ca3d50bde762434e386e upstream. Move most of the set_dflt_pwr_limit() function to acpi.c and make it return the pwr_limit value instead of setting directly. Also rename it to iwl_acpi_get_pwr_limit(). Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 266/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: warn on invalid statistics size Date: Tue, 26 Sep 2017 16:37:12 +0200 commit 42fa5e0e323b2709079d81d90e9a142aa98cd3b3 upstream. Getting the wrong statistics size is a problem, having a warning will help us catch it quicker during firmware/driver development. In released firmware/driver versions, we obviously make sure this won't happen. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 267/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: remove dflt_pwr_limit from the transport Date: Thu, 28 Sep 2017 15:29:27 +0300 commit f2abcfa6c86e503b352846ace9d6ab9b02ade0ab upstream. The default power limit read from the SPLC method in ACPI doesn't have anything to do with the transport and is only used in the opmode, so we can remove it from the trans. Additionally, this value is only user when the opmode is starting, so we don't need to store it anywhere. Remove the dflt_pwr_limit element from the trans and move call to iwl_acpi_get_pwr_limit() call to mvm. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 268/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: allocate reorder buffer according to need Date: Tue, 26 Sep 2017 12:24:51 +0200 commit dfdddd92a5781bb4bbd176a5c85b7244580a8efe upstream. Now that we may have up to 256 entries per reorder buffer, and possibly up to 16 queues, we can use a LOT of memory for this (64k for each station). Allocate it according to what we need, which is of course much less for HT stations (only 16k at a max of 16 queues). However, this comes at the expense of complicating the code a bit to calculate the right entry structure to use for each frame. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 269/310 [ Author: Sara Sharon Email: sara.sharon@intel.com Subject: iwlwifi: mvm: remove duplicated fields in mvm reorder buffer Date: Mon, 2 Oct 2017 12:07:59 +0300 commit 3f1c4c58068757da94b07e0914321b443501e20f upstream. The reason station id and tid fields are both in baid data and in the reorder buffer per queue is that we couldn't access the baid_data in the reorder timer functions. Now that we do some pointer math and access it anyway, those fields can be removed. This save some space and some code. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 270/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: pass baid_data to iwl_mvm_release_frames() Date: Mon, 2 Oct 2017 13:43:27 +0200 commit 76f4a85e1ddd1876d52c226d60dad15f29f6d9d7 upstream. All callers of iwl_mvm_release_frames() already have the baid_data pointer, so we don't need to (re)calculate it inside the function. Just pass it instead. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 271/310 [ Author: Beni Lev Email: beni.lev@intel.com Subject: iwlwifi: mvm: allow reading UMAC error data from SMEM in A000 devices Date: Thu, 28 Sep 2017 12:10:55 +0300 commit 0e1be40a45d767a07c1fb50ebfba273368f57484 upstream. Currently, UMAC error data reading is restricted to DCCM. A000 NICs use SMEM for this data. Signed-off-by: Beni Lev <beni.lev@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 272/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: mvm: move umac_error_event_table validity check to where it's set Date: Mon, 2 Oct 2017 15:44:20 +0300 commit fb5b28469d2a5be83aae0c754a9a69bb37fec6ff upstream. There's no point in checking the validity of the umac_error_event_table pointer every time we generate a dump. It's cleaner to do so when we read the value, namely when we receive the alive data. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 273/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: define minimum valid address for umac_error_event_table in cfg Date: Mon, 2 Oct 2017 16:12:23 +0300 commit 3485e76e73495382f953d3a6dd45c00c7c404e4a upstream. We now have two different minimum valid values for umac_error_event_table. To avoid hardcoding the minimum value in the driver, add a value to cfg where it can be read from. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 274/310 [ Author: Liad Kaufman Email: liad.kaufman@intel.com Subject: iwlwifi: mvm: add missing lq_color Date: Mon, 9 Oct 2017 11:01:33 +0300 commit 41fd2fec56db2564f02532ed7244e1f69193b4ad upstream. In the compressed BA notif, the driver didn't parse out the LQ color, so statistics for the rates tried were always thrown out. Add it so it gets correctly used. While at it, fix the name of the relevant field in the struct. Fixes: c46e7724bfe9 ("iwlwifi: mvm: support new BA notification response") Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 275/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: pcie: sort IDs for the 9000 series for easier comparisons Date: Thu, 12 Oct 2017 11:20:50 +0300 commit 1105a337375258515ed09b92a83fd7bfd6775958 upstream. It's hard to find values that are missing in the list, so sorting the values and comparing them makes it much easier. To simplify this task, sort the devices in the list. Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 276/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: pcie: remove set but not used variable tcph Date: Fri, 13 Oct 2017 11:54:03 +0200 commit 3c798a45318e098e9937b0fee1e0cf986174fbbe upstream. This variable is never used, so remove the code to set it. After this, the variable 'iph' also has the same fate. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 277/310 [ Author: Sara Sharon Email: sara.sharon@intel.com Subject: iwlwifi: mvm: use RS macro instead of duplicating the code Date: Sun, 15 Oct 2017 13:52:54 +0300 commit b67ce55dbd964f1e80652007bfb83d09c393300d upstream. There is a macro for converting TX response rate to a rate scale value, use it. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 278/310 [ Author: Sara Sharon Email: sara.sharon@intel.com Subject: iwlwifi: mvm: cleanup references to aggregation count limit Date: Mon, 16 Oct 2017 09:45:10 +0300 commit 0ec9257b0a2ceb4eeec552684b390b06705bbad7 upstream. Currently the code is mixing defines and is inconsistent. When enabling a queue, we usually configure the scheduler with IWL_FRAME_LIMIT - 64. When sending to firmware the rate scaling, we limit aggregation to LINK_QUAL_AGG_FRAME_LIMIT_DEF - 63, due to a scheduler bug. Given that, clean up the following: - Fix a stray queue enablement with LINK_QUAL_AGG_FRAME_LIMIT_DEF. - Change the comparison that tests if queue needs to be reconfigured to be compared directly to how it was configured. This also saves the redundant round down of the buffer size just for the sake of comparing it, making the code more readable. - Better document gen2 logic Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 279/310 [ Author: Liad Kaufman Email: liad.kaufman@intel.com Subject: iwlwifi: mvm: reset seq num after restart Date: Tue, 17 Oct 2017 16:26:00 +0300 commit 5d39051a328c0508b0fb0247227197059edd2da9 upstream. After a FW reset on A000 NICs, the driver doesn't set the seq number when re-allocating the queues. This in turn leads to a mismatch between the seq number the driver thinks each frame has, and the actual seq num given by the HW. This especially causes issues with aggregations, since the driver could be waiting to start an aggregation and queue traffic from the mac80211 until then, when actually it shouldn't be waiting. Fixes: 310181ec34e2 ("iwlwifi: move to TVQM mode") Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 280/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: mvm: rs: remove the ANT C from the toogle antenna logic Date: Wed, 18 Oct 2017 13:09:38 +0300 commit 82d2b9a62699f3d6a61323774c41cebe920e5dc5 upstream. We don't plan to have products with 3 antennas in the near future. All the rest of the code follows the same assumption as well. Remove the support for antenna C from rs_toggle_ant. When trying to toggle from ANT_B, this avoids to go through ANT_C, discover that it doesn't exist and continue to ANT_A. In MIMO, this avoids to do ANT_AB -> ANT_BC -> ANT_AC and back to ANT_AB. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 281/310 [ Author: Sara Sharon Email: sara.sharon@intel.com Subject: iwlwifi: mvm: improve latency when there is a reorder timeout Date: Tue, 17 Oct 2017 12:06:52 +0300 commit 14a1f85bdc27283898358af09ee506d7f3344d3c upstream. When there is a reorder timeout, we may get to a situation where we have the timeout latency for all the next 64 frames. This happens since NSSN is behind for a while, and the driver won't release the frames, since it is not allowed by NSSN. As a result the frame is stored in the reorder buffer although there is no hole, and released 100 ms later. Add a direct comparison to the reorder buffer head, and release immediately if possible. For example: Frame 0 is missed. We receive frame 1, and store it in the buffer. After 100 ms, frame 1 is released and reorder buffer head is 2. We then receive frame 2, with NSSN 0, and store it instead of releasing it. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 282/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: remove dead code for internal devices only Date: Tue, 17 Oct 2017 10:30:24 +0300 commit fb7eba711d2169fbd40bc487c191f360332e8b22 upstream. We had a bunch of code that was relevant for internal devices only. Those devices are now being depreceated. Kill all the now unneeded code. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 283/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: remove host assisted paging Date: Tue, 17 Oct 2017 14:11:16 +0300 commit 4ae827ffc173dc969c67e4f8b35d17a44f76ed40 upstream. This was used for internal devices that are now deprecated. All the currently existing devices can do paging without any help from the host. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 284/310 [ Author: Kirtika Ruchandani Email: kirtika@chromium.org Subject: iwlwifi: Add more call-sites for pcie reg dumper Date: Sun, 8 Oct 2017 14:20:42 -0700 commit fb12777ab59b4c8319c931970e28a5406d1aa702 upstream. Commit a6d24fad00d9 ("iwlwifi: pcie: dump registers when HW becomes inaccessible") added a function to dump pcie config registers and memory mapped registers on a failure. It is currently only accessible within trans.c. Add it to struct iwl_trans_ops, so that failure cases in other files can call it. While there, add a call to this function from iwl_pcie_load_firmware_chunk in pcie/tx.c, since this is a common failure case seen on some platforms. Signed-off-by: Kirtika Ruchandani <kirtika@chromium.org> [modified the commit message slightly] Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 285/310 [ Author: Sara Sharon Email: sara.sharon@intel.com Subject: iwlwifi: fix multi queue notification for a000 devices Date: Thu, 19 Oct 2017 08:46:50 +0300 commit cb8550e15bd1c90ebce9444769a856b799340320 upstream. Currently we return early from sync_rx_queues for a000 devices. This may cause, in case of a non-empty reorder buffer, a warning later on since the RX queue isn't getting the notification to empty it. A better approach would be to send the notification for the default queue only. Do this hard coded for now, until we will have the API to enable multi queue for a000 devices. Fixes: bc0294696456 ("iwlwifi: mvm: disable RX queue notification for a000 devices") Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 286/310 [ Author: Sara Sharon Email: sara.sharon@intel.com Subject: iwlwifi: mvm: refactor iwl_mvm_flush_no_vif Date: Tue, 12 Sep 2017 11:06:24 +0300 commit 435d0827fe1f3eb7c47f3090c51d55f9dc729d94 upstream. This function is very indented and hard to read. Refactor it. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 287/310 [ Author: Sara Sharon Email: sara.sharon@intel.com Subject: iwlwifi: mvm: add missing implementation of flush for a000 devices Date: Tue, 12 Sep 2017 10:52:53 +0300 commit 06195639c66d80d21146d0e982f7fc94406ed331 upstream. In the mac flush flow, we should flush all existing queues. Since FW API for a000 devices is flush per RA-TID, simply flush all stations with all tids. From FW perspective, asking to flush a TID that doesn't have a queue is valid, so we can just set all bits in the TID mask. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 288/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: mvm: hold mutex when flushing in iwl_mvm_flush_no_vif() Date: Tue, 24 Oct 2017 22:04:15 +0300 commit 309c4848c0481f71f4cb20290e6f5bded1e54131 upstream. The iwl_mvm_flush_tx_path() function sends a synchronous command to the firmware. When doing that, we must hold the mutex. The iwl_mvm_flush_no_vif() function was mistakenly not holding the mutex. Fix it. Fixes: 6110d9e5bdd1 ("iwlwifi: mvm: Flush non STA TX queues") Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 289/310 [ Author: Kees Cook Email: keescook@chromium.org Subject: iwlwifi: mvm: Convert timers to use timer_setup() Date: Tue, 24 Oct 2017 02:29:37 -0700 commit 8cef5344b5f24883c97180c15e17b35d46fc4f37 upstream. In preparation for unconditionally passing the struct timer_list pointer to all timer callbacks, switch to using the new timer_setup() and from_timer() to pass the timer pointer explicitly. The RCU lifetime on baid_data is unclear, so this adds a direct copy of the rcu_ptr passed to the original callback. It may be possible to improve this to just use baid_data->mvm->baid_map[baid_data->baid] instead. Cc: Johannes Berg <johannes.berg@intel.com> Cc: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Cc: Luca Coelho <luciano.coelho@intel.com> Cc: Intel Linux Wireless <linuxwifi@intel.com> Cc: Kalle Valo <kvalo@codeaurora.org> Cc: Sara Sharon <sara.sharon@intel.com> Cc: linux-wireless@vger.kernel.org Cc: netdev@vger.kernel.org Signed-off-by: Kees Cook <keescook@chromium.org> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 290/310 [ Author: Shahar S Matityahu Email: shahar.s.matityahu@intel.com Subject: iwlwifi: drop RX frames during hardware restart Date: Wed, 25 Oct 2017 11:40:24 +0300 commit 364a1ab91df160f96da5f8d9f778cfbafd5f6d81 upstream. In case of a hardware restart the BA session data in HW is lost so the reorder buffer simply passes the frames to mac80211 as is as there is no NSSN set. Instead, we will drop these frames before they reach the reorder buffer. mac80211 drops such frames anyway, but we shouldn't rely on that. In addition it saves some processing time Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 291/310 [ Author: Ihab Zhaika Email: ihab.zhaika@intel.com Subject: iwlwifi: add new cards for 8260 series Date: Tue, 24 Oct 2017 17:36:43 +0300 commit d669fc2d42a43ee0abcf2396df6e9c5a124aa984 upstream. add three new PCI ID'S for 8260 series Signed-off-by: Ihab Zhaika <ihab.zhaika@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 292/310 [ Author: Ihab Zhaika Email: ihab.zhaika@intel.com Subject: iwlwifi: add new cards for 8265 series Date: Tue, 24 Oct 2017 17:38:12 +0300 commit 7cddbef445631109bd530ce7cdacaa04ff0a62d1 upstream. add two new PCI ID'S for 8265 series Signed-off-by: Ihab Zhaika <ihab.zhaika@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 293/310 [ Author: Ihab Zhaika Email: ihab.zhaika@intel.com Subject: iwlwifi: add new cards for a000 series Date: Tue, 24 Oct 2017 17:04:24 +0300 commit 57b36f7fcb39c5eae8c1f463699f747af69643ba upstream. add four new PCI ID'S for a000 series Signed-off-by: Ihab Zhaika <ihab.zhaika@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 294/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: mvm: support version 7 of the SCAN_REQ_UMAC FW command Date: Fri, 10 Nov 2017 14:03:36 +0200 commit dac4df1c5f2c34903f61b1bc4fc722e31b4199e7 upstream. Newer firmware versions (such as iwlwifi-8000C-34.ucode) have introduced an API change in the SCAN_REQ_UMAC command that is not backwards compatible. The driver needs to detect and use the new API format when the firmware reports it, otherwise the scan command will not work properly, causing a command timeout. Fix this by adding a TLV that tells the driver that the new API is in use and use the correct structures for it. This fixes https://bugzilla.kernel.org/show_bug.cgi?id=197591 Fixes: d7a5b3e9e42e ("iwlwifi: mvm: bump API to 34 for 8000 and up") Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 295/310 [ Author: Luca Coelho Email: luciano.coelho@intel.com Subject: iwlwifi: fix PCI IDs and configuration mapping for 9000 series Date: Wed, 15 Nov 2017 18:28:04 +0200 commit dbc89253a7e15f8f031fb1eeb956de91204655e3 upstream. A lot of PCI IDs were missing and there were some problems with the configuration and firmware selection for devices on the 9000 series. Fix the firmware selection by adding files for the B-steps; add configuration for some integrated devices; and add a bunch of PCI IDs (mostly for integrated devices) that were missing from the driver's list. Without this patch, a lot of devices will not be recognized or will try to load the wrong firmware file. Cc: stable@vger.kernel.org # 4.13 Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 296/310 [ Author: Kees Cook Email: keescook@chromium.org Subject: timer: Prepare to change timer callback argument type Date: Thu, 28 Sep 2017 06:38:17 -0700 commit 686fef928bba6be13cabe639f154af7d72b63120 upstream. Modern kernel callback systems pass the structure associated with a given callback to the callback function. The timer callback remains one of the legacy cases where an arbitrary unsigned long argument continues to be passed as the callback argument. This has several problems: - This bloats the timer_list structure with a normally redundant .data field. - No type checking is being performed, forcing callbacks to do explicit type casts of the unsigned long argument into the object that was passed, rather than using container_of(), as done in most of the other callback infrastructure. - Neighboring buffer overflows can overwrite both the .function and the .data field, providing attackers with a way to elevate from a buffer overflow into a simplistic ROP-like mechanism that allows calling arbitrary functions with a controlled first argument. - For future Control Flow Integrity work, this creates a unique function prototype for timer callbacks, instead of allowing them to continue to be clustered with other void functions that take a single unsigned long argument. This adds a new timer initialization API, which will ultimately replace the existing setup_timer(), setup_{deferrable,pinned,etc}_timer() family, named timer_setup() (to mirror hrtimer_setup(), making instances of its use much easier to grep for). In order to support the migration of existing timers into the new callback arguments, timer_setup() casts its arguments to the existing legacy types, and explicitly passes the timer pointer as the legacy data argument. Once all setup_*timer() callers have been replaced with timer_setup(), the casts can be removed, and the data argument can be dropped with the timer expiration code changed to just pass the timer to the callback directly. Since the regular pattern of using container_of() during local variable declaration repeats the need for the variable type declaration to be included, this adds a helper modeled after other from_*() helpers that wrap container_of(), named from_timer(). This helper uses typeof(*variable), removing the type redundancy and minimizing the need for line wraps in forthcoming conversions from "unsigned data long" to "struct timer_list *" in the timer callbacks: -void callback(unsigned long data) +void callback(struct timer_list *t) { - struct some_data_structure *local = (struct some_data_structure *)data; + struct some_data_structure *local = from_timer(local, t, timer); Finally, in order to support the handful of timer users that perform open-coded assignments of the .function (and .data) fields, provide cast macros (TIMER_FUNC_TYPE and TIMER_DATA_TYPE) that can be used temporarily. Once conversion has been completed, these can be globally trivially removed. Signed-off-by: Kees Cook <keescook@chromium.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lkml.kernel.org/r/20170928133817.GA113410@beast Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 297/310 [ Author: Naftali Goldstein Email: naftali.goldstein@intel.com Subject: mac80211: add api to start ba session timer expired flow Date: Tue, 11 Jul 2017 10:07:25 +0300 commit 04c2cf34362f133be09878bd752f8b014318b59a upstream. Some drivers handle rx buffer reordering internally (and by extension handle also the rx ba session timer internally), but do not ofload the addba/delba negotiation. Add an api for these drivers to properly tear-down the ba session, including sending a delba. Signed-off-by: Naftali Goldstein <naftali.goldstein@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 298/310 [ Author: Thomas Backlund Email: tmb@mageia.org Subject: iwlwifi: fix firmware names for 9000 and A000 series hw Date: Tue, 14 Nov 2017 12:37:51 +0200 commit c2c48ddfc8b03b9ecb51d2832b586497b37531bc upstream. iwlwifi 9000 and a0000 series hw contains an extra dash in firmware file name as seeen in modinfo output for kernel 4.14: firmware: iwlwifi-9260-th-b0-jf-b0--34.ucode firmware: iwlwifi-9260-th-a0-jf-a0--34.ucode firmware: iwlwifi-9000-pu-a0-jf-b0--34.ucode firmware: iwlwifi-9000-pu-a0-jf-a0--34.ucode firmware: iwlwifi-QuQnj-a0-hr-a0--34.ucode firmware: iwlwifi-QuQnj-a0-jf-b0--34.ucode firmware: iwlwifi-QuQnj-f0-hr-a0--34.ucode firmware: iwlwifi-Qu-a0-jf-b0--34.ucode firmware: iwlwifi-Qu-a0-hr-a0--34.ucode Fix that by dropping the extra adding of '"-"'. Signed-off-by: Thomas Backlund <tmb@mageia.org> Cc: stable@vger.kernel.org # 4.13 Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 299/310 [ Author: Shaul Triebitz Email: shaul.triebitz@intel.com Subject: iwlwifi: mvm: set correct chains in Rx status Date: Mon, 30 Oct 2017 17:38:43 +0200 commit c4e45c84270798b1d51ede9a8c6810378ccfe162 upstream. ieee80211_rx_status::chains was always set to zero. That caused rate scaling to always start with the lowest rate possible (rs_get_initial_rate). Set it correctly according to the MPDU response. Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 300/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: mvm: don't use transmit queue hang detection when it is not possible Date: Mon, 13 Nov 2017 09:50:47 +0200 commit 0b9832b712d6767d6c7b01965fd788d1ca84fc92 upstream. When we act as an AP, new firmware versions handle internally the power saving clients and the driver doesn't know that the peers went to sleep. It is, hence, possible that a peer goes to sleep for a long time and stop pulling frames. This will cause its transmit queue to hang which is a condition that triggers the recovery flow in the driver. While this client is certainly buggy (it should have pulled the frame based on the TIM IE in the beacon), we can't blow up because of a buggy client. Change the current implementation to not enable the transmit queue hang detection on queues that serve peers when we act as an AP / GO. We can still enable this mechanism using the debug configuration which can come in handy when we want to debug why the client doesn't wake up. Cc: stable@vger.kernel.org # v4.13 Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 301/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: mvm: fix the TX queue hang timeout for MONITOR vif type Date: Wed, 15 Nov 2017 14:12:30 +0200 commit d1b275ffec459c5ae12b5c7086c84175696e5a9f upstream. The MONITOR type is missing in the interface type switch. Add it. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 302/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: mvm: fix packet injection Date: Sun, 19 Nov 2017 10:35:14 +0200 commit b13f43a48571f0cd0fda271b5046b65f1f268db5 upstream. We need to have a station and a queue for the monitor interface to be able to inject traffic. We used to have this traffic routed to the auxiliary queue, but this queue isn't scheduled for the station we had linked to the monitor vif. Allocate a new queue, link it to the monitor vif's station and make that queue use the BE fifo. This fixes https://bugzilla.kernel.org/show_bug.cgi?id=196715 Cc: stable@vger.kernel.org Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 303/310 [ Author: Sara Sharon Email: sara.sharon@intel.com Subject: iwlwifi: pcie: fix erroneous "Read failed message" Date: Mon, 20 Nov 2017 11:37:18 +0200 commit f3402d6d8eb084f6c2563dee1a09385b7c0ea2d5 upstream. Current pci dumping code code is always falling to the error path, resulting with a constant "Read failed" message, also for the successful reads. Fixes: a5c932e41fdd ("iwlwifi: pcie: dump registers when HW becomes inaccessible") Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 304/310 [ Author: Sara Sharon Email: sara.sharon@intel.com Subject: iwlwifi: fix access to prph when transport is stopped Date: Mon, 20 Nov 2017 13:25:05 +0200 commit 0232d2cd7aa8e1b810fe84fb4059a0bd1eabe2ba upstream. When getting HW rfkill we get stop_device being called from two paths. One path is the IRQ calling stop device, and updating op mode and stack. As a result, cfg80211 is running rfkill sync work that shuts down all devices (second path). In the second path, we eventually get to iwl_mvm_stop_device which calls iwl_fw_dump_conf_clear->iwl_fw_dbg_stop_recording, that access periphery registers. The device may be stopped at this point from the first path, which will result with a failure to access those registers. Simply checking for the trans status is insufficient, since the race will still exist, only minimized. Instead, move the stop from iwl_fw_dump_conf_clear (which is getting called only from stop path) to the transport stop device function, where the access is always safe. This has the added value, of actually stopping dbgc before stopping device even when the stop is initiated from the transport. Fixes: 1efc3843a4ee ("iwlwifi: stop dbgc recording before stopping DMA") Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 305/310 [ Author: Ihab Zhaika Email: ihab.zhaika@intel.com Subject: iwlwifi: add new cards for 9260 and 22000 series Date: Thu, 16 Nov 2017 09:29:19 +0200 commit 567deca8e72df3ceb6c07c63f8541a4928f64d3b upstream. add 1 PCI ID for 9260 series and 1 for 22000 series. Cc: stable@vger.kernel.org Signed-off-by: Ihab Zhaika <ihab.zhaika@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 306/310 [ Author: Johannes Berg Email: johannes.berg@intel.com Subject: iwlwifi: mvm: flush queue before deleting ROC Date: Mon, 13 Nov 2017 17:26:09 +0100 commit 6c2d49fdc5d947c5fe89935bd52e69f10000f4cb upstream. Before deleting a time event (remain-on-channel instance), flush the queue so that frames cannot get stuck on it. We already flush the AUX STA queues, but a separate station is used for the P2P Device queue. Cc: stable@vger.kernel.org Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 307/310 [ Author: David Spinadel Email: david.spinadel@intel.com Subject: iwlwifi: mvm: enable RX offloading with TKIP and WEP Date: Mon, 21 Nov 2016 17:01:25 +0200 commit 9d0fc5a50a0548f8e5d61243e5e5f26d5c405aef upstream. Set the flag that indicates that ICV was stripped on if this option was enabled in the HW. Cc: stable@vger.kernel.org # 4.13+ [this is needed for the 9000-series HW to work properly] Signed-off-by: David Spinadel <david.spinadel@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 308/310 [ Author: Sara Sharon Email: sara.sharon@intel.com Subject: iwlwifi: mvm: mark MIC stripped MPDUs Date: Mon, 8 Feb 2016 23:30:47 +0200 commit bf19037074e770aad74b3b90f37b8b98db3f3748 upstream. When RADA is active, the hardware decrypts the packets and strips off the MIC as it is useless after decryption. Indicate that to mac80211. Cc: stable@vger.kernel.org # 4.13+ [this is needed for the 9000-series HW to work properly] Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 309/310 [ Author: Emmanuel Grumbach Email: emmanuel.grumbach@intel.com Subject: iwlwifi: pcie: fix DMA memory mapping / unmapping Date: Thu, 4 Jan 2018 09:19:13 +0200 commit 943309d4aad6732b905f3f500e6e17e33c211494 upstream. 22000 devices (previously referenced as A000) can support short transmit queues. This means that we have less DMA descriptors (TFD) for those shorter queues. Previous devices must still have 256 TFDs for each queue even if those 256 TFDs point to fewer buffers. When I introduced support for the short queues for 22000 I broke older devices by assuming that they can also have less TFDs in their queues. This led to several problems: 1) the payload of the commands weren't unmapped properly which caused the SWIOTLB to complain at some point. 2) the hardware could get confused and we get hardware crashes. The corresponding bugzilla entries are: https://bugzilla.kernel.org/show_bug.cgi?id=198201 https://bugzilla.kernel.org/show_bug.cgi?id=198265 Cc: stable@vger.kernel.org # 4.14+ Fixes: 4ecab5616023 ("iwlwifi: pcie: support short Tx queues for A000 device family") Reviewed-by: Sharon, Sara <sara.sharon@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] 310/310 [ Author: Tedd Ho-Jeong An Email: tedd.an@intel.com Subject: Bluetooth: Add support for Intel Bluetooth device 9460/9560 [8087:0aaa] Date: Mon, 1 May 2017 13:35:12 -0700 commit 86a6129ae209156baef04f668a4fd13f2c9590a4 upstream. This patch adds support for Intel Bluetooth device 9460/9560 also known as Jefferson Peak (JfP). The firmware downloading mechanism is same as previous generation. So include the new USB product identifier and whitelist the hardware variant. T: Bus=01 Lev=01 Prnt=01 Port=09 Cnt=04 Dev#= 5 Spd=12 MxCh= 0 D: Ver= 2.01 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1 P: Vendor=8087 ProdID=0aaa Rev= 0.02 C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl=1ms E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=03(O) Atr=01(Isoc) MxPS= 0 Ivl=1ms E: Ad=83(I) Atr=01(Isoc) MxPS= 0 Ivl=1ms I: If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=03(O) Atr=01(Isoc) MxPS= 9 Ivl=1ms E: Ad=83(I) Atr=01(Isoc) MxPS= 9 Ivl=1ms I: If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=03(O) Atr=01(Isoc) MxPS= 17 Ivl=1ms E: Ad=83(I) Atr=01(Isoc) MxPS= 17 Ivl=1ms I: If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=03(O) Atr=01(Isoc) MxPS= 25 Ivl=1ms E: Ad=83(I) Atr=01(Isoc) MxPS= 25 Ivl=1ms I: If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=03(O) Atr=01(Isoc) MxPS= 33 Ivl=1ms E: Ad=83(I) Atr=01(Isoc) MxPS= 33 Ivl=1ms I: If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=03(O) Atr=01(Isoc) MxPS= 49 Ivl=1ms E: Ad=83(I) Atr=01(Isoc) MxPS= 49 Ivl=1ms I: If#= 1 Alt= 6 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb E: Ad=03(O) Atr=01(Isoc) MxPS= 63 Ivl=1ms E: Ad=83(I) Atr=01(Isoc) MxPS= 63 Ivl=1ms Bootloader version: < HCI Command: Intel Read Version (0x3f|0x0005) plen 0 > HCI Event: Command Complete (0x0e) plen 13 Intel Read Version (0x3f|0x0005) ncmd 32 Status: Success (0x00) Hardware platform: 0x37 Hardware variant: 0x11 Hardware revision: 0.0 Firmware variant: 0x06 Firmware revision: 0.1 Firmware build: 42-52.2015 Firmware patch: 0 Signed-off-by: Tedd Ho-Jeong An <tedd.an@intel.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: Liwei Song <liwei.song@windriver.com> ] Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-01-23bsp/axxiaarm*: Cleanup to avoid kernel_configcheck warningsDaniel Dragomir
Signed-off-by: Daniel Dragomir <daniel.dragomir@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-01-23bsp/axxiaarm64: Add initial fragmentsDaniel Dragomir
Fragments were ported from yocto-4.9 branch. Signed-off-by: Daniel Dragomir <daniel.dragomir@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-01-23bsp/axxiaarm: Add initial fragmentsDaniel Dragomir
Fragments were ported from yocto-4.9 branch. Signed-off-by: Daniel Dragomir <daniel.dragomir@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-01-09kvm : enable VHOST of host for qemu running guestHongzhi.Song
Signed-off-by: Hongzhi.Song <hongzhi.song@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-12-20common-pc: enable X2APIC universallyBruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-12-20common-pc-64: enable x2apic universallyBruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-12-18rt: import patch refresh for move from 4.12.14 --> 4.12.16Paul Gortmaker
From git://git.kernel.org/pub/scm/linux/kernel/git/paulg/4.12-rt-patches.git One patch gets deleted as it is now present in the upstream feed. Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
2017-12-18kver: bump to v4.12.18Bruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-12-08mti-malta32: enable CONFIG_HIGHMEM for qemumips to support up to 2GiB RAMHongxu Jia
OE uses qemumips to simulate a Malta board by default. As upstream qemu introduced: https://git.qemu.org/?p=qemu.git;a=commit;h=94c2b6aff43cdfcfdfb552773a6b6b973a72ef0b The Malta board can support up to 2GiB of RAM which should be able to boot a Linux kernel built with CONFIG_HIGHMEM enabled. For mips, the `High Memory Support' only makes sense for the 32-bit kernel. Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-12-07features/i915/i915.cfg: compile i915 as a moduleLiwei Song
Set i915 as a module to trigger the firmware load at the same time the module is loaded. This can avoid a timing problem between the driver starting and it triggering a firmware load, after compile it as module i915 driver will start after the rootfs is ready, then the firmware store in /lib/firmware/ can be load successful by i915 driver. Signed-off-by: Liwei Song <liwei.song@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-12-07common-pc*.scc: Add igb to common-pc driversSaul Wold
The IGB driver is showing up on some general hardware (like MinnowBoard) which is one of the Yocto Project Reference Platforms. Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-12-04vrf: Add featureHe Zhe
Signed-off-by: He Zhe <zhe.he@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-11-29kver: bump to v4.12.16Bruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-11-16features/dca/dca.cfg: fix CONFIG_IXGBE_DCA can not enble if build ixgbe in ↵Liwei Song
kernel if we set CONFIG_IXGBE=y to build ixgbe in kernel, CONFIG_IXGBE_DCA can not be enabled since dependcy: IXGBE_DCA depend (IXGBE [=y]!=y || DCA [=y]!=m) although we set CONFIG_IXGBE_DCA=y in ixgbe.cfg; This will led a kernel config check warning as below: Requested value: CONFIG_IXGBE_DCA=y Actual value: To make CONFIG_IXGBE_DCA work, set CONFIG_DCA=y and CONFIG_INTEL_IOATDMA=y this also can aviod the check warning. Signed-off-by: Liwei Song <liwei.song@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-11-16features/iommu/iommu.cfg: remove CONFIG_INTEL_IOMMU_DEFAULT_ON=nLiwei Song
There is no need pass "n" to CONFIG_INTEL_IOMMU_DEFAULT_ON, change it to "# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set" to keep consistent with teh final .config This can avoid yocto config check warning when build kernel: Requested value: CONFIG_INTEL_IOMMU_DEFAULT_ON=n Actual value: # CONFIG_INTEL_IOMMU_DEFAULT_ON is not set Signed-off-by: Liwei Song <liwei.song@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-11-16features/tpm/tpm.cfg: set CONFIG_HW_RANDOM_TPM as moduleLiwei Song
CONFIG_HW_RANDOM was set to "m" by default in Kconfig, this make CONFIG_HW_RANDOM_TPM only can be build as module, So change CONFIG_HW_RANDOM_TPM=y to CONFIG_HW_RANDOM_TPM=m to aviod kernel configcheck warning: Requested value: CONFIG_HW_RANDOM_TPM=y Actual value: CONFIG_HW_RANDOM_TPM=m Signed-off-by: Liwei Song <liwei.song@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-11-02cgroups.cfg: Add missing controllersJason Wessel
The the new controllers were added several kernels back and are required for additional functionality. These are applicable to the 4.9 kernel and newer. Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-11-01features/mmc/mmc-realtek: enable Realtek PCI-E card reader supportLiwei Song
Enable the following kernel option to support Realtek PCI-E card reader on NUC7i7BNH/NCU7I5BNH: CONFIG_MFD_RTSX_PCI=m CONFIG_MMC_REALTEK_PCI=m Signed-off-by: Liwei Song <liwei.song@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>