platform/kernel/linux-rpi.git
4 years agoMerge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next...
David S. Miller [Sat, 7 Sep 2019 13:24:50 +0000 (15:24 +0200)]
Merge branch '100GbE' of git://git./linux/kernel/git/jkirsher/next-queue

Jeff Kirsher says:

====================
100GbE Intel Wired LAN Driver Updates 2019-09-05

This series contains updates to ice driver.

Brett fixes the setting of num_q_vectors by using the maximum number
between the allocated transmit and receive queues.

Anirudh simplifies the code to use a helper function to return the main
VSI, which is the first element in the pf->vsi array.  Adds a pointer
check to prevent a NULL pointer dereference.  Adds a check to ensure we
do not initialize DCB on devices that are not DCB capable.  Does some
housekeeping on the code to remove unnecessary indirection and reduce
the PF structure by removing elements that are not needed since the
values they were storing can be readily gotten from
ice_get_avail_*_count()'s.  Updates the printed strings to make it
easier to search the logs for driver capabilities.

Jesse cleans up unnecessary function arguments.  Updated the code to use
prefetch() to add some efficiency to the driver to avoid a cache miss.
Did some housekeeping on the code to remove the configurable transmit
work limit via ethtool which ended up creating performance overhead.
Made additional performance enhancements by updating the driver to start
out with a reasonable number of descriptors by changing the default to
2048.

Mitch fixes the reset logic for VFs by clearing VF_MBX_ARQLEN register
when the source of the reset is not PFR.

Lukasz updates the driver to include a similar fix for the i40e driver
by reporting link down for VF's when the PF queues are not enabled.

Akeem updates the driver to report the VF link status once we get VF
resources so that we can reflect the link status similarly to how the PF
reports link speed.

Ashish updates the transmit context structure based on recent changes to
the hardware specification.

Dave updates the DCB logic to allow a delayed registration for MIB
change events so that the driver is not accepting events before it is
ready for them.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
4 years agoMerge tag 'wireless-drivers-next-for-davem-2019-09-07' of git://git.kernel.org/pub...
David S. Miller [Sat, 7 Sep 2019 08:06:30 +0000 (10:06 +0200)]
Merge tag 'wireless-drivers-next-for-davem-2019-09-07' of git://git./linux/kernel/git/kvalo/wireless-drivers-next

Kalle Valo says:

====================
wireless-drivers-next patches for 5.4

Second set of patches for 5.4. Lots of changes for iwlwifi and mt76,
but also smaller changes to other drivers.

Major changes:

iwlwifi

* remove broken and unused runtime power management mode for PCIe
  devices, removes IWLWIFI_PCIE_RTPM Kconfig option as well

* support new ACPI value for per-platform antenna gain

* support for single antenna diversity

* support for new WoWLAN FW API

brcmfmac

* add reset debugfs file for testing firmware restart

mt76

* DFS pattern detector for mt7615 (DFS channels not enabled yet)

* Channel Switch Announcement (CSA) support for mt7615

* new device support for mt76x0

* support for more ciphers in mt7615

* smart carrier sense on mt7615

* survey support on mt7615

* multiple interfaces on mt76x02u

rtw88

* enable MSI interrupt
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
4 years agoMerge tag 'iwlwifi-next-for-kalle-2019-09-06' of git://git.kernel.org/pub/scm/linux...
Kalle Valo [Sat, 7 Sep 2019 07:21:07 +0000 (10:21 +0300)]
Merge tag 'iwlwifi-next-for-kalle-2019-09-06' of git://git./linux/kernel/git/iwlwifi/iwlwifi-next

Patches intended for v5.4

* Remove (broken) d0i3 support;
* Debug infrastructure work continues;
* Bump support FW API version to 50;
* Fix for the SN value in certain suspend/resume situations;
* Some work on new FW scan APIs;
* Work on LTR FW APIs;
* New FW channel-switch support;
* Support new ACPI value for per-platform antenna gain;
* Support for single antenna diversity;
* Support for new WoWLAN FW API;
* Initial refactoring of the device selection code;
* A bunch of clean-ups;
* Other small fixes and improvements;

4 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next
David S. Miller [Fri, 6 Sep 2019 14:49:17 +0000 (16:49 +0200)]
Merge git://git./linux/kernel/git/bpf/bpf-next

Daniel Borkmann says:

====================
The following pull-request contains BPF updates for your *net-next* tree.

The main changes are:

1) Add the ability to use unaligned chunks in the AF_XDP umem. By
   relaxing where the chunks can be placed, it allows to use an
   arbitrary buffer size and place whenever there is a free
   address in the umem. Helps more seamless DPDK AF_XDP driver
   integration. Support for i40e, ixgbe and mlx5e, from Kevin and
   Maxim.

2) Addition of a wakeup flag for AF_XDP tx and fill rings so the
   application can wake up the kernel for rx/tx processing which
   avoids busy-spinning of the latter, useful when app and driver
   is located on the same core. Support for i40e, ixgbe and mlx5e,
   from Magnus and Maxim.

3) bpftool fixes for printf()-like functions so compiler can actually
   enforce checks, bpftool build system improvements for custom output
   directories, and addition of 'bpftool map freeze' command, from Quentin.

4) Support attaching/detaching XDP programs from 'bpftool net' command,
   from Daniel.

5) Automatic xskmap cleanup when AF_XDP socket is released, and several
   barrier/{read,write}_once fixes in AF_XDP code, from Björn.

6) Relicense of bpf_helpers.h/bpf_endian.h for future libbpf
   inclusion as well as libbpf versioning improvements, from Andrii.

7) Several new BPF kselftests for verifier precision tracking, from Alexei.

8) Several BPF kselftest fixes wrt endianess to run on s390x, from Ilya.

9) And more BPF kselftest improvements all over the place, from Stanislav.

10) Add simple BPF map op cache for nfp driver to batch dumps, from Jakub.

11) AF_XDP socket umem mapping improvements for 32bit archs, from Ivan.

12) Add BPF-to-BPF call and BTF line info support for s390x JIT, from Yauheni.

13) Small optimization in arm64 JIT to spare 1 insns for BPF_MOD, from Jerin.

14) Fix an error check in bpf_tcp_gen_syncookie() helper, from Petar.

15) Various minor fixes and cleanups, from Nathan, Masahiro, Masanari,
    Peter, Wei, Yue.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
4 years agolan743x: remove redundant assignment to variable rx_process_result
Colin Ian King [Thu, 5 Sep 2019 14:01:35 +0000 (15:01 +0100)]
lan743x: remove redundant assignment to variable rx_process_result

