aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/wireless/intel
AgeCommit message (Collapse)AuthorFilesLines
2017-08-09iwlwifi: remove references to unsupported HWLuca Coelho3-12/+7
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 <[email protected]>
2017-08-09iwlwifi: fix nmi triggering from hostGolan Ben-Ami2-15/+6
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 <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-09iwlwifi: pcie: don't init a Tx queue with an SSN > size of the queueEmmanuel Grumbach1-2/+5
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 <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-09iwlwifi: mvm: add station before allocating a queueShaul Triebitz1-45/+63
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 <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-09iwlwifi: mvm: don't send CTDP commands via debugfs if not supportedMatt Chen1-0/+6
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 <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-09iwlwifi: mvm: support new beacon template commandHaim Dreyfuss3-18/+47
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 <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-09iwlwifi: mvm: send delba upon rx ba session timeoutNaftali Goldstein1-2/+2
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 <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-09iwlwifi: mvm: set the default cTDP budgetChaya Rachel Ivgi1-1/+6
In case there is no value received from BIOS for cTDP budget, the default should be 2000 mWatt. Signed-off-by: Chaya Rachel Ivgi <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-09iwlwifi: mvm: move a000 device NVM retrieval to a common placeShaul Triebitz6-95/+169
Getting the NVM data in a000 devices should be shared across operation mode. Signed-off-by: Shaul Triebitz <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-09iwlwifi: dump smem configuration when firmware crashesGolan Ben-Ami3-5/+66
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 <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-09iwlwifi: fix a000 RF_ID defineLiad Kaufman1-1/+1
One of the defines has a wrong value. Fixes: 1afb0ae42174 ("iwlwifi: allow combining different phy images with mac images") Signed-off-by: Liad Kaufman <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-09iwlwifi: add support of FPGA fwTzipi Peres4-0/+32
Load FW according to NIC type, taking into account simulation, if exists. This is determined by a prph register. Signed-off-by: Tzipi Peres <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-09iwlwifi: fix a few instances of misaligned kerneldoc parametersLuca Coelho1-1/+1
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 <[email protected]>
2017-08-09iwlwifi: change functions that can only return 0 to voidSharon Dvir1-16/+8
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 <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-09iwlwifi: mvm: add debugfs to force CT-killChaya Rachel Ivgi3-1/+16
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 <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-09iwlwifi: mvm: add const to thermal_cooling_device_ops structureBhumika Goyal1-1/+1
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 <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-09iwlwifi: mvm: use firmware LED command where applicableJohannes Berg7-10/+130
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 <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-09iwlwifi: mvm: remove useless condition in LED codeJohannes Berg1-2/+1
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 <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-09iwlwifi: mvm: don't WARN when a legit race happens in A-MPDUEmmanuel Grumbach1-4/+6
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 <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-09iwlwifi: mvm: start mac queues when deferred tx frames are purgedAvraham Stern1-1/+11
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 <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-07Merge tag 'wireless-drivers-next-for-davem-2017-08-07' of ↵David S. Miller72-4813/+5950
git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next Kalle Valo says: ==================== wireless-drivers-next patches for 4.14 The first wireless-drivers-next pull request for 4.14. I'm submitting this unusally late in the cycle as my vacation postponed this. But even if this is late there's not still that much new features, mostly cleanup or fixes. Major changes: ath10k * preparation for wcn3990 support iwlwifi * Reorganization of the code into separate directories continues qtnfmac * regulatory support updates * add get_channel, dump_survey and channel_switch cfg80211 handlers ==================== Signed-off-by: David S. Miller <[email protected]>
2017-08-05iwlwifi: mvm: Fix a memory leak in an error handling path in ↵Christophe Jaillet1-2/+4
'iwl_mvm_sar_get_wgds_table()' 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 <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-01Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/netDavid S. Miller8-9/+34
Two minor conflicts in virtio_net driver (bug fix overlapping addition of a helper) and MAINTAINERS (new driver edit overlapping revamp of PHY entry). Signed-off-by: David S. Miller <[email protected]>
2017-08-01iwlwifi: mvm: don't retake the pointer to skb's CBEmmanuel Grumbach1-1/+1
We already have a such a pointer. Signed-off-by: Emmanuel Grumbach <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-01iwlwifi: mvm: remove non-DQA modeJohannes Berg10-777/+158
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 <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-01iwlwifi: mvm: rename p2p-specific sta functions to include p2p in the namesLuca Coelho3-6/+6
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 <[email protected]>
2017-08-01iwlwifi: mvm: simplify bufferable MMPDU checkJohannes Berg1-3/+1
There's no need to spell out the cases when we can just use ieee80211_is_bufferable_mmpdu(). Signed-off-by: Johannes Berg <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-01iwlwifi: mvm: require AP_LINK_PS for TVQMJohannes Berg1-1/+19
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 <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-01iwlwifi: pcie: rename iwl_trans_check_hw_rf_kill() to pcieJohannes Berg4-9/+9
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 <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-01iwlwifi: mvm: add compile-time option to disable EBSZamir, Roee2-1/+2
For testing purposes, we may want to disable EBS scans at compile time. Signed-off-by: Roee Zamir <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-01iwlwifi: implement fseq version mismatch warningMordechai Goodstein6-1/+118
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 <[email protected]> Signed-off-by: Mordechai Goodstein <[email protected]>
2017-08-01iwlwifi: mvm: support fw reading empty OTPLiad Kaufman2-6/+11
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 <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-01iwlwifi: pcie: fix A-MSDU on gen2 devicesEmmanuel Grumbach1-3/+3
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 <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-01iwlwifi: mvm: fix uninitialized var while waiting for queues to emptySharon Dvir1-3/+4
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 <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-01iwlwifi: mvm: fix the FIFO numbers in A000 devicesEmmanuel Grumbach5-5/+32
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 <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-01iwlwifi: mvm: refactor beacon template command codeLuca Coelho2-95/+138
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 <[email protected]>
2017-08-01iwlwifi: dvm: remove unused definesSeraphime Kirkovski1-16/+0
Those constants have been unused for quite some time now. Signed-off-by: Seraphime Kirkovski <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-01iwlwifi: mvm: byte-swap constant instead of variableJohannes Berg1-1/+1
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 <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-01iwlwifi: mvm: check family instead of new TX API for workaroundsJohannes Berg2-2/+4
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 <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-01iwlwifi: mvm: add and use iwl_mvm_has_unified_ucode()Johannes Berg3-5/+11
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 <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-01iwlwifi: fw api: fix various kernel-doc warningsJohannes Berg2-4/+21
Signed-off-by: Johannes Berg <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-01iwlwifi: reorganize firmware APIJohannes Berg46-2977/+4111
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 <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-01iwlwifi: refactor firmware debug codeJohannes Berg18-413/+563
Split out the firmware debug code to be more general, so that it can be used by different subdrivers. Signed-off-by: Johannes Berg <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-01iwlwifi: track current firmware image in common codeJohannes Berg9-42/+52
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 <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-01iwlwifi: refactor shared mem parsingJohannes Berg9-202/+275
Refactor the shared memory command parsing into common code. Signed-off-by: Johannes Berg <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-01iwlwifi: refactor out paging codeJohannes Berg9-402/+572
Refactor the paging code from mvm to be used by different opmodes. Signed-off-by: Johannes Berg <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-01iwlwifi: add the new 9000 series PCI IDsTzipi Peres1-0/+20
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 <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-01iwlwifi: mvm: set the RTS_MIMO_PROT bit in flag mask when sending sta to fwNaftali Goldstein1-1/+2
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 <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-01iwlwifi: fix fw_pre_next_step to apply also for C stepHaim Dreyfuss3-13/+14
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 <[email protected]> Signed-off-by: Luca Coelho <[email protected]>
2017-08-01iwlwifi: mvm: rs: fix TLC statistics collectionGregory Greenman1-4/+4
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 <[email protected]> Signed-off-by: Luca Coelho <[email protected]>