summaryrefslogtreecommitdiff
path: root/drivers/net/ipa/ipa.h
diff options
context:
space:
mode:
authorAlex Elder <elder@linaro.org>2022-11-02 17:11:36 -0500
committerDavid S. Miller <davem@davemloft.net>2022-11-04 10:16:53 +0000
commit88de7672404de72e273c4f1f4228120b8d7f01f1 (patch)
tree86327d56f8c70c89c7d0fccbf5ef47befd16277c /drivers/net/ipa/ipa.h
parent9a9f512974d5e3e721e106f30429c16dfeb23326 (diff)
net: ipa: use a bitmap for available endpoints
Similar to the previous patch, replace the 32-bit unsigned used to track endpoints supported by hardware with a Linux bitmap, to allow an arbitrary number of endpoints to be represented. Move ipa_endpoint_deconfig() above ipa_endpoint_config() and use it in the error path of the latter function. 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.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/net/ipa/ipa.h b/drivers/net/ipa/ipa.h
index 261c7263f9e3..c603575e2a58 100644
--- a/drivers/net/ipa/ipa.h
+++ b/drivers/net/ipa/ipa.h
@@ -61,9 +61,10 @@ struct ipa_interrupt;
* @zero_addr: DMA address of preallocated zero-filled memory
* @zero_virt: Virtual address of preallocated zero-filled memory
* @zero_size: Size (bytes) of preallocated zero-filled memory
- * @endpoint_count: Number of endpoints represented by bit masks below
+ * @endpoint_count: Number of defined bits in most bitmaps below
+ * @available_count: Number of defined bits in the available bitmap
* @defined: Bitmap of endpoints defined in config data
- * @available: Bit mask indicating endpoints hardware supports
+ * @available: Bitmap of endpoints supported by hardware
* @filter_map: Bit mask indicating endpoints that support filtering
* @set_up: Bit mask indicating endpoints set up
* @enabled: Bit mask indicating endpoints enabled
@@ -119,8 +120,9 @@ struct ipa {
/* Bitmaps indicating endpoint state */
u32 endpoint_count;
+ u32 available_count;
unsigned long *defined; /* Defined in configuration data */
- u32 available; /* Supported by hardware */
+ unsigned long *available; /* Supported by hardware */
u32 filter_map;
u32 set_up;
u32 enabled;