The variable rx_process_result is being initialized with a value that
is never read and is being re-assigned immediately afterwards. The
assignment is redundant, so replace it with the return from function
lan743x_rx_process_packet.

Addresses-Coverity: ("Unused value")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
4 years agoMerge branch 'ravb-remove-use-of-undocumented-registers'
David S. Miller [Fri, 6 Sep 2019 14:46:10 +0000 (16:46 +0200)]
Merge branch 'ravb-remove-use-of-undocumented-registers'

Simon Horman says:

====================
ravb: remove use of undocumented registers

this short series cleans up the RAVB driver a little.

The first patch corrects the spelling of the FBP field of SFO register.
This register field is unused and should have no run-time effect.

The remaining patches remove the use of undocumented registers
after some consultation with the internal Renesas BSP team.

Changes in v2:
* Corrected mangled state of first patch
* Patches 2/4 and 3/4 split out of a large patch
* Accumulated acks
* Tweaked changelog
* Claimed authorship of all patches

v1 of this series was tested on the following platforms.
No behaviour change is expected in v2.
* E3 Ebisu
* H3 Salvator-XS (ES2.0)
* M3-W Salvator-XS
* M3-N Salvator-XS
* RZ/G1C iW-RainboW-G23S
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
4 years agoravb: TROCR register is only present on R-Car Gen3
Simon Horman [Thu, 5 Sep 2019 15:10:59 +0000 (17:10 +0200)]
ravb: TROCR register is only present on R-Car Gen3

Only use the TROCR register on R-Car Gen3 as it is not present on other
SoCs.

Offsets used for the undocumented registers are considered reserved and
should not be written to. After some internal investigation with Renesas it
remains unclear why this driver accesses these fields on R-Car Gen2 but
regardless of what the historical reasons are the current code is
considered incorrect.

Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Reviewed-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Acked-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
4 years agoravb: remove undocumented endianness selection
Simon Horman [Thu, 5 Sep 2019 15:10:58 +0000 (17:10 +0200)]
ravb: remove undocumented endianness selection

This patch removes the use of the undocumented BOC bit of the CCC register.

Current documentation for EtherAVB (ravb) describes the offset of what the
driver uses as the BOC bit as reserved and that only a value of 0 should be
written. After some internal investigation with Renesas it remains unclear
why this driver accesses these fields but regardless of what the historical
reasons are the current code is considered incorrect.

Based on work by Kazuya Mizuguchi <kazuya.mizuguchi.ks@renesas.com>

Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
4 years agoravb: remove undocumented counter processing
Simon Horman [Thu, 5 Sep 2019 15:10:57 +0000 (17:10 +0200)]
ravb: remove undocumented counter processing

This patch removes the use of the undocumented counter registers
CDCR, LCCR, CERCR, CEECR.

Offsets used for undocumented registers are considered reserved and
should not be written to. After some internal investigation with Renesas
it remains unclear why this driver accesses these fields but regardless of
what the historical reasons are the current code is considered incorrect.

Based on work by Kazuya Mizuguchi <kazuya.mizuguchi.ks@renesas.com>

Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
4 years agoravb: correct typo in FBP field of SFO register
Simon Horman [Thu, 5 Sep 2019 15:10:56 +0000 (17:10 +0200)]
ravb: correct typo in FBP field of SFO register

The field name is FBP rather than FPB.

This field is unused and could equally be removed from the driver entirely.
But there seems no harm in leaving as documentation of the presence of the
field.

Based on work by Kazuya Mizuguchi <kazuya.mizuguchi.ks@renesas.com>

Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Reviewed-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Acked-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
4 years agozd1211rw: use %*ph to print small buffer
Andy Shevchenko [Wed, 4 Sep 2019 17:53:23 +0000 (20:53 +0300)]
zd1211rw: use %*ph to print small buffer

Use %*ph format to print small buffer as hex string.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
4 years agobrcmfmac: use %*ph to print small buffer
Andy Shevchenko [Wed, 4 Sep 2019 17:50:52 +0000 (20:50 +0300)]
brcmfmac: use %*ph to print small buffer

Use %*ph format to print small buffer as hex string.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
4 years agohostap: use %*ph to print small buffer
Andy Shevchenko [Wed, 4 Sep 2019 17:43:21 +0000 (20:43 +0300)]
hostap: use %*ph to print small buffer

Use %*ph format to print small buffer as hex string.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
4 years agortlwifi: Fix file release memory leak
Wei Yongjun [Wed, 4 Sep 2019 14:16:11 +0000 (14:16 +0000)]
rtlwifi: Fix file release memory leak

When using single_open() for opening, single_release() should be
used instead of seq_release(), otherwise there is a memory leak.

This is detected by Coccinelle semantic patch.

Fixes: 610247f46feb ("rtlwifi: Improve debugging by using debugfs")
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
4 years agortw88: fix seq_file memory leak
Wei Yongjun [Wed, 4 Sep 2019 14:16:01 +0000 (14:16 +0000)]
rtw88: fix seq_file memory leak

When using single_open(), single_release() should be used instead
of seq_release(), otherwise there is a memory leak.

This is detected by Coccinelle semantic patch.

Fixes: e3037485c68e ("rtw88: new Realtek 802.11ac driver")
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
4 years agohostap: remove set but not used variable 'copied' in prism2_io_debug_proc_read
zhong jiang [Tue, 3 Sep 2019 07:57:10 +0000 (15:57 +0800)]
hostap: remove set but not used variable 'copied' in prism2_io_debug_proc_read

Obviously, variable 'copied' is initialized to zero. But it is not used.
hence just remove it.

Signed-off-by: zhong jiang <zhongjiang@huawei.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
4 years agobrcmfmac: add "reset" debugfs entry for testing reset
Rafał Miłecki [Sun, 1 Sep 2019 11:34:36 +0000 (13:34 +0200)]
brcmfmac: add "reset" debugfs entry for testing reset

This is a trivial debugfs entry for triggering reset just like in case
of firmware crash. It works by writing 1 to it:
echo 1 > reset

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
4 years agobrcmfmac: add stub version of brcmf_debugfs_get_devdir()
Rafał Miłecki [Sun, 1 Sep 2019 11:34:35 +0000 (13:34 +0200)]
brcmfmac: add stub version of brcmf_debugfs_get_devdir()

In case of compiling driver without DEBUG expose a stub function to make
writing debug code much simpler (no extra conditions). This will allow
e.g. using debugfs_create_file() without any magic if or #ifdef.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
4 years agoMerge branch 'net-hns3-add-some-bugfixes-and-cleanups'
David S. Miller [Fri, 6 Sep 2019 13:20:35 +0000 (15:20 +0200)]
Merge branch 'net-hns3-add-some-bugfixes-and-cleanups'

