diff options
author | Alex Elder <elder@linaro.org> | 2021-11-24 21:25:10 +0100 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2021-11-26 04:37:34 +0100 |
commit | 7ece9eaa3f16cec20f3138bab84f4fc98eff0ec8 (patch) | |
tree | 1c45cbaaf483ecd4eb41cf7469169678ef8c9eec /drivers/net/ipa/gsi.h | |
parent | net: ipa: skip SKB copy if no netdev (diff) | |
download | linux-7ece9eaa3f16cec20f3138bab84f4fc98eff0ec8.tar.xz linux-7ece9eaa3f16cec20f3138bab84f4fc98eff0ec8.zip |
net: ipa: GSI only needs one completion
A mutex ensures we never submit more than one GSI command of any
kind at once. This means the per-channel and per-event ring
completion structures provide no benefit. Instead, just use the
single (existing) GSI completion to signal the completion of GSI
commands of all types.
This makes gsi_evt_ring_init() a trivial function with no inverse,
so open-code it in its sole caller and get rid of the function.
Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers/net/ipa/gsi.h')
-rw-r--r-- | drivers/net/ipa/gsi.h | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/drivers/net/ipa/gsi.h b/drivers/net/ipa/gsi.h index 88b80dc3db79..ccaa333e3762 100644 --- a/drivers/net/ipa/gsi.h +++ b/drivers/net/ipa/gsi.h @@ -114,8 +114,6 @@ struct gsi_channel { u16 tre_count; u16 event_count; - struct completion completion; /* signals channel command completion */ - struct gsi_ring tre_ring; u32 evt_ring_id; @@ -141,7 +139,6 @@ enum gsi_evt_ring_state { struct gsi_evt_ring { struct gsi_channel *channel; - struct completion completion; /* signals event ring state changes */ struct gsi_ring ring; }; @@ -160,7 +157,7 @@ struct gsi { u32 modem_channel_bitmap; /* modem channels to allocate */ u32 type_enabled_bitmap; /* GSI IRQ types enabled */ u32 ieob_enabled_bitmap; /* IEOB IRQ enabled (event rings) */ - struct completion completion; /* for global EE commands */ + struct completion completion; /* Signals GSI command completion */ int result; /* Negative errno (generic commands) */ struct mutex mutex; /* protects commands, programming */ }; |