linux/drivers/net/ipa
Alex Elder 94ad8f3ac6 net: ipa: clear pending interrupts before enabling
We enable the completion interrupt for channel or event ring
commands only when we issue them.  The interrupt is disabled after
the interrupt has fired, or after we have timed out waiting for it.

If we time out, the command could complete after the interrupt has
been disabled, causing a state change in the channel or event ring.
The interrupt associated with that state change would be delivered
the next time the completion interrupt is enabled.

To avoid previous command completions interfering with new commands,
clear all pending completion interrupts before re-enabling them for
a new command.

Fixes: b4175f8731 ("net: ipa: only enable GSI event control IRQs when needed")
Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2020-12-23 12:17:48 -08:00
..
gsi_private.h net: ipa: fix kerneldoc comments 2020-07-13 17:11:53 -07:00
gsi_reg.h net: ipa: adjust GSI register addresses 2020-11-28 12:13:55 -08:00
gsi_trans.c net: ipa: pass the correct size when freeing DMA memory 2020-12-04 14:38:44 -08:00
gsi_trans.h net: ipa: fix kerneldoc comments 2020-07-13 17:11:53 -07:00
gsi.c net: ipa: clear pending interrupts before enabling 2020-12-23 12:17:48 -08:00
gsi.h net: ipa: support retries on generic GSI commands 2020-11-20 18:45:52 -08:00
ipa_clock.c net: ipa: fix interconnect enable bug 2020-12-23 11:35:48 -08:00
ipa_clock.h net: ipa: define clock and interconnect data 2020-11-20 18:44:59 -08:00
ipa_cmd.c net: ipa: define enumerated types consistently 2020-11-18 15:53:48 -08:00
ipa_cmd.h net: ipa: define enumerated types consistently 2020-11-18 15:53:48 -08:00
ipa_data-sc7180.c net: ipa: populate clock and interconnect data 2020-11-20 18:45:00 -08:00
ipa_data-sdm845.c net: ipa: populate clock and interconnect data 2020-11-20 18:45:00 -08:00
ipa_data.h net: ipa: define clock and interconnect data 2020-11-20 18:44:59 -08:00
ipa_endpoint.c net: ipa: use Qtime for IPA v4.5 head-of-line time limit 2020-12-01 18:05:28 -08:00
ipa_endpoint.h net: ipa: define enumerated types consistently 2020-11-18 15:53:48 -08:00
ipa_gsi.c net: ipa: include declarations in "ipa_gsi.c" 2020-07-07 12:43:18 -07:00
ipa_gsi.h net: ipa: fix kerneldoc comments 2020-07-13 17:11:53 -07:00
ipa_interrupt.c net: ipa: fix two inconsistent IPA register names 2020-11-18 15:53:48 -08:00
ipa_interrupt.h net: ipa: move definition of enum ipa_irq_id 2020-11-18 15:53:49 -08:00
ipa_main.c net: ipa: fix build-time bug in ipa_hardware_config_qsb() 2020-12-02 17:11:21 -08:00
ipa_mem.c net: ipa: change a warning to debug 2020-11-11 14:07:00 -08:00
ipa_mem.h net: ipa: redefine struct ipa_mem_data 2020-05-04 11:26:55 -07:00
ipa_modem.c net: ipa: new notification infrastructure 2020-07-28 17:10:47 -07:00
ipa_modem.h soc: qcom: ipa: modem and microcontroller 2020-03-08 22:07:10 -07:00
ipa_qmi_msg.c net: ipa: fix QMI structure definition bugs 2020-07-07 12:43:18 -07:00
ipa_qmi_msg.h net: ipa: define enumerated types consistently 2020-11-18 15:53:48 -08:00
ipa_qmi.c net: ipa: convert comma to semicolon 2020-12-09 16:23:08 -08:00
ipa_qmi.h soc: qcom: ipa: AP/modem communications 2020-03-08 22:07:10 -07:00
ipa_reg.c
ipa_reg.h net: ipa: set up IPA v4.5 Qtime configuration 2020-12-01 18:05:28 -08:00
ipa_smp2p.c drivers: ipa: fix typos for ipa_smp2p structure doc 2020-05-14 13:06:55 -07:00
ipa_smp2p.h net: ipa: fix kerneldoc comments 2020-07-13 17:11:53 -07:00
ipa_table.c net: ipa: share field mask values for IPA hash registers 2020-11-18 15:53:48 -08:00
ipa_table.h net: ipa: fix kerneldoc comments 2020-07-13 17:11:53 -07:00
ipa_uc.c net: ipa: a few last IPA register cleanups 2020-11-18 15:53:49 -08:00
ipa_uc.h soc: qcom: ipa: modem and microcontroller 2020-03-08 22:07:10 -07:00
ipa_version.h net: ipa: update IPA registers for IPA v4.5 2020-11-28 12:13:54 -08:00
ipa.h net: ipa: repurpose CLOCK_HELD flag 2020-09-18 17:47:07 -07:00
Kconfig remoteproc: clean up notification config 2020-03-16 17:31:51 -07:00
Makefile soc: qcom: ipa: support build of IPA code 2020-03-08 22:07:10 -07:00