mirror of https://gitee.com/openkylin/linux.git
06c8632833
A GSI channel must be started in order to use it to perform a transfer data (or command) transaction. And the only time we'll see an IEOB interrupt is if we send a transaction to a started channel. Therefore we do not need to have the IEOB interrupt type enabled until at least one channel has been started. And once the last started channel has been stopped, we can disable the IEOB interrupt type again. We already enable the IEOB interrupt for a particular channel only when it is started. Extend that by having the IEOB interrupt *type* be enabled only when at least one channel is in STARTED state. Disallow all channels from triggering the IEOB interrupt in gsi_irq_setup(). We only enable an channel's interrupt when needed, so there is no longer any need to zero the channel mask in gsi_irq_disable(). Signed-off-by: Alex Elder <elder@linaro.org> Signed-off-by: Jakub Kicinski <kuba@kernel.org> |
||
---|---|---|
.. | ||
Kconfig | ||
Makefile | ||
gsi.c | ||
gsi.h | ||
gsi_private.h | ||
gsi_reg.h | ||
gsi_trans.c | ||
gsi_trans.h | ||
ipa.h | ||
ipa_clock.c | ||
ipa_clock.h | ||
ipa_cmd.c | ||
ipa_cmd.h | ||
ipa_data-sc7180.c | ||
ipa_data-sdm845.c | ||
ipa_data.h | ||
ipa_endpoint.c | ||
ipa_endpoint.h | ||
ipa_gsi.c | ||
ipa_gsi.h | ||
ipa_interrupt.c | ||
ipa_interrupt.h | ||
ipa_main.c | ||
ipa_mem.c | ||
ipa_mem.h | ||
ipa_modem.c | ||
ipa_modem.h | ||
ipa_qmi.c | ||
ipa_qmi.h | ||
ipa_qmi_msg.c | ||
ipa_qmi_msg.h | ||
ipa_reg.c | ||
ipa_reg.h | ||
ipa_smp2p.c | ||
ipa_smp2p.h | ||
ipa_table.c | ||
ipa_table.h | ||
ipa_uc.c | ||
ipa_uc.h | ||
ipa_version.h |