This series adds support for more than 32 IPA endpoints. To do this, five registers whose bits represent endpoint state are replicated as needed to represent endpoints beyond 32. For existing platforms, the number of endpoints is never greater than 32, so there is just one of each register. IPA v5.0+ supports more than that though; these changes prepare the code for that. Beyond that, the IPA fields that represent endpoints in a 32-bit bitmask are updated to support an arbitrary number of these endpoint registers. (There is one exception, explained in patch 7.) The first two patches are some sort of unrelated cleanups, making use of a helper function introduced recently. The third and fourth use parameterized functions to determine the register offset for registers that represent endpoints. The last five convert fields representing endpoints to allow more than 32 endpoints to be represented. Signed-off-by: Alex Elder <elder@xxxxxxxxxx> Alex Elder (9): net: ipa: reduce arguments to ipa_table_init_add() net: ipa: use ipa_table_mem() in ipa_table_reset_add() net: ipa: add a parameter to aggregation registers net: ipa: add a parameter to suspend registers net: ipa: use a bitmap for defined endpoints net: ipa: use a bitmap for available endpoints net: ipa: support more filtering endpoints net: ipa: use a bitmap for set-up endpoints net: ipa: use a bitmap for enabled endpoints drivers/net/ipa/ipa.h | 26 +++-- drivers/net/ipa/ipa_endpoint.c | 167 +++++++++++++++------------ drivers/net/ipa/ipa_endpoint.h | 2 +- drivers/net/ipa/ipa_interrupt.c | 34 ++++-- drivers/net/ipa/ipa_main.c | 7 +- drivers/net/ipa/ipa_table.c | 88 +++++++------- drivers/net/ipa/ipa_table.h | 6 +- drivers/net/ipa/reg/ipa_reg-v3.1.c | 13 ++- drivers/net/ipa/reg/ipa_reg-v3.5.1.c | 13 ++- drivers/net/ipa/reg/ipa_reg-v4.11.c | 13 ++- drivers/net/ipa/reg/ipa_reg-v4.2.c | 13 ++- drivers/net/ipa/reg/ipa_reg-v4.5.c | 13 ++- drivers/net/ipa/reg/ipa_reg-v4.9.c | 13 ++- 13 files changed, 227 insertions(+), 181 deletions(-) -- 2.34.1