Huazhong Tan says:

====================
net: hns3: add some bugfixes and cleanups

This patch-set includes bugfixes and cleanups for the HNS3
ethernet controller driver.

[patch 01/07] fixes an error when setting VLAN offload.

[patch 02/07] fixes an double free issue when setting ringparam.

[patch 03/07] fixes a mis-assignment of hdev->reset_level.

[patch 04/07] adds a checking for client's validity.

[patch 05/07] simplifies bool variable's assignment.

[patch 06/07] disables loopback when initializing.

[patch 07/07] makes internal function to static.

Change log:
V1->V2: fixes comment from Sergei Shtylyov.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
4 years agonet: hns3: make hclge_dbg_get_m7_stats_info static
Guojia Liao [Thu, 5 Sep 2019 13:31:42 +0000 (21:31 +0800)]
net: hns3: make hclge_dbg_get_m7_stats_info static

hclge_dbg_get_m7_info is used only in the hclge_debugfs.c,
so it should be declared with static.

Signed-off-by: Guojia Liao <liaoguojia@huawei.com>
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
4 years agonet: hns3: disable loopback setting in hclge_mac_init
Yufeng Mo [Thu, 5 Sep 2019 13:31:41 +0000 (21:31 +0800)]
net: hns3: disable loopback setting in hclge_mac_init

If the selftest and reset are performed at the same time, the loopback
setting may be still in the enable state after the reset. As a result,
packets cannot be sent out.

This patch fixes this issue by disabling loopback in hclge_mac_init.

Signed-off-by: Yufeng Mo <moyufeng@huawei.com>
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
4 years agonet: hns3: remove explicit conversion to bool
Guojia Liao [Thu, 5 Sep 2019 13:31:40 +0000 (21:31 +0800)]
net: hns3: remove explicit conversion to bool

Relational and logical operators evaluate to bool,
explicit conversion is overly verbose and unnecessary.

Signed-off-by: Guojia Liao <liaoguojia@huawei.com>
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
4 years agonet: hns3: add client node validity judgment
Peng Li [Thu, 5 Sep 2019 13:31:39 +0000 (21:31 +0800)]
net: hns3: add client node validity judgment

HNS3 driver can only unregister client which included in hnae3_client_list.
This patch adds the client node validity judgment.

Signed-off-by: Peng Li <lipeng321@huawei.com>
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
4 years agonet: hns3: fix mis-assignment to hdev->reset_level in hclge_reset
Huazhong Tan [Thu, 5 Sep 2019 13:31:38 +0000 (21:31 +0800)]
net: hns3: fix mis-assignment to hdev->reset_level in hclge_reset

Since hclge_get_reset_level may return HNAE3_NONE_RESET,
so hdev->reset_level can not be assigned with the return
value in the hclge_reset(), otherwise, it will cause
the use of hdev->reset_level in hclge_reset_event get
into error.

Fixes: 012fcb52f67c ("net: hns3: activate reset timer when calling reset_event")
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
4 years agonet: hns3: fix double free bug when setting ringparam
Huazhong Tan [Thu, 5 Sep 2019 13:31:37 +0000 (21:31 +0800)]
net: hns3: fix double free bug when setting ringparam

The system will panic when change the ringparam in HNS3 drivers:

[ 1459.627727] hns3 0000:bd:00.0 eth6: Changing Tx/Rx ring ds from 1024/1024 to 24/24
[ 1459.635766] hns3 0000:bd:00.0 eth6: link down
[ 1459.640788] BUG: Bad page state in process ethtool  pfn:203f75c18
[ 1459.646940] page:ffff7ee4ffd70600 refcount:0 mapcount:0 mapping:ffff993fff40f400 index:0x0 compound_mapcount: 0
[ 1459.656987] flags: 0x9fffe00000010200(slab|head)
[ 1459.661591] raw: 9fffe00000010200 dead000000000100 dead000000000122 ffff993fff40f400
[ 1459.669302] raw: 0000000000000000 0000000080100010 00000000ffffffff 0000000000000000
[ 1459.677016] page dumped because: PAGE_FLAGS_CHECK_AT_FREE flag(s) set
[ 1459.683432] bad because of flags: 0x200(slab)
[ 1459.687775] Modules linked in: ib_ipoib ib_umad rpcrdma ib_iser libiscsi scsi_transport_iscsi hns_roce_hw_v2 crct10dif_ce hns3 ses hclge hnae3 hisi_hpre hisi_zip qm uacce ip_tables x_tables hisi_sas_v3_hw hisi_sas_main libsas scsi_transport_sas
[ 1459.709329] CPU: 14 PID: 17244 Comm: ethtool Tainted: G           O      5.3.0-rc4-00415-gc86f057 #1
[ 1459.718419] Hardware name: Huawei TaiShan 2280 V2/BC82AMDC, BIOS 2280-V2 CS V3.B040.01 07/26/2019
[ 1459.727248] Call trace:
[ 1459.729688]  dump_backtrace+0x0/0x150
[ 1459.733335]  show_stack+0x24/0x30
[ 1459.736639]  dump_stack+0xa0/0xc4
[ 1459.739943]  bad_page+0xf0/0x158
[ 1459.743157]  free_pages_check_bad+0x84/0xa0
[ 1459.747322]  __free_pages_ok+0x348/0x378
[ 1459.751228]  page_frag_free+0x80/0x88
[ 1459.754877]  skb_free_head+0x38/0x48
[ 1459.758436]  skb_release_data+0x134/0x160
[ 1459.762427]  skb_release_all+0x30/0x40
[ 1459.766158]  consume_skb+0x38/0x108
[ 1459.769633]  __dev_kfree_skb_any+0x58/0x68
[ 1459.773718]  hns3_fini_ring+0x48/0x58 [hns3]
[ 1459.777970]  hns3_set_ringparam+0x2a8/0x418 [hns3]
[ 1459.782741]  dev_ethtool+0x5f4/0x2080
[ 1459.786390]  dev_ioctl+0x190/0x3d8
[ 1459.789777]  sock_do_ioctl+0xf8/0x220
[ 1459.793423]  sock_ioctl+0x3bc/0x490
[ 1459.796896]  do_vfs_ioctl+0xc4/0x868
[ 1459.800454]  ksys_ioctl+0x8c/0xa0
[ 1459.803752]  __arm64_sys_ioctl+0x28/0x38
[ 1459.807658]  el0_svc_common.constprop.0+0xe0/0x1e0
[ 1459.812426]  el0_svc_handler+0x34/0x90
[ 1459.816158]  el0_svc+0x10/0x14
[ 1459.819220] Disabling lock debugging due to kernel taint
[ 1459.825182] ------------[ cut here ]------------

