summaryrefslogtreecommitdiff
path: root/drivers/net/ipa/ipa.h
diff options
context:
space:
mode:
authorAlex Elder <elder@linaro.org>2022-11-02 17:11:37 -0500
committerDavid S. Miller <davem@davemloft.net>2022-11-04 10:16:53 +0000
commit0f97fbd478587a4ac2d53a88e5a9aefd6632a251 (patch)
tree03a7e860cf1679876b6d1a52eba22f73228c1a45 /drivers/net/ipa/ipa.h
parent88de7672404de72e273c4f1f4228120b8d7f01f1 (diff)
downloadlwn-0f97fbd478587a4ac2d53a88e5a9aefd6632a251.tar.gz
lwn-0f97fbd478587a4ac2d53a88e5a9aefd6632a251.zip
net: ipa: support more filtering endpoints
Prior to IPA v5.0, there could be no more than 32 endpoints. A filter table begins with a bitmap indicating which endpoints have a filter defined. That bitmap is currently assumed to fit in a 32-bit value. Starting with IPA v5.0, more than 32 endpoints are supported, so it's conceivable that a TX endpoint has an ID that exceeds 32. Increase the size of the field representing endpoints that support filtering to 64 bits. Rename the bitmap field "filtered". Unlike other similar fields, we do not use an (arbitrarily long) Linux bitmap for this purpose. The reason is that if a filter table ever *did* need to support more than 64 TX endpoints, its format would change in ways we can't anticipate. Have ipa_endpoint_init() return a negative errno rather than a mask that indicates which endpoints support filtering, and have that function assign the "filtered" field directly. Signed-off-by: Alex Elder <elder@linaro.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ipa/ipa.h')
-rw-r--r--drivers/net/ipa/ipa.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/ipa/ipa.h b/drivers/net/ipa/ipa.h
index c603575e2a58..557101c2d583 100644
--- a/drivers/net/ipa/ipa.h
+++ b/drivers/net/ipa/ipa.h
@@ -65,7 +65,7 @@ struct ipa_interrupt;
* @available_count: Number of defined bits in the available bitmap
* @defined: Bitmap of endpoints defined in config data
* @available: Bitmap of endpoints supported by hardware
- * @filter_map: Bit mask indicating endpoints that support filtering
+ * @filtered: Bitmap of endpoints that support filtering
* @set_up: Bit mask indicating endpoints set up
* @enabled: Bit mask indicating endpoints enabled
* @modem_tx_count: Number of defined modem TX endoints
@@ -123,7 +123,7 @@ struct ipa {
u32 available_count;
unsigned long *defined; /* Defined in configuration data */
unsigned long *available; /* Supported by hardware */
- u32 filter_map;
+ u64 filtered; /* Support filtering (AP and modem) */
u32 set_up;
u32 enabled;