Revision tags: v4.9 |
|
#
13a3a390 |
| 29-Nov-2016 |
Sara Sharon <sara.sharon@intel.com> |
iwlwifi: pcie: alloc queues dynamically
Change queue allocation to be dynamic. On transport init only the command queue is being allocated. Other queues are allocated on demand. This is due to the h
iwlwifi: pcie: alloc queues dynamically
Change queue allocation to be dynamic. On transport init only the command queue is being allocated. Other queues are allocated on demand. This is due to the huge amount of queues we will soon enable (512) and as a preparation for TX Virtual Queue Manager feature (TVQM), where firmware will assign the actual queue number on demand. This includes also allocation of the byte count table per queue and not as a contiguous chunk of memory.
Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
b2a3b1c1 |
| 11-Dec-2016 |
Sara Sharon <sara.sharon@intel.com> |
iwlwifi: pcie: prepare for dynamic queue allocation
In a000 transport we will allocate queues dynamically. Right now queue are allocated as one big chunk of memory and accessed as such. The dynamic
iwlwifi: pcie: prepare for dynamic queue allocation
In a000 transport we will allocate queues dynamically. Right now queue are allocated as one big chunk of memory and accessed as such. The dynamic allocation of the queues will require accessing the queues as pointers. In order to keep simplicity of pre-a000 tx queues handling, keep allocating and freeing the memory in the same style, but move to access the queues in the various functions as individual pointers. Dynamic allocation for the a000 devices will be in a separate patch.
Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
ca60da2e |
| 08-Dec-2016 |
Sara Sharon <sara.sharon@intel.com> |
iwlwifi: pcie: support host commands in new transport
Code is basically the same, with a cleanups of old narrow host command, ampg workarounds, some cosmetic stuff, and usage of TFH functions when a
iwlwifi: pcie: support host commands in new transport
Code is basically the same, with a cleanups of old narrow host command, ampg workarounds, some cosmetic stuff, and usage of TFH functions when accessing TFD queues. This enables also the cleanup of iwl_pcie_tfd_set_tb() since now it won't be called anywhere in the a000 data path
Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
066fd29a |
| 24-Jan-2017 |
Sara Sharon <sara.sharon@intel.com> |
iwlwifi: pcie: cleanup old transport code from gen2
Cleanup code that is irrelevant for a000 devices.
Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@i
iwlwifi: pcie: cleanup old transport code from gen2
Cleanup code that is irrelevant for a000 devices.
Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
Revision tags: openbmc-4.4-20161121-1, v4.4.33, v4.4.32, v4.4.31 |
|
#
ab6c6445 |
| 01-Nov-2016 |
Sara Sharon <sara.sharon@intel.com> |
iwlwifi: pcie: copy TX functions to new transport
This is just a copy-paste in order to make changes tracking easier.
Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <
iwlwifi: pcie: copy TX functions to new transport
This is just a copy-paste in order to make changes tracking easier.
Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
Revision tags: v4.4.30, v4.4.29, v4.4.28, v4.4.27, v4.7.10, openbmc-4.4-20161021-1, v4.7.9, v4.4.26, v4.7.8, v4.4.25, v4.4.24, v4.7.7, v4.8, v4.4.23, v4.7.6 |
|
#
6b35ff91 |
| 29-Sep-2016 |
Sara Sharon <sara.sharon@intel.com> |
iwlwifi: pcie: introduce a000 TX queues management
In a000 devices the TX handling is different in a few ways: * Queues are allocated dynamically * DQA is enabled by default * Driver shouldn't acces
iwlwifi: pcie: introduce a000 TX queues management
In a000 devices the TX handling is different in a few ways: * Queues are allocated dynamically * DQA is enabled by default * Driver shouldn't access TFH registers - ucode configures it all in SCD_QUEUE_CFG command
Support all this in a new API with op mode, where op mode sends the command, transport will allocate the queue dynamically, fill in DMA properties, send the command to FW and get the ID back. Current implementation only sets the new transport API and fills the DMA properties. Future patches will complete the other parts.
Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
eda50cde |
| 28-Sep-2016 |
Sara Sharon <sara.sharon@intel.com> |
iwlwifi: pcie: add context information support
Context information structure is going to be used in a000 devices for firmware self init.
The self init includes firmware self loading from DRAM by RO
iwlwifi: pcie: add context information support
Context information structure is going to be used in a000 devices for firmware self init.
The self init includes firmware self loading from DRAM by ROM. This means the TFH relevant firmware loading can be cleaned up.
The firmware loading includes the paging memory as well, so op mode can stop initializing the paging and sending the DRAM_BLOCK_CMD.
Firmware is doing RFH, TFH and SCD configuration, while driver only fills the required configurations and addresses in the context information structure.
The only remaining access to RFH is the write pointer, which is updated upon alive interrupt after FW configured the RFH.
Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
7abf6fde |
| 09-Jan-2017 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: pcie: use iwl_get_dma_hi_addr()
Use iwl_get_dma_hi_addr() instead of open-coding it.
Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel
iwlwifi: pcie: use iwl_get_dma_hi_addr()
Use iwl_get_dma_hi_addr() instead of open-coding it.
Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
de74c455 |
| 29-Sep-2016 |
Sara Sharon <sara.sharon@intel.com> |
iwlwifi: pcie: remove the active field in struct iwl_txq
We already have queue_used in the transport - we can use it instead.
Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca
iwlwifi: pcie: remove the active field in struct iwl_txq
We already have queue_used in the transport - we can use it instead.
Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
b9f91620 |
| 28-Sep-2016 |
Sara Sharon <sara.sharon@intel.com> |
Revert "iwlwifi: introduce trans API to get byte count table"
This reverts commit 8aacf4b73fe8 ("iwlwifi: introduce trans API to get byte count table"). The commit is not needed as a better approach
Revert "iwlwifi: introduce trans API to get byte count table"
This reverts commit 8aacf4b73fe8 ("iwlwifi: introduce trans API to get byte count table"). The commit is not needed as a better approach will be taken.
Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
afb84431 |
| 03-Jan-2017 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: pcie: print less data upon firmware crash
We don't need to print so much data in the kernel log. Limit the data to be printed to the queue that actually got stuck in case of a TFD queue han
iwlwifi: pcie: print less data upon firmware crash
We don't need to print so much data in the kernel log. Limit the data to be printed to the queue that actually got stuck in case of a TFD queue hang, and stop dumping all the CSR and FH registers. Over the course of time, the CSR and FH values haven't proven themselves to be really useful for debugging, and they are now in the firmware dump anyway.
This comes as a preparation to the addition of more data required to be printed by the firwmare team.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
05e5a7e5 |
| 02-Dec-2016 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: mvm/pcie: adjust A-MSDU tx_cmd length in PCIe
Instead of setting the tx_cmd length in the mvm code, which is complicated by the fact that DQA may want to temporarily store the SKB on the si
iwlwifi: mvm/pcie: adjust A-MSDU tx_cmd length in PCIe
Instead of setting the tx_cmd length in the mvm code, which is complicated by the fact that DQA may want to temporarily store the SKB on the side, adjust the length in the PCIe code which also knows about this since it's responsible for duplicating all those headers that are account for in this code.
As the PCIe code already relies on the tx_cmd->len field, this doesn't really introduce any new dependencies.
To make this possible we need to move the memcpy() of the TX command until after it was updated.
This does even simplify the code though, since the PCIe code already does a lot of manipulations to build A-MSDUs correctly and changing the length becomes a simple operation to see how much was added/removed, rather than predicting it.
Fixes: 24afba7690e4 ("iwlwifi: mvm: support bss dynamic alloc/dealloc of queues") Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
a52a8a4d |
| 01-Dec-2016 |
Zhang Shengju <zhangshengju@cmss.chinamobile.com> |
iwlwifi: use reset to set transport header
Since offset is zero, it's not necessary to use set function. Reset function is straightforward, and will remove the unnecessary add operation in set funct
iwlwifi: use reset to set transport header
Since offset is zero, it's not necessary to use set function. Reset function is straightforward, and will remove the unnecessary add operation in set function.
Signed-off-by: Zhang Shengju <zhangshengju@cmss.chinamobile.com> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
Revision tags: v4.7.5, v4.4.22 |
|
#
faead41c |
| 22-Sep-2016 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: pcie: mark command queue lock with separate lockdep class
Emmanuel reports that when CMD_WANT_ASYNC_CALLBACK is used by mvm, the callback will be called with the command queue lock held, an
iwlwifi: pcie: mark command queue lock with separate lockdep class
Emmanuel reports that when CMD_WANT_ASYNC_CALLBACK is used by mvm, the callback will be called with the command queue lock held, and mvm will try to stop all (other) TX queues, which acquires their locks - this caused a false lockdep recursive locking report.
Suppress this report by marking the command queue lock with a new, separate, lock class so lockdep can tell the difference between the two types of queues.
Fixes: 156f92f2b471 ("iwlwifi: block the queues when we send ADD_STA for uAPSD") Reported-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
Revision tags: v4.4.21, v4.7.4 |
|
#
cc2f41f8 |
| 09-Sep-2016 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: pcie: avoid variable shadowing in TFD helpers
The various TFD/TB helpers have two code paths depending on the type of TFD supported, with variable shadowing due to the new if branches. Move
iwlwifi: pcie: avoid variable shadowing in TFD helpers
The various TFD/TB helpers have two code paths depending on the type of TFD supported, with variable shadowing due to the new if branches. Move the fall-through code into else branches to avoid variable shadowing. While doing so, rename some of the variables and do some other cleanups (like removing void * casts of void * pointers.)
Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
Revision tags: v4.7.3, v4.4.20, v4.7.2, v4.4.19, openbmc-4.4-20160819-1, v4.7.1, v4.4.18 |
|
#
5b88792c |
| 15-Aug-2016 |
Sara Sharon <sara.sharon@intel.com> |
iwlwifi: move to wide ID for all commands
Due to firmware design considerations, move to wide ID for all commands.
Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luc
iwlwifi: move to wide ID for all commands
Due to firmware design considerations, move to wide ID for all commands.
Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
Revision tags: v4.4.17, openbmc-4.4-20160804-1, v4.4.16, v4.7, openbmc-4.4-20160722-1, openbmc-20160722-1, openbmc-20160713-1, v4.4.15, v4.6.4 |
|
#
bb98ecd4 |
| 07-Jul-2016 |
Sara Sharon <sara.sharon@intel.com> |
iwlwifi: pcie: merge iwl_queue and iwl_txq
The original intent was to have the general iwl_queue shared between RX and TX queues, but it is not the actual status. Since it is not shared with any str
iwlwifi: pcie: merge iwl_queue and iwl_txq
The original intent was to have the general iwl_queue shared between RX and TX queues, but it is not the actual status. Since it is not shared with any struct but iwl_txq, it adds unnecessary complexity. Merge those structs.
Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
4fe10bc6 |
| 04-Jul-2016 |
Sara Sharon <sara.sharon@intel.com> |
iwlwifi: change byte count table for a000 devices
Since TFD was enlarged to 256 bytes, the fetch of the TFD itself is very expensive. To make DRAM to SRAM more efficient, bits 12-13 will indicate th
iwlwifi: change byte count table for a000 devices
Since TFD was enlarged to 256 bytes, the fetch of the TFD itself is very expensive. To make DRAM to SRAM more efficient, bits 12-13 will indicate the number of 64 byte chunks that should be transferred to SRAM.
Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
6983ba69 |
| 26-Jun-2016 |
Sara Sharon <sara.sharon@intel.com> |
iwlwifi: pcie: assign and access a000 TFD & TBs
Previous patch introduced the new formats. This patch allocates the new structures and adjusts code accordingly.
Signed-off-by: Sara Sharon <sara.sha
iwlwifi: pcie: assign and access a000 TFD & TBs
Previous patch introduced the new formats. This patch allocates the new structures and adjusts code accordingly.
Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
8aacf4b7 |
| 04-Jul-2016 |
Sara Sharon <sara.sharon@intel.com> |
iwlwifi: introduce trans API to get byte count table
In future HW the byte count table address will be configured by ucode per queue. Add API to expose the byte count table to the opmode
Signed-off
iwlwifi: introduce trans API to get byte count table
In future HW the byte count table address will be configured by ucode per queue. Add API to expose the byte count table to the opmode
Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
Revision tags: v4.6.3, v4.4.14 |
|
#
3cd1980b |
| 23-Jun-2016 |
Sara Sharon <sara.sharon@intel.com> |
iwlwifi: pcie: introduce new tfd and tb formats
New hardware supports bigger TFDs and TBs. Introduce the new formats and adjust defines and code relying on old format. Changing the actual TFD alloca
iwlwifi: pcie: introduce new tfd and tb formats
New hardware supports bigger TFDs and TBs. Introduce the new formats and adjust defines and code relying on old format. Changing the actual TFD allocation is trickier and deferred to the next patch.
Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
ae79785f |
| 30-Jun-2016 |
Sara Sharon <sara.sharon@intel.com> |
iwlwifi: pcie: refrain from SCD accesses
Up till now we accessed SCD configuration only for initial configuration and for enabling command queue. For a000 generation the command queue is open by def
iwlwifi: pcie: refrain from SCD accesses
Up till now we accessed SCD configuration only for initial configuration and for enabling command queue. For a000 generation the command queue is open by default and firmware configures the rest. No driver SCD accesses are expected. Make sure this is the case.
Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
38398efb |
| 30-Jun-2016 |
Sara Sharon <sara.sharon@intel.com> |
iwlwifi: pcie: centralize SCD status logging
Centralize the logging of SCD status. The motivation is that for a000 devices we will have new SCD HW, but this code was duplicate anyway, so it is a pro
iwlwifi: pcie: centralize SCD status logging
Centralize the logging of SCD status. The motivation is that for a000 devices we will have new SCD HW, but this code was duplicate anyway, so it is a proper cleanup.
Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
e22744af |
| 22-Jun-2016 |
Sara Sharon <sara.sharon@intel.com> |
iwlwifi: pcie: initialize a000 device's TFD table
For a000 device the FH was replaced by the TFH. This is the first patch in a series introducing the changes stemming from this change. This patch in
iwlwifi: pcie: initialize a000 device's TFD table
For a000 device the FH was replaced by the TFH. This is the first patch in a series introducing the changes stemming from this change. This patch initializes the TFQ queue table with the new 64 bit register and the relevant TFH configuration registers.
Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
8de437c7 |
| 09-Jun-2016 |
Sara Sharon <sara.sharon@intel.com> |
iwlwifi: pcie: generalize and increase the size of scratchbuf
Currently the scratch buffer is set to 16 bytes and indicates the size of the bi-directional DMA. However, next HW generation will perfo
iwlwifi: pcie: generalize and increase the size of scratchbuf
Currently the scratch buffer is set to 16 bytes and indicates the size of the bi-directional DMA. However, next HW generation will perform additional offloading, and will write the result in the key location of the TX command, so the size of the bi-directional consistent memory should grow accordingly - increase it to 40. Generalize the code to get rid of now irrelevant scratch references.
Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|