Since ndo_stop will reclaim the RX's skb allocated by the driver,
so the backed up ring parameter should not keep this info.

Fixes: a723fb8efe29 ("net: hns3: refine for set ring parameters")
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
4 years agonet: hns3: fix error VF index when setting VLAN offload
Jian Shen [Thu, 5 Sep 2019 13:31:36 +0000 (21:31 +0800)]
net: hns3: fix error VF index when setting VLAN offload

In original codes, the VF index used incorrectly in function
hclge_set_vlan_rx_offload_cfg() and hclge_set_vlan_rx_offload_cfg().
When VF id is greater than 8, for example 9, it will set the
same bit with VF id 1.

This patch fixes it by using  vport->vport_id % HCLGE_VF_NUM_PER_CMD /
HCLGE_VF_NUM_PER_BYTE as the array index, instead of vport->vport_id /
HCLGE_VF_NUM_PER_CMD.

Fixes: 052ece6dc19c ("net: hns3: add ethtool related offload command")
Signed-off-by: Jian Shen <shenjian15@huawei.com>
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
4 years agostmmac: platform: adjust messages and move to dev level
Andy Shevchenko [Thu, 5 Sep 2019 13:00:53 +0000 (16:00 +0300)]
stmmac: platform: adjust messages and move to dev level

This patch amends the error and warning messages across the platform driver.
It includes the following changes:
 - append \n to the end of messages
 - change pr_* macros to dev_*

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
4 years agonet: phy: Do not check Link status when loopback is enabled
Jose Abreu [Thu, 5 Sep 2019 11:43:10 +0000 (13:43 +0200)]
net: phy: Do not check Link status when loopback is enabled

While running stmmac selftests I found that in my 1G setup some tests
were failling when running with PHY loopback enabled.

It looks like when loopback is enabled the PHY will report that Link is
down even though there is a valid connection.

As in loopback mode the data will not be sent anywhere we can bypass the
logic of checking if Link is valid thus saving unecessary reads.

Signed-off-by: Jose Abreu <joabreu@synopsys.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
4 years agonet_sched: act_police: add 2 new attributes to support police 64bit rate and peakrate
David Dai [Wed, 4 Sep 2019 15:03:43 +0000 (10:03 -0500)]
net_sched: act_police: add 2 new attributes to support police 64bit rate and peakrate

For high speed adapter like Mellanox CX-5 card, it can reach upto
100 Gbits per second bandwidth. Currently htb already supports 64bit rate
in tc utility. However police action rate and peakrate are still limited
to 32bit value (upto 32 Gbits per second). Add 2 new attributes
TCA_POLICE_RATE64 and TCA_POLICE_RATE64 in kernel for 64bit support
so that tc utility can use them for 64bit rate and peakrate value to
break the 32bit limit, and still keep the backward binary compatibility.

Tested-by: David Dai <zdai@linux.vnet.ibm.com>
Signed-off-by: David Dai <zdai@linux.vnet.ibm.com>
Acked-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
4 years agonet: openvswitch: Set OvS recirc_id from tc chain index
Paul Blakey [Wed, 4 Sep 2019 13:56:37 +0000 (16:56 +0300)]
net: openvswitch: Set OvS recirc_id from tc chain index

Offloaded OvS datapath rules are translated one to one to tc rules,
for example the following simplified OvS rule:

recirc_id(0),in_port(dev1),eth_type(0x0800),ct_state(-trk) actions:ct(),recirc(2)

Will be translated to the following tc rule:

$ tc filter add dev dev1 ingress \
    prio 1 chain 0 proto ip \
flower tcp ct_state -trk \
action ct pipe \
action goto chain 2

Received packets will first travel though tc, and if they aren't stolen
by it, like in the above rule, they will continue to OvS datapath.
Since we already did some actions (action ct in this case) which might
modify the packets, and updated action stats, we would like to continue
the proccessing with the correct recirc_id in OvS (here recirc_id(2))
where we left off.

To support this, introduce a new skb extension for tc, which
will be used for translating tc chain to ovs recirc_id to
handle these miss cases. Last tc chain index will be set
by tc goto chain action and read by OvS datapath.

Signed-off-by: Paul Blakey <paulb@mellanox.com>
Signed-off-by: Vlad Buslov <vladbu@mellanox.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Acked-by: Pravin B Shelar <pshelar@ovn.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
4 years agonfp: Drop unnecessary continue in nfp_net_pf_alloc_vnics
zhong jiang [Wed, 4 Sep 2019 03:46:23 +0000 (11:46 +0800)]
nfp: Drop unnecessary continue in nfp_net_pf_alloc_vnics

Continue is not needed at the bottom of a loop.

Signed-off-by: zhong jiang <zhongjiang@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
4 years agoiwlwifi: dbg: remove iwl_fw_cancel_dumps function
Shahar S Matityahu [Tue, 9 Jul 2019 09:27:07 +0000 (12:27 +0300)]
iwlwifi: dbg: remove iwl_fw_cancel_dumps function

Use cancel_delayed_work_sync on the dump workers only in case of
unloading the op mode. In any other case use iwl_fw_flush_dumps or
iwl_fw_dbg_stop_sync (depends if the op mode mutex is held or not).
This way, the driver will wait until debug data is collected in all
cases but op mode unloading.

Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: dbg_ini: remove periodic trigger
Shahar S Matityahu [Mon, 1 Jul 2019 13:03:48 +0000 (16:03 +0300)]
iwlwifi: dbg_ini: remove periodic trigger

Remove periodic trigger functionality.
After moving to the new API we will add periodic trigger functionality
that matches the new API.

Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: dbg_ini: fix dump structs doc
Shahar S Matityahu [Wed, 10 Jul 2019 10:23:30 +0000 (13:23 +0300)]
iwlwifi: dbg_ini: fix dump structs doc

Fix the documentation of struct iwl_fw_ini_monitor_dump and
iwl_fw_ini_error_dump_range.

Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: fw api: add DRAM buffer allocation command
Shahar S Matityahu [Thu, 4 Jul 2019 14:53:52 +0000 (17:53 +0300)]
iwlwifi: fw api: add DRAM buffer allocation command

Add support code to be able to use the DRAM buffer allocation command,
which allows us to send information about a buffer to the firmware
to use it with the DBGC hardware.

Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: dbg_ini: remove apply point, switch to time point API
Shahar S Matityahu [Mon, 22 Jul 2019 10:04:16 +0000 (13:04 +0300)]
iwlwifi: dbg_ini: remove apply point, switch to time point API

