#
0d52497a |
| 06-Jun-2019 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
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>
|
#
ba7136f3 |
| 10-Jun-2019 |
Alex Malamud <alex.malamud@intel.com> |
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 s
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>
show more ...
|
#
87e7e25a |
| 21-Jul-2019 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: don't unmap as page memory that was mapped as single
In order to remember how to unmap a memory (as single or as page), we maintain a bit per Transmit Buffer (TBs) in the meta data (structu
iwlwifi: don't unmap as page memory that was mapped as single
In order to remember how to unmap a memory (as single or as page), we maintain a bit per Transmit Buffer (TBs) in the meta data (structure iwl_cmd_meta). We maintain a bitmap: 1 bit per TB. If the TB is set, we will free the memory as a page. This bitmap was never cleared. Fix this.
Cc: stable@vger.kernel.org Fixes: 3cd1980b0cdf ("iwlwifi: pcie: introduce new tfd and tb formats") Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
show more ...
|
#
718a8b23 |
| 05-Mar-2019 |
Shaul Triebitz <shaul.triebitz@intel.com> |
iwlwifi: unite macros with same meaning
TFD_*_SLOTS and IWL_*_QUEUE_SIZE both define the TX queue size (number of TFDs). Get rid of TFD_*_SLOTS and use only IWL_*_QUEUE_SIZE.
Signed-off-by: Shaul T
iwlwifi: unite macros with same meaning
TFD_*_SLOTS and IWL_*_QUEUE_SIZE both define the TX queue size (number of TFDs). Get rid of TFD_*_SLOTS and use only IWL_*_QUEUE_SIZE.
Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
c30aef01 |
| 27-Feb-2019 |
Shaul Triebitz <shaul.triebitz@intel.com> |
iwlwifi: set 512 TX queue slots for AX210 devices
AX210 devices support 256 BA (256 MPDUs in an AMPDU). The firmware requires that the number of TFDs will be minimum twice as big as the BA size (2 *
iwlwifi: set 512 TX queue slots for AX210 devices
AX210 devices support 256 BA (256 MPDUs in an AMPDU). The firmware requires that the number of TFDs will be minimum twice as big as the BA size (2 * 256 = 512).
Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
d1967ce6 |
| 10-Feb-2019 |
Shahar S Matityahu <shahar.s.matityahu@intel.com> |
iwlwifi: add sync_nmi to trans ops
Allow modules from outside pcie to call sync_nmi.
Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@inte
iwlwifi: add sync_nmi to trans ops
Allow modules from outside pcie to call sync_nmi.
Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
2ae48edc |
| 25-Dec-2018 |
Sara Sharon <sara.sharon@intel.com> |
iwlwifi: pcie: fix TX while flushing
When flushing TX queues no new TX should go into the system. However, in the following scenario we get TX: 1. Queues are stopped and there are packets in overflo
iwlwifi: pcie: fix TX while flushing
When flushing TX queues no new TX should go into the system. However, in the following scenario we get TX: 1. Queues are stopped and there are packets in overflow queue 2. Station is removed and flush begins 3. Flush empties space, and reclaim path TXes SKB from overflow queue.
Note that the fact the queues are stopped during the process doesn't matter - the packet will be TXed since the TX path doesn't care if TX queues are stopped or not, just if there is space in the queue, which there is, since we just freed a packet.
A fix here is rather complicated, since the flow is very racy.
Change code not to warn if we are TXing from overflow TX. In case there is TX from both overflow TX and TX path we will miss a warning we optimally had, but we can live with that.
Make sure we don't return before overflow queue is empty, otherwise we will think queues are empty, but they will be refilled, resulting with assert.
Signed-off-by: Sara Sharon <sara.sharon@intel.com> Fixes: 3955525d5d17 ("iwlwifi: pcie: buffer packets to avoid overflowing Tx queues") Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
ff911dca |
| 19-Nov-2018 |
Shaul Triebitz <shaul.triebitz@intel.com> |
iwlwifi: introduce device family AX210
Add new device family AX210. Make the needed changes for this family.
Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com> Signed-off-by: Luca Coelho <luc
iwlwifi: introduce device family AX210
Add new device family AX210. Make the needed changes for this family.
Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
b8a7547d |
| 05-Dec-2018 |
Shahar S Matityahu <shahar.s.matityahu@intel.com> |
iwlwifi: fix send hcmd timeout recovery flow
Both iwl_trans_fw_error and iwl_force_nmi initiate async recovery flow. Calling them both is redundant and causing a race.
Solve this by removing the ca
iwlwifi: fix send hcmd timeout recovery flow
Both iwl_trans_fw_error and iwl_force_nmi initiate async recovery flow. Calling them both is redundant and causing a race.
Solve this by removing the call to iwl_trans_fw_error.
Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com> Fixes: cfadc3ffccd5 ("iwlwifi: pcie: stop the firmware when we restart it") Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
cefec29e |
| 24-Oct-2018 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: pcie: align licensing to dual GPL/BSD
These files have a long history of code changes, but analysing the remaining code leads to having only a few changes that are not already owned by Inte
iwlwifi: pcie: align licensing to dual GPL/BSD
These files have a long history of code changes, but analysing the remaining code leads to having only a few changes that are not already owned by Intel, notably from - Andy Lutomirski <luto@amacapital.net> - Joonwoo Park <joonwpark81@gmail.com> - Kirtika Ruchandani <kirtika@chromium.org> - Rajat Jain <rajatja@google.com> - Stanislaw Gruszka <sgruszka@redhat.com> remaining in the code today.
Note that - I myself was working for Intel and for any possibly code that might be before my employment there give permission - Wizery employees were working for Intel
More specifically, we identified the following commits that (partially may) remain today:
25c03d8e8c13 Joonwoo Park <joonwpark81@gmail.com> ("iwlwifi: do not schedule tasklet when rcv unused irq") f36d04abe684 Stanislaw Gruszka <sgruszka@redhat.com> ("iwlwifi: use dma_alloc_coherent") 387f3381f732 Stanislaw Gruszka <sgruszka@redhat.com> ("iwlwifi: fix dma mappings and skbs leak") 2624e96ce16b Stanislaw Gruszka <sgruszka@redhat.com> ("iwlwifi: fix possible data overwrite in hcmd callback") bfe4b80e9f73 Stanislaw Gruszka <sgruszka@redhat.com> ("iwlwifi: always check if got h/w access before write") d536c32b45d2 Andy Lutomirski <luto@amacapital.net> ("iwlwifi: pcie: log when waking the NIC for hcmd submission fails") a6d24fad00d9 Rajat Jain <rajatja@google.com> ("iwlwifi: pcie: dump registers when HW becomes inaccessible") fb12777ab59b Kirtika Ruchandani <kirtika@chromium.org> ("iwlwifi: Add more call-sites for pcie reg dumper") 3a73a30049f2 Stanislaw Gruszka <sgruszka@redhat.com> ("iwlwifi: cleanup/fix memory barriers") aa5affbacb24 Stanislaw Gruszka <sgruszka@redhat.com> ("iwlwifi: dump stack when fail to gain access to the device")
Align the licenses with their permission to clean up and to make it all identical.
CC: Joonwoo Park <joonwpark81@gmail.com> CC: Stanislaw Gruszka <sgruszka@redhat.com> CC: Andy Lutomirski <luto@amacapital.net> CC: Rajat Jain <rajatja@google.com> CC: Kirtika Ruchandani <kirtika@chromium.org> Acked-by: Johannes Berg <johannes@sipsolutions.net> Acked-by: Kirtika Ruchandani <kirtika@chromium.org> Acked-by: Stanislaw Gruszka <sgruszka@redhat.com> Acked-by: Joonwoo Park <joonwpark81@gmail.com> Acked-by: Rajat Jain <rajatja@google.com> Acked-by: Andy Lutomirski <luto@kernel.org> Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
c1f33442 |
| 22-Oct-2018 |
Liad Kaufman <liad.kaufman@intel.com> |
iwlwifi: memcpy from dev_cmd and not dev_cmd->hdr
Klocwork complains about copying from dev_cmd->hdr if copying more than 4 bytes since it means part of the copy is from the next field. This isn't a
iwlwifi: memcpy from dev_cmd and not dev_cmd->hdr
Klocwork complains about copying from dev_cmd->hdr if copying more than 4 bytes since it means part of the copy is from the next field. This isn't a real bug, but for not failing Klocwork next time - fix this.
Signed-off-by: Liad Kaufman <liad.kaufman@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
36817294 |
| 27-Aug-2018 |
Sara Sharon <sara.sharon@intel.com> |
iwlwifi: pcie: lock txq a bit later in reclaim code
In reclaim code, we don't need to take the queue lock for waking the queue. The code section is executed only when the tx path is stopped, and sin
iwlwifi: pcie: lock txq a bit later in reclaim code
In reclaim code, we don't need to take the queue lock for waking the queue. The code section is executed only when the tx path is stopped, and since the reclaim path is not executed in parallel to itself, no one can update the queue pointers, and accessing them is safe without a lock.
Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
show more ...
|
#
0916224e |
| 16-Aug-2018 |
Sara Sharon <sara.sharon@intel.com> |
iwlwifi: pcie: fix erroneous print
When removing the driver, the following flow can happen: 1. host command is in progress, for example at index 68. 2. RX interrupt is received with the response. 3.
iwlwifi: pcie: fix erroneous print
When removing the driver, the following flow can happen: 1. host command is in progress, for example at index 68. 2. RX interrupt is received with the response. 3. Before it is processed, the remove flow kicks in, and calls iwl_pcie_txq_unmap. The function cleans all DMA, and promotes the read pointer to 69. 4. RX thread proceeds with the processing, and is calling iwl_pcie_cmdq_reclaim, which will print this error: iwl_pcie_cmdq_reclaim: Read index for DMA queue txq id (0), index 4 is out of range [0-256] 69 69.
Detect this situation, and avoid the print. Change it to warning while at it, to make such issues more noticeable in the future.
Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
Revision tags: v4.17.11, v4.17.10, v4.17.9, v4.17.8, v4.17.7, v4.17.6, v4.17.5 |
|
#
bf77ee2e |
| 03-Jul-2018 |
Sara Sharon <sara.sharon@intel.com> |
iwlwifi: trace: change trace to trace one TB at a time
Split TX tracing to be per TB. This is needed now that AMSDUs can be sent and skb can be larger than trace limit.
Signed-off-by: Sara Sharon <
iwlwifi: trace: change trace to trace one TB at a time
Split TX tracing to be per TB. This is needed now that AMSDUs can be sent and skb can be larger than trace limit.
Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
Revision tags: v4.17.4, v4.17.3 |
|
#
6e00a237 |
| 18-Jun-2018 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: pcie: check iwl_pcie_txq_build_tfd() return value
If we use the iwl_pcie_txq_build_tfd() return value for BIT(), we should validate that it's not going to be negative, so do the check and b
iwlwifi: pcie: check iwl_pcie_txq_build_tfd() return value
If we use the iwl_pcie_txq_build_tfd() return value for BIT(), we should validate that it's not going to be negative, so do the check and bail out if we hit an error. We shouldn't, as we check if it'll fit beforehand, but better be safe.
Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
Revision tags: v4.17.2, v4.17.1, v4.17 |
|
#
0044f171 |
| 01-Jun-2018 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: pcie: support transmitting SKBs with fraglist
We want to be able to build A-MSDUs in higher layers, e.g. by xmit_more, so support transmitting SKBs with fraglist to use it for such.
Signed
iwlwifi: pcie: support transmitting SKBs with fraglist
We want to be able to build A-MSDUs in higher layers, e.g. by xmit_more, so support transmitting SKBs with fraglist to use it for such.
Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
81f0c661 |
| 05-Jun-2018 |
Golan Ben Ami <golan.ben.ami@intel.com> |
iwlwifi: pcie: fit reclaim msg to MAX_MSG_LEN
Today, the length of a debug message in iwl_trans_pcie_reclaim may pass the MAX_MSG_LEN, which is 110. An example for this kind of message is:
'iwl_tra
iwlwifi: pcie: fit reclaim msg to MAX_MSG_LEN
Today, the length of a debug message in iwl_trans_pcie_reclaim may pass the MAX_MSG_LEN, which is 110. An example for this kind of message is:
'iwl_trans_pcie_reclaim: Read index for DMA queue txq id (2), last_to_free 65535 is out of range [0-65536] 2 2.'
Cut the message a bit so it will fit the allowed MAX_MSG_LEN.
Signed-off-by: Golan Ben Ami <golan.ben.ami@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
bb03927e |
| 01-Jun-2018 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: pcie: tx: pull tracing out of iwl_fill_data_tbs()
This will allow us to reuse the function later for adding fraglist SKBs to the TFD.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
iwlwifi: pcie: tx: pull tracing out of iwl_fill_data_tbs()
This will allow us to reuse the function later for adding fraglist SKBs to the TFD.
Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
7d50d76e |
| 01-Jun-2018 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: pcie: tx: unify TFD unmapping
When anything fails, we unmap the whole TFD in three different places scattered throughout the code. Unify this to a single place.
Signed-off-by: Johannes Ber
iwlwifi: pcie: tx: unify TFD unmapping
When anything fails, we unmap the whole TFD in three different places scattered throughout the code. Unify this to a single place.
Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
754f890a |
| 24-Aug-2018 |
Luca Coelho <luciano.coelho@intel.com> |
iwlwifi: remove all occurrences of the FSF address paragraph
The Free Software Foundation address is superfluous and causes checkpatch to issue a warning when present. Remove all paragraphs with FS
iwlwifi: remove all occurrences of the FSF address paragraph
The Free Software Foundation address is superfluous and causes checkpatch to issue a warning when present. Remove all paragraphs with FSF's address to prevent that.
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
f60c9e59 |
| 01-May-2018 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: improve the flow when a NIC is disconnected
When the NIC is disconnected, we just can't do anything besides seeking for help from the bus driver. Dumping the device's memory is not necessa
iwlwifi: improve the flow when a NIC is disconnected
When the NIC is disconnected, we just can't do anything besides seeking for help from the bus driver. Dumping the device's memory is not necessary and just bloats the logs with unusable data. Moreover, asking mac80211 to restart the hardware is also useless. Bypass all this.
Also, use the STATUS_TRANS_DEAD status bit instead of a bool inside the transport layer. The advantage of this is that now, the transport and the op_mode can know what is the situation and bypass the useless recovery steps mentioned above.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
2b3fae66 |
| 19-Apr-2018 |
Matt Chen <matt.chen@intel.com> |
iwlwifi: pcie: avoid unnecessary work if NIC is disconnected
When the NIC is disconnected from PCI bus, we are not able to access it anymore. Check the status to avoid some unnecessary work so can i
iwlwifi: pcie: avoid unnecessary work if NIC is disconnected
When the NIC is disconnected from PCI bus, we are not able to access it anymore. Check the status to avoid some unnecessary work so can improve the performance. It will help to make PCI bus rescan to bring back the device much faster.
The real test is able to improve 7 seconds.
[w/o patch] It takes around 9 seconds .. 2018-04-20T01:22:39.691929-07:00 WARNING kernel: [ 66.335881] Timeout waiting for hardware access (CSR_GP_CNTRL 0xffffffff) .. 2018-04-20T01:22:48.101094-07:00 INFO kernel: [ 74.747364] iwlwifi 0000:01:00.0: loaded firmware version 29.610311.0 op_mode iwlmvm
[w/a patch] It takes about 2 seconds. .. 2018-04-20T01:18:16.454087-07:00 WARNING kernel: [ 75.966860] Timeout waiting for hardware access (CSR_GP_CNTRL 0xffffffff) .. 2018-04-20T01:18:18.602717-07:00 INFO kernel: [ 78.116132] iwlwifi 0000:01:00.0: loaded firmware version 29.610311.0 op_mode iwlmvm ..
Fixes: 49564a806fc5 ("iwlwifi: pcie: remove non-responsive device") Signed-off-by: Matt Chen <matt.chen@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
4290eaad |
| 11-Apr-2018 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: remove dump_regs() from transport ops
This is used only within PCIe, and there's no reason to go through the transport methods for a function call within PCIe itself. Remove the dump_regs()
iwlwifi: remove dump_regs() from transport ops
This is used only within PCIe, and there's no reason to go through the transport methods for a function call within PCIe itself. Remove the dump_regs() method and call the function directly.
Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
Revision tags: v4.16 |
|
#
89d5e833 |
| 25-Mar-2018 |
Golan Ben Ami <golan.ben.ami@intel.com> |
iwlwifi: pcie: make non-static hcmd and rx code
Allow other device generations to use the utilities that are used to send and reclaim host commands and to allocate rx, by making it non-static.
Sign
iwlwifi: pcie: make non-static hcmd and rx code
Allow other device generations to use the utilities that are used to send and reclaim host commands and to allocate rx, by making it non-static.
Signed-off-by: Golan Ben Ami <golan.ben.ami@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
7b3e42ea |
| 04-Feb-2018 |
Golan Ben Ami <golan.ben.ami@intel.com> |
iwlwifi: support multiple tfd queue max sizes for different devices
22560 devices tfd queue max size is 2^16. Allow a configurable max size in the driver for supporting different devices.
Signed-of
iwlwifi: support multiple tfd queue max sizes for different devices
22560 devices tfd queue max size is 2^16. Allow a configurable max size in the driver for supporting different devices.
Signed-off-by: Golan Ben Ami <golan.ben.ami@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|