diff options
Diffstat (limited to 'drivers/net/ipa/ipa.h')
-rw-r--r-- | drivers/net/ipa/ipa.h | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/drivers/net/ipa/ipa.h b/drivers/net/ipa/ipa.h index 09ead433ec38..5372db58b5bd 100644 --- a/drivers/net/ipa/ipa.h +++ b/drivers/net/ipa/ipa.h @@ -39,6 +39,9 @@ struct ipa_interrupt; * @power: IPA power information * @table_addr: DMA address of filter/route table content * @table_virt: Virtual address of filter/route table content + * @route_count: Total number of entries in a routing table + * @modem_route_count: Number of modem entries in a routing table + * @filter_count: Maximum number of entries in a filter table * @interrupt: IPA Interrupt information * @uc_powered: true if power is active by proxy for microcontroller * @uc_loaded: true after microcontroller has reported it's ready @@ -58,11 +61,13 @@ 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 - * @available: Bit mask indicating endpoints hardware supports - * @filter_map: Bit mask indicating endpoints that support filtering - * @initialized: Bit mask indicating endpoints initialized - * @set_up: Bit mask indicating endpoints set up - * @enabled: Bit mask indicating endpoints enabled + * @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: Bitmap of endpoints supported by hardware + * @filtered: Bitmap of endpoints that support filtering + * @set_up: Bitmap of endpoints that are set up for use + * @enabled: Bitmap of currently enabled endpoints * @modem_tx_count: Number of defined modem TX endoints * @endpoint: Array of endpoint information * @channel_map: Mapping of GSI channel to IPA endpoint @@ -84,6 +89,9 @@ struct ipa { dma_addr_t table_addr; __le64 *table_virt; + u32 route_count; + u32 modem_route_count; + u32 filter_count; struct ipa_interrupt *interrupt; bool uc_powered; @@ -110,12 +118,14 @@ struct ipa { void *zero_virt; size_t zero_size; - /* Bit masks indicating endpoint state */ - u32 available; /* supported by hardware */ - u32 filter_map; - u32 initialized; - u32 set_up; - u32 enabled; + /* Bitmaps indicating endpoint state */ + u32 endpoint_count; + u32 available_count; + unsigned long *defined; /* Defined in configuration data */ + unsigned long *available; /* Supported by hardware */ + u64 filtered; /* Support filtering (AP and modem) */ + unsigned long *set_up; + unsigned long *enabled; u32 modem_tx_count; struct ipa_endpoint endpoint[IPA_ENDPOINT_MAX]; |