Remove the "apply points" mechanism as preparation for the changed
debug API where this is now a "time point" instead. Use a new API
across the code at the trigger points ("time points"), but don't
yet implement it since that requires some more preparation.

Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: add iwl_tlv_array_len()
Shahar S Matityahu [Mon, 22 Jul 2019 09:40:51 +0000 (12:40 +0300)]
iwlwifi: add iwl_tlv_array_len()

Allows to easily calculate array length at the end of a TLV.

Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: mvm: don't log un-decrypted frames
Emmanuel Grumbach [Tue, 23 Jul 2019 09:54:15 +0000 (12:54 +0300)]
iwlwifi: mvm: don't log un-decrypted frames

Sometimes the firmware won't be able to decrypt frames
because the keys were not installed yet or other scenarios.
The firmware will soon stop dropping multicast frames when
MAC_FILTER_ACCEPT_GRP is not set. The firmware will simply
always pass multicast frame in.

In order to avoid logging any such frame coming in when we
don't have the keys, drop the print.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: mvm: add support for single antenna diversity
Haim Dreyfuss [Mon, 22 Jul 2019 13:45:21 +0000 (16:45 +0300)]
iwlwifi: mvm: add support for single antenna diversity

There are products which have a single chain with 2 antennas.
In these products, we need to inform the FW that the device has the
single antenna diversity(SAD) feature. In the future, we will read
the active antenna from a BIOS configuration. Currently, we use a
default configuration which means that the FW decides which antenna to use.

Signed-off-by: Haim Dreyfuss <haim.dreyfuss@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: mvm: handle BAR_FRAME_RELEASE (0xc2) notification
Johannes Berg [Thu, 4 Jul 2019 15:24:47 +0000 (17:24 +0200)]
iwlwifi: mvm: handle BAR_FRAME_RELEASE (0xc2) notification

In prior hardware generations (e.g. 9000 series), we received the BAR
frame with fake NSSN information to handle releasing frames from the
reorder buffer for the default queue, the other queues were getting
the FRAME_RELEASE notification in this case.

With multi-TID block-ack, the firmware no longer sends us the BAR
frame because the fake RX is quite big (just the metadata is around
48 bytes or so). Instead, it now sends us one (or multiple) special
release notifications (0xc2). The hardware consumes these as well,
but only generates the FRAME_RELEASE (0xc3) for queues other than
the default queue. We thus need to handle them in the same way we
handle the normal FRAME_RELEASE.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: mvm: drop BA sessions on too many old-SN frames
Johannes Berg [Tue, 16 Jul 2019 12:57:18 +0000 (14:57 +0200)]
iwlwifi: mvm: drop BA sessions on too many old-SN frames

Certain APs (I think a certain Broadcom model) interact badly with our
full state BA bitmap handling, and if triggered badly with many powersave
transitions they keep sending frames from before the window, which our
hardware then doesn't appear to ACK (to them) since it has moved on and
is sending ACKs for higher SNs now.

Try to detect this situation and if this keeps happening, disable the
aggregation session.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: add sta_id to WOWLAN_CONFIG_CMD
Haim Dreyfuss [Tue, 16 Jul 2019 09:44:40 +0000 (12:44 +0300)]
iwlwifi: add sta_id to WOWLAN_CONFIG_CMD

WoWlan feature within the FW uses the station id for various of reasons.
Thus we need to add this information to the command.

Signed-off-by: Haim Dreyfuss <haim.dreyfuss@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: add support for suspend-resume flow for new device generation
Haim Dreyfuss [Wed, 3 Apr 2019 11:37:54 +0000 (14:37 +0300)]
iwlwifi: add support for suspend-resume flow for new device generation

The new device generation has a slightly different suspend resume flow
Currently, the way the driver instruct the device to move to D3 is by
sending D3_CONFIG_CMD.
Instead of using the host command the indication is by writing to the
doorbell interrupt.
The FW will respond with interrupt to indicate transition completion.

Signed-off-by: Haim Dreyfuss <haim.dreyfuss@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: fix warning iwl-trans.h is included more than once
Hariprasad Kelam [Sun, 26 May 2019 11:38:16 +0000 (17:08 +0530)]
iwlwifi: fix warning iwl-trans.h is included more than once

Remove duplicate inclusion of iwl-trans.h.

This issue was found by includecheck.

Signed-off-by: Hariprasad Kelam <hariprasad.kelam@gmail.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: always access the trans configuration via trans
Luca Coelho [Fri, 12 Jul 2019 12:52:39 +0000 (15:52 +0300)]
iwlwifi: always access the trans configuration via trans

Stop accessing the trans configuration via the iwl_cfg structure and
always access it via the iwl_trans structure.  This completes the
requirements to disassociate the trans-specific configuration from the
rest of the configuration.

Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: pass the iwl_trans instead of cfg to some functions
Shaul Triebitz [Mon, 21 May 2018 22:39:23 +0000 (18:39 -0400)]
iwlwifi: pass the iwl_trans instead of cfg to some functions

A few functions were receiving the iwl_cfg struct directly, but we
will also need other parts of the trans, so pass the trans (which
includes the cfg) to them.

Signed-off-by: Ido Yariv <idox.yariv@intel.com>
Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: add a pointer to the trans_cfg directly in trans
Luca Coelho [Fri, 12 Jul 2019 12:03:48 +0000 (15:03 +0300)]
iwlwifi: add a pointer to the trans_cfg directly in trans

Add a pointer to the iwl_trans structure and point it to the trans
part of the cfg.  This is the first step in disassociating the trans
configuration from the rest of the configuration.

Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: pass the iwl_config_trans_params when needed
Luca Coelho [Fri, 3 Aug 2018 10:24:18 +0000 (13:24 +0300)]
iwlwifi: pass the iwl_config_trans_params when needed

Instead of accessing the iwl_config_trans_params from the cfg that is
stored in the trans struct, pass this structure directly to functions
that need it during trans_alloc.  This will be useful to isolate the
elements needed during allocation and pass them separately before the
actual cfg struct is known.

Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: pcie: set iwl_trans->cfg later in the probe function
Luca Coelho [Thu, 2 Aug 2018 13:24:53 +0000 (16:24 +0300)]
iwlwifi: pcie: set iwl_trans->cfg later in the probe function

Instead of setting the cfg to iwl_trans already during allocation, set
it only later when we have had the time to decide which cfg to use.
This is part of the effort to be able to decide the cfg based on HW
revision and RF ID after iwl_trans_alloc() has been called.

For now, since we still have a bunch of code checking the HW revision
and the RF ID, we set iwl_trans->cfg early, even before we decided the
real cfg to use.  We only use the trans configuration at this point,
so this is fine for now.  In the future, the trans configuration will
be completely independent from the rest of the config structure, so
we'll be able to avoid this.

