#
ed3e4c6d |
| 20-May-2019 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: fix RF-Kill interrupt while FW load for gen2 devices Newest devices have a new firmware load mechanism. This mechanism is called the context info. It means that the driver d
iwlwifi: fix RF-Kill interrupt while FW load for gen2 devices Newest devices have a new firmware load mechanism. This mechanism is called the context info. It means that the driver doesn't need to load the sections of the firmware. The driver rather prepares a place in DRAM, with pointers to the relevant sections of the firmware, and the firmware loads itself. At the end of the process, the firmware sends the ALIVE interrupt. This is different from the previous scheme in which the driver expected the FH_TX interrupt after each section being transferred over the DMA. In order to support this new flow, we enabled all the interrupts. This broke the assumption that we have in the code that the RF-Kill interrupt can't interrupt the firmware load flow. Change the context info flow to enable only the ALIVE interrupt, and re-enable all the other interrupts only after the firmware is alive. Then, we won't see the RF-Kill interrupt until then. Getting the RF-Kill interrupt while loading the firmware made us kill the firmware while it is loading and we ended up dumping garbage instead of the firmware state. Re-enable the ALIVE | RX interrupts from the ISR when we get the ALIVE interrupt to be able to get the RX interrupt that comes immediately afterwards for the ALIVE notification. This is needed for non MSI-X only. Cc: stable@vger.kernel.org Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
6c7f7087 |
| 19-May-2019 |
Shahar S Matityahu <shahar.s.matityahu@intel.com> |
iwlwifi: dbg: debug recording stop and restart command remove The 0xF6 command used to start and stop the recording from 22560 devices was removed. This is causing an assert when the dri
iwlwifi: dbg: debug recording stop and restart command remove The 0xF6 command used to start and stop the recording from 22560 devices was removed. This is causing an assert when the driver tries to alter the recording state. Remove the use of the command. Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@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.
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 ...
|
#
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-
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 ...
|
#
c96b5eec |
| 10-Dec-2018 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: refactor NIC init sequence The typical sequence of setting INIT_DONE and then waiting for clock stabilisation is going to need a new workarounds, so first of all refactor it
iwlwifi: refactor NIC init sequence The typical sequence of setting INIT_DONE and then waiting for clock stabilisation is going to need a new workarounds, so first of all refactor it. Signed-off-by: Johannes Berg <johannes.berg@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, v4.17.4, v4.17.3, v4.17.2, v4.17.1, v4.17 |
|
#
5cfe79c8 |
| 17-May-2018 |
Sara Sharon <sara.sharon@intel.com> |
iwlwifi: fw: stop and start debugging using host command In new devices, access to periphery is forbidden. Send instead host command to start and stop debugging. Memory allocati
iwlwifi: fw: stop and start debugging using host command In new devices, access to periphery is forbidden. Send instead host command to start and stop debugging. Memory allocation is written in context info, but in case we need to update it there is a dedicated command. Add definitions, currently unused, of the new command. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
d25eec30 |
| 17-May-2018 |
Sara Sharon <sara.sharon@intel.com> |
iwlwifi: fw: add a restart FW debug function Move the restart FW debug code to a function. This avoids code duplication and lays the infra to support the new start and stop host comm
iwlwifi: fw: add a restart FW debug function Move the restart FW debug code to a function. This avoids code duplication and lays the infra to support the new start and stop host commands in some future devices. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
ae17404e |
| 03-May-2018 |
Shahar S Matityahu <shahar.s.matityahu@intel.com> |
iwlwifi: avoid code duplication in stopping fw debug data recording Make all FW debug data stop recording flows to use iwl_fw_dbg_stop_recording function instead of writing to FW reg
iwlwifi: avoid code duplication in stopping fw debug data recording Make all FW debug data stop recording flows to use iwl_fw_dbg_stop_recording function instead of writing to FW registers directly. Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
Revision tags: v4.16 |
|
#
b6fe2757 |
| 22-Mar-2018 |
Golan Ben Ami <golan.ben.ami@intel.com> |
iwlwifi: pcie: make gen2 of apm_init non-static This will allow using the same init in future generations. Signed-off-by: Golan Ben Ami <golan.ben.ami@intel.com> Signed-off-by:
iwlwifi: pcie: make gen2 of apm_init non-static This will allow using the same init in future generations. Signed-off-by: Golan Ben Ami <golan.ben.ami@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
9b3089bd |
| 25-Mar-2018 |
Golan Ben Ami <golan.ben.ami@intel.com> |
iwlwifi: pcie: allow using tx init for other queues but the command queue We would like to allow using tx init code for other queues but the command queue - for newer devices. S
iwlwifi: pcie: allow using tx init for other queues but the command queue We would like to allow using tx init code for other queues but the command queue - for newer devices. Signed-off-by: Golan Ben Ami <golan.ben.ami@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
2ee82402 |
| 11-Feb-2018 |
Golan Ben Ami <golan.ben.ami@intel.com> |
iwlwifi: pcie: support context information for 22560 devices Context information structure was added to 22000 devices for firmware self init. In the next generation of devices t
iwlwifi: pcie: support context information for 22560 devices Context information structure was added to 22000 devices for firmware self init. In the next generation of devices the context information changes significantly, and the original context information is divided roughly to three data structures: context information gen3, prph information and prph scratch. In addition, the init flow changes so the firmware is loaded by the IML, and so we must allocate the IML on the DRAM and give the ROM the IML's address before kicking the firmware's self init. Signed-off-by: Golan Ben Ami <golan.ben.ami@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
Revision tags: v4.15, v4.13.16, v4.14 |
|
#
a8cbb46f |
| 22-Oct-2017 |
Golan Ben Ami <golan.ben.ami@intel.com> |
iwlwifi: allow different csr flags for different device families Different device families may have different flag values for passing a message to the fw (i.e. SW_RESET). In order to
iwlwifi: allow different csr flags for different device families Different device families may have different flag values for passing a message to the fw (i.e. SW_RESET). In order to keep the code readable, and avoid conditioning upon the family, store a value for each flag, which indicates the bit that needs to be enabled. Signed-off-by: Golan Ben Ami <golan.ben.ami@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
870c2a11 |
| 25-Oct-2017 |
Golan Ben Ami <golan.ben.ami@intel.com> |
iwlwifi: avoid duplicate sw reset executions in the code Most of the sw resets in the code are done by one function, which writes to the relevant CSR. Use the common function to
iwlwifi: avoid duplicate sw reset executions in the code Most of the sw resets in the code are done by one function, which writes to the relevant CSR. Use the common function to perform the only reset which was done separately, redundant to the common code. Signed-off-by: Golan Ben Ami <golan.ben.ami@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
0232d2cd |
| 20-Nov-2017 |
Sara Sharon <sara.sharon@intel.com> |
iwlwifi: fix access to prph when transport is stopped When getting HW rfkill we get stop_device being called from two paths. One path is the IRQ calling stop device, and updating op
iwlwifi: fix access to prph when transport is stopped When getting HW rfkill we get stop_device being called from two paths. One path is the IRQ calling stop device, and updating op mode and stack. As a result, cfg80211 is running rfkill sync work that shuts down all devices (second path). In the second path, we eventually get to iwl_mvm_stop_device which calls iwl_fw_dump_conf_clear->iwl_fw_dbg_stop_recording, that access periphery registers. The device may be stopped at this point from the first path, which will result with a failure to access those registers. Simply checking for the trans status is insufficient, since the race will still exist, only minimized. Instead, move the stop from iwl_fw_dump_conf_clear (which is getting called only from stop path) to the transport stop device function, where the access is always safe. This has the added value, of actually stopping dbgc before stopping device even when the stop is initiated from the transport. Fixes: 1efc3843a4ee ("iwlwifi: stop dbgc recording before stopping DMA") Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
Revision tags: v4.13.5, v4.13, v4.12 |
|
#
9ad8fd0b |
| 20-Jun-2017 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: pcie: rename iwl_trans_check_hw_rf_kill() to pcie 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
iwlwifi: pcie: rename iwl_trans_check_hw_rf_kill() to pcie Rename this function to the more appropriate iwl_pcie_check_hw_rf_kill() since it's only a function in the pcie code and cannot be called from any other place. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
#
099a628b |
| 27-Jun-2017 |
Emmanuel Grumbach <emmanuel.grumbach@intel.com> |
iwlwifi: pcie: wait longer after device reset The newest devices need a longer time to reset because of their more complex hardware. Wait 5ms after device reset. Consolidate all the
iwlwifi: pcie: wait longer after device reset The newest devices need a longer time to reset because of their more complex hardware. Wait 5ms after device reset. Consolidate all the places that reset the device in the PCIe transport to avoid future bugs. While at it, unify the flow to use set_bit instead of full write as requested by the hardware designers. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
Revision tags: v4.10.17, v4.10.16, v4.10.15, v4.10.14, v4.10.13 |
|
#
326477e4 |
| 25-Apr-2017 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: pcie: don't report RF-kill enabled while shutting down When toggling the RF-kill pin quickly in succession, the driver can get rather confused because it might be in the process
iwlwifi: pcie: don't report RF-kill enabled while shutting down When toggling the RF-kill pin quickly in succession, the driver can get rather confused because it might be in the process of shutting down, expecting all commands to go through quickly due to rfkill, but the transport already thinks the device is accessible again, even though it previously shut it down. This leads to bugs, and I even observed a kernel panic. Avoid this by making the PCIe code only report that the radio is enabled again after the higher layers actually decided to shut it off. This also pulls out this common RF-kill checking code into a common function called by both transport generations and also moves it to the direct method - in the internal helper we don't really care about the RF-kill status anymore since we won't report it up until the stop anyway. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
Revision tags: v4.10.12 |
|
#
97b00d87 |
| 19-Apr-2017 |
Johannes Berg <johannes.berg@intel.com> |
iwlwifi: pcie: fix mutex leak in gen2 start If the context info fails to be allocated, the mutex isn't unlocked properly, fix that. Fixes: eda50cde58de ("iwlwifi: pcie: add cont
iwlwifi: pcie: fix mutex leak in gen2 start If the context info fails to be allocated, the mutex isn't unlocked properly, fix that. Fixes: eda50cde58de ("iwlwifi: pcie: add context information support") Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
show more ...
|
Revision tags: v4.10.11, v4.10.10, v4.10.9, v4.10.8, v4.10.7, v4.10.6, v4.10.5, v4.10.4, v4.10.3, v4.10.2, v4.10.1, v4.10, 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.
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 ...
|
#
77c09bc8 |
| 12-Dec-2016 |
Sara Sharon <sara.sharon@intel.com> |
iwlwifi: pcie: introduce new stop_device This function is basically the same as gen1, except for clean ups of old devices configuration that are never used in a000 configuration.
iwlwifi: pcie: introduce new stop_device This function is basically the same as gen1, except for clean ups of old devices configuration that are never used in a000 configuration. It will also help with refactoring rf_kill later on. 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, 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 |
|
#
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 loa
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 ...
|