Additionally, we can't access the PRPH registers in iwl_trans_alloc()
anymore, so move the HW REV C-step check for family 8000 code later to
the probe function as well.  This step is probably not necessary, but
if that's the case it should be removed separately later on.

Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: pcie: move some cfg mangling from trans_pcie_alloc to probe
Luca Coelho [Thu, 2 Aug 2018 14:08:40 +0000 (17:08 +0300)]
iwlwifi: pcie: move some cfg mangling from trans_pcie_alloc to probe

There were a couple of special handling to find the correct cfg inside
iwl_trans_pcie_alloc().  Move them to iwl_pci_probe() so they're
together with the rest of the decisions.

Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: pcie: use the cfg we passed to iwl_trans_pcie_alloc()
Luca Coelho [Thu, 2 Aug 2018 13:16:27 +0000 (16:16 +0300)]
iwlwifi: pcie: use the cfg we passed to iwl_trans_pcie_alloc()

Instead of using iwl_trans->cfg in iwl_trans_pcie_alloc(), use the
local argument that we received.  This will allow us to not to set the
cfg during iwl_trans_alloc() so it can be decided later.

Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: separate elements from cfg that are needed by trans_alloc
Luca Coelho [Thu, 2 Aug 2018 11:57:55 +0000 (14:57 +0300)]
iwlwifi: separate elements from cfg that are needed by trans_alloc

In order to be able to select the cfg depending on the HW revision or
on the RF ID, we need to set up the trans before selecting the cfg.
To do so, move the elements from cfg that are needed by
iwl_trans_alloc() to a separate struct at the top of the cfg, so it
can be used by other cfg types as well, before selecting the rest of
the configuration.

Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: dbg_ini: use regions ops array instead of switch case in dump flow
Shahar S Matityahu [Tue, 18 Jun 2019 05:24:21 +0000 (08:24 +0300)]
iwlwifi: dbg_ini: use regions ops array instead of switch case in dump flow

Make a static regions ops array and use it instead of switch case when
determining what op to use to collect a region.

Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: dbg_ini: make a single ops struct for paging collect
Shahar S Matityahu [Mon, 17 Jun 2019 14:16:36 +0000 (17:16 +0300)]
iwlwifi: dbg_ini: make a single ops struct for paging collect

Needed for future changes.

Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: dbg_ini: move tx fifo data into fw runtime
Shahar S Matityahu [Mon, 17 Jun 2019 11:51:51 +0000 (14:51 +0300)]
iwlwifi: dbg_ini: move tx fifo data into fw runtime

Needed for future changes.

Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: dbg_ini: use linked list for dump TLVs during dump creation
Shahar S Matityahu [Sun, 16 Jun 2019 14:05:21 +0000 (17:05 +0300)]
iwlwifi: dbg_ini: use linked list for dump TLVs during dump creation

Avoid iterating over dump TLVs twice for size calculation by using
linked list to store the dump TLVs.

Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: dbg_ini: separate cfg and dump flows to different modules
Shahar S Matityahu [Thu, 13 Jun 2019 13:41:35 +0000 (16:41 +0300)]
iwlwifi: dbg_ini: separate cfg and dump flows to different modules

separate configuration flows and dump collection flows.
make ini configuration flows be in iwl-dbg-tlv.c and dump related flows
in dbg.c to better reflect their logical difference.

Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: mvm: look for the first supported channel when add/remove phy ctxt
Tova Mussai [Thu, 4 Jul 2019 11:34:54 +0000 (14:34 +0300)]
iwlwifi: mvm: look for the first supported channel when add/remove phy ctxt

Can't rely that band 2.4 is always supported by the NIC and use the
first channel in this band for the phy ctxt.
Instead, look for the first channel in the first band that is supported

Signed-off-by: Tova Mussai <tova.mussai@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: allocate bigger nvm data in case of UHB
Tova Mussai [Thu, 4 Jul 2019 10:41:01 +0000 (13:41 +0300)]
iwlwifi: allocate bigger nvm data in case of UHB

In case of Ultra-high-band (UHB), need to allocate nvm data structure in
size of UHB channels array.

Signed-off-by: Tova Mussai <tova.mussai@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: remove unnecessary IWL_DEVICE_AX200_COMMON definition
Luca Coelho [Wed, 10 Jul 2019 12:00:18 +0000 (15:00 +0300)]
iwlwifi: remove unnecessary IWL_DEVICE_AX200_COMMON definition

Remove the IWL_DEVICE_AX200_COMMON definition, since it's only used
once and relies mostly on IWL_DEVICE_22000_COMMON anyway.

Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: dbg: align wrt log prints to the same format
Shahar S Matityahu [Mon, 27 May 2019 12:12:52 +0000 (15:12 +0300)]
iwlwifi: dbg: align wrt log prints to the same format

Align wrt log prints to the driver coding style
Remove the ext field from the log and print it at the beginning of the
apply point.

Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: dbg_ini: remove debug flow TLV
Shahar S Matityahu [Sun, 30 Jun 2019 13:36:36 +0000 (16:36 +0300)]
iwlwifi: dbg_ini: remove debug flow TLV

Debug flow TLV was removed from the FW. Remove the TLV from the driver
as well.

Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: dbg_ini: verify debug TLVs at allocation phase
Shahar S Matityahu [Sun, 30 Jun 2019 07:23:26 +0000 (10:23 +0300)]
iwlwifi: dbg_ini: verify debug TLVs at allocation phase

Reimplement debug TLV allocation flow. The driver will check the
validity of the debug TLVs prior allocating space for them.
Any malformed or unsupported TLV will be skipped.
The TLV specific checks will be added in later patches.

Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: dbg_ini: use function to check if ini dbg mode is on
Shahar S Matityahu [Sun, 30 Jun 2019 06:31:22 +0000 (09:31 +0300)]
iwlwifi: dbg_ini: use function to check if ini dbg mode is on

use iwl_trans_dbg_ini_valid function instead of a boolean value check if
dbg_ini mode is on. It is needed for a future patch.

Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: remove duplicate FW string definitions
Luca Coelho [Mon, 8 Jul 2019 09:20:01 +0000 (12:20 +0300)]
iwlwifi: remove duplicate FW string definitions

The string we define as IWL_22000_HR_B_F0_FW_PRE is duplicate with
IWL_22000_QU_B_HR_B_FW_PRE.  Remove the former to avoid confusion.

Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: bump FW API to 50 for 22000 series
Luca Coelho [Wed, 10 Apr 2019 06:23:39 +0000 (09:23 +0300)]
iwlwifi: bump FW API to 50 for 22000 series

Start supporting API version 50 for 22000 series.

Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: api: fix FTM struct documentation
Johannes Berg [Fri, 5 Jul 2019 11:53:30 +0000 (13:53 +0200)]
iwlwifi: api: fix FTM struct documentation

The real name is struct iwl_tof_range_req_ext_cmd, fix that.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: support per-platform antenna gain
Gil Adam [Sun, 16 Jun 2019 10:18:28 +0000 (13:18 +0300)]
iwlwifi: support per-platform antenna gain

TX power limits as defined in the OTP assume the worst case scenario
in terms of the platform's atenna gain, but most platforms are below
that value so they can use more TX power without passing the regulatory
limit. If the platform indicates in the BIOS that it indeed has lower
gain, and the geographic location allows it, higher TX power can be
used. The driver reads the PPAG (Per-Platform Antenna Gain) data from
BIOS (if it exists), validates it and sends the appropriate command to
the FW. This flow happens once at FW init, in case of suspend/resume
there is no need to read again from BIOS as we save those values during
init, so just send the PPAG command again to FW.

Signed-off-by: Gil Adam <gil.adam@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: mvm: remove check for lq_sta in __iwl_mvm_rs_tx_status()
Luca Coelho [Tue, 2 Jul 2019 12:18:47 +0000 (15:18 +0300)]
iwlwifi: mvm: remove check for lq_sta in __iwl_mvm_rs_tx_status()

The check is not necessary anymore, because now the struct is not
allocated separately, but is part of the mvmsta struct.  Remove the
check, since it's dead code.

Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: mvm: simplify the channel switch flow for newer firmware
Emmanuel Grumbach [Sun, 30 Jun 2019 12:40:19 +0000 (15:40 +0300)]
iwlwifi: mvm: simplify the channel switch flow for newer firmware

Any firmware that supports the new channel switch flow is
able to close / re-open the queues when needed. It takes
into account the channel switch mode etc...
Don't open / close the queues or enable / disable beacon
abort before and after the channel switch in case the
firmware is able to do this by itself.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: stop passing bogus gfp flags arguments to dma_alloc_coherent
Christoph Hellwig [Fri, 14 Jun 2019 13:47:20 +0000 (15:47 +0200)]
iwlwifi: stop passing bogus gfp flags arguments to dma_alloc_coherent

dma_alloc_coherent is not just the page allocator.  The only valid
arguments to pass are either GFP_ATOMIC or GFP_ATOMIC with possible
modifiers of __GFP_NORETRY or __GFP_NOWARN.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: dbg_ini: remove periphery phy and aux regions handling
Shahar S Matityahu [Tue, 18 Jun 2019 05:31:58 +0000 (08:31 +0300)]
iwlwifi: dbg_ini: remove periphery phy and aux regions handling

periphery phy and aux regions should not be collected like periphery mac
region. Remove their handling. The handling will be added in the future
once the FW will support it.

Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com>
Fixes: 7a14c23dcdee ("iwlwifi: dbg: dump data according to the new ini TLVs")
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: dbg_ini: use linked list to store debug TLVs
Shahar S Matityahu [Mon, 10 Jun 2019 13:14:20 +0000 (16:14 +0300)]
iwlwifi: dbg_ini: use linked list to store debug TLVs

Use a linked list to maintain the debug TLVs instead of a single buffer.
This way, the driver does not need to iterate over the binary file twice
and allocates smaller chunks of memory. Also, in case one allocation
fails the driver will work with the partial configuration instead of
aborting the entire debug configuration.

Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: dbg_ini: maintain buffer allocations from trans instead of TLVs buffer
Shahar S Matityahu [Thu, 13 Jun 2019 05:29:55 +0000 (08:29 +0300)]
iwlwifi: dbg_ini: maintain buffer allocations from trans instead of TLVs buffer

Maintain DRAM debug buffer status in trans instead of keeping it as
part of the TLVs buffer to avoid allocating extra space for it.
Needed for future changes.

Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: dbg: add debug periphery registers to 9000 device family
Shahar S Matityahu [Mon, 24 Jun 2019 07:37:05 +0000 (10:37 +0300)]
iwlwifi: dbg: add debug periphery registers to 9000 device family

Add debug HW periphery registers to 9000 device family.

Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: remove unused regdb_ptrs allocation
Haim Dreyfuss [Thu, 13 Jun 2019 10:10:50 +0000 (13:10 +0300)]
iwlwifi: remove unused regdb_ptrs allocation

regdb_ptrs is not in used anymore, remove it.

Signed-off-by: Haim Dreyfuss <haim.dreyfuss@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: dbg_ini: align dbg tlv functions names to a single format
Shahar S Matityahu [Thu, 13 Jun 2019 12:01:07 +0000 (15:01 +0300)]
iwlwifi: dbg_ini: align dbg tlv functions names to a single format

align the naming to iwl_dbg_tlv_*

Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: scan: don't pass large argument by value
Ayala Beker [Mon, 17 Jun 2019 17:15:55 +0000 (20:15 +0300)]
iwlwifi: scan: don't pass large argument by value

Function iwl_mvm_scan_set_legacy_probe_req() second argument
size is too large to be passed by value.
Fix it to be passed by reference.

Signed-off-by: Ayala Beker <ayala.beker@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: remove pm_runtime completely
Emmanuel Grumbach [Thu, 6 Jun 2019 11:56:14 +0000 (14:56 +0300)]
iwlwifi: remove pm_runtime completely

This means:
1) stop calling pm_runtime_resume when starting the hardware
2) removing the unneeded low_power parameter to start / stop hw / fw
   transport ops
3) squashing transport functions that are now the same
   _iwl_trans_pcie_start_hw / iwl_trans_pcie_start_hw

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: remove the d0i3 related module parameters
Emmanuel Grumbach [Thu, 6 Jun 2019 11:24:45 +0000 (14:24 +0300)]
iwlwifi: remove the d0i3 related module parameters

Those are now effectless.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: pcie: remove some more d0i3 code from the transport
Emmanuel Grumbach [Thu, 6 Jun 2019 09:07:30 +0000 (12:07 +0300)]
iwlwifi: pcie: remove some more d0i3 code from the transport

CMD_SEND_IN_IDLE, CMD_MAKE_TRANS_IDLE and CMD_WAKE_UP_TRANS
are not used. Remove them.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: pcie: remove the refs / unrefs from the transport
Emmanuel Grumbach [Thu, 6 Jun 2019 08:44:26 +0000 (11:44 +0300)]
iwlwifi: pcie: remove the refs / unrefs from the transport

This code is now stale

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: remove the opmode's d0i3 handlers
Emmanuel Grumbach [Thu, 6 Jun 2019 08:31:04 +0000 (11:31 +0300)]
iwlwifi: remove the opmode's d0i3 handlers

Remove the now unneeded functions that called those from the
transport layer.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: remove runtime_pm_mode
Emmanuel Grumbach [Thu, 6 Jun 2019 08:27:13 +0000 (11:27 +0300)]
iwlwifi: remove runtime_pm_mode

This is always set to IWL_PLAT_PM_MODE_DISABLED

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: Set w-pointer upon resume according to SN
Alex Malamud [Mon, 10 Jun 2019 12:19:23 +0000 (15:19 +0300)]
iwlwifi: Set w-pointer upon resume according to SN

During D3 state, FW may send packets.
As a result, "write" queue pointer will be incremented by FW.
Upon resume from D3, driver should adjust its shadows of "write" and "read"
pointers to the value reported by FW.

1. Keep TID used during wowlan configuration.
2. Upon resume, set driver's "write" and "read" queue pointers
to the value reported by FW.

Signed-off-by: Alex Malamud <alex.malamud@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: mvm: use FW thermal monitoring regardless of CONFIG_THERMAL
Johannes Berg [Tue, 11 Jun 2019 13:38:13 +0000 (15:38 +0200)]
iwlwifi: mvm: use FW thermal monitoring regardless of CONFIG_THERMAL

It doesn't make sense to use the FW thermal monitoring only if we
have CONFIG_THERMAL, because then we use the default thresholds
etc. which may be different from what the firmware implements, as
we don't maintain them in the driver now. Only the CTDP code needs
to actually be under CONFIG_THERMAL.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: mvm: name magic numbers with enum
Mordechay Goodstein [Wed, 29 May 2019 12:39:07 +0000 (15:39 +0300)]
iwlwifi: mvm: name magic numbers with enum

It's hard to follow the numbers so rename it with enum

Signed-off-by: Mordechay Goodstein <mordechay.goodstein@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: scan: add support for new scan request command version
Ayala Beker [Thu, 23 May 2019 22:06:01 +0000 (01:06 +0300)]
iwlwifi: scan: add support for new scan request command version

Scan API was changed to support 6Ghz channels as well.
Support the new version.

Signed-off-by: Ayala Beker <ayala.beker@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: LTR updates
Alex Malamud [Wed, 22 May 2019 10:49:18 +0000 (13:49 +0300)]
iwlwifi: LTR updates

New FW versions introduces LTR feature enablement by default.
For such FW versions, driver (mvm/xvt) should not send
host command to enable LTR feature, also it should be possible to
override LTR configuration through the debugfs.

1. Send LTR feature enablement command only for FW versions
which does not advertises SET_LTR_GEN2 capability.
2. Implement ltr_config file in debugfs for LTR configuration override.

Signed-off-by: Alex Malamud <alex.malamud@intel.com>
4 years agoiwlwifi: remove the code under IWLWIFI_PCIE_RTPM
Emmanuel Grumbach [Thu, 6 Jun 2019 08:22:16 +0000 (11:22 +0300)]
iwlwifi: remove the code under IWLWIFI_PCIE_RTPM

This flag should never be set unless integration work with the
platform is done.  We don't support any platforms officially and don't
plan to do so in the near future, so we can remove this option
entirely in order to avoid having it enabled by mistake.

This has been marked with "depends on EXPERT", so there shouldn't be
many systems running with it set.  And, if there are systems, they
should not be using this flag.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: trans: remove suspending flag
Emmanuel Grumbach [Thu, 6 Jun 2019 08:18:46 +0000 (11:18 +0300)]
iwlwifi: trans: remove suspending flag

This is set but never read.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: remove CMD_HIGH_PRIO
Emmanuel Grumbach [Thu, 6 Jun 2019 08:10:25 +0000 (11:10 +0300)]
iwlwifi: remove CMD_HIGH_PRIO

This flag is never set on any host command. Remove it.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: mvm: remove last leftovers of d0i3
Emmanuel Grumbach [Thu, 6 Jun 2019 08:06:45 +0000 (11:06 +0300)]
iwlwifi: mvm: remove last leftovers of d0i3

We're now left with a status bit that is never set and a few
other leftovers.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: mvm: remove iwl_mvm_update_d0i3_power_mode
Emmanuel Grumbach [Thu, 6 Jun 2019 08:03:01 +0000 (11:03 +0300)]
iwlwifi: mvm: remove iwl_mvm_update_d0i3_power_mode

Also change the signature of the power functions that won't
receive d0i3=true anymore.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: mvm: remove d0i3_ap_sta_id
Emmanuel Grumbach [Thu, 6 Jun 2019 08:00:09 +0000 (11:00 +0300)]
iwlwifi: mvm: remove d0i3_ap_sta_id

This variable read, but never set. Remove it.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: mvm: iwl_mvm_wowlan_config_key_params is for wowlan only
Emmanuel Grumbach [Thu, 6 Jun 2019 07:58:46 +0000 (10:58 +0300)]
iwlwifi: mvm: iwl_mvm_wowlan_config_key_params is for wowlan only

Now that d0i3 is dead, this function can't be called from d0i3
flows. Change its signature and make it static.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: mvm: remove the d0i3 entry/exit flow
Emmanuel Grumbach [Thu, 6 Jun 2019 07:47:33 +0000 (10:47 +0300)]
iwlwifi: mvm: remove the d0i3 entry/exit flow

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: mvm: remove the tx defer for d0i3
Emmanuel Grumbach [Thu, 6 Jun 2019 07:41:17 +0000 (10:41 +0300)]
iwlwifi: mvm: remove the tx defer for d0i3

This is not needed anymore

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: remove all the d0i3 references
Emmanuel Grumbach [Tue, 11 Jun 2019 10:15:24 +0000 (13:15 +0300)]
iwlwifi: remove all the d0i3 references

As part of the d0i3 removal.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
4 years agoiwlwifi: mvm: start to remove the code for d0i3
Emmanuel Grumbach [Thu, 6 Jun 2019 06:52:56 +0000 (09:52 +0300)]
iwlwifi: mvm: start to remove the code for d0i3

For runtime PM to work with d0i3 code, a lot of integration work needs
to be done with the platform (e.g. the out-of-band wake up interrupt)
and we currently don't have any platforms where this integration
happened.  So, this code has been pretty much stale for a while and
when someone enables it, it just breaks things.

Therefore, to simplify the code base and make sure no one enables this
by mistake, we will remove the whole code.

This is only the very start, much more work is needed.
Remove the places where we check iwl_mvm_is_d0i3_supported
but leave all the refs, those will be removed in a different
patch.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>