Loading drivers/net/ipa/gsi_private.h +1 −1 Original line number Diff line number Diff line Loading @@ -100,7 +100,7 @@ void gsi_channel_doorbell(struct gsi_channel *channel); /** * gsi_ring_virt() - Return virtual address for a ring entry * @ring: Ring whose address is to be translated * @addr: Index (slot number) of entry * @index: Index (slot number) of entry */ void *gsi_ring_virt(struct gsi_ring *ring, u32 index); Loading drivers/net/ipa/gsi_trans.h +3 −2 Original line number Diff line number Diff line Loading @@ -71,7 +71,7 @@ struct gsi_trans { /** * gsi_trans_pool_init() - Initialize a pool of structures for transactions * @gsi: GSI pointer * @pool: GSI transaction poll pointer * @size: Size of elements in the pool * @count: Minimum number of elements in the pool * @max_alloc: Maximum number of elements allocated at a time from pool Loading Loading @@ -123,7 +123,8 @@ int gsi_trans_pool_init_dma(struct device *dev, struct gsi_trans_pool *pool, void *gsi_trans_pool_alloc_dma(struct gsi_trans_pool *pool, dma_addr_t *addr); /** * gsi_trans_pool_exit() - Inverse of gsi_trans_pool_init() * gsi_trans_pool_exit_dma() - Inverse of gsi_trans_pool_init_dma() * @dev: Device used for DMA * @pool: Pool pointer */ void gsi_trans_pool_exit_dma(struct device *dev, struct gsi_trans_pool *pool); Loading drivers/net/ipa/ipa.h +4 −3 Original line number Diff line number Diff line Loading @@ -44,6 +44,8 @@ enum ipa_flag { * @version: IPA hardware version * @pdev: Platform device * @completion: Used to signal pipeline clear transfer complete * @nb: Notifier block used for remoteproc SSR * @notifier: Remoteproc SSR notifier * @smp2p: SMP2P information * @clock: IPA clocking information * @table_addr: DMA address of filter/route table content Loading @@ -58,13 +60,12 @@ enum ipa_flag { * @mem_size: Total size (bytes) of memory at @mem_virt * @mem: Array of IPA-local memory region descriptors * @imem_iova: I/O virtual address of IPA region in IMEM * @imem_size; Size of IMEM region * @imem_size: Size of IMEM region * @smem_iova: I/O virtual address of IPA region in SMEM * @smem_size; Size of SMEM region * @smem_size: Size of SMEM region * @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 * @wakeup_source: Wakeup source information * @available: Bit mask indicating endpoints hardware supports * @filter_map: Bit mask indicating endpoints that support filtering * @initialized: Bit mask indicating endpoints initialized Loading drivers/net/ipa/ipa_cmd.h +13 −6 Original line number Diff line number Diff line Loading @@ -20,11 +20,18 @@ struct gsi_channel; /** * enum ipa_cmd_opcode: IPA immediate commands * * All immediate commands are issued using the AP command TX endpoint. * The numeric values here are the opcodes for IPA v3.5.1 hardware. * @IPA_CMD_IP_V4_FILTER_INIT: Initialize IPv4 filter table * @IPA_CMD_IP_V6_FILTER_INIT: Initialize IPv6 filter table * @IPA_CMD_IP_V4_ROUTING_INIT: Initialize IPv4 routing table * @IPA_CMD_IP_V6_ROUTING_INIT: Initialize IPv6 routing table * @IPA_CMD_HDR_INIT_LOCAL: Initialize IPA-local header memory * @IPA_CMD_REGISTER_WRITE: Register write performed by IPA * @IPA_CMD_IP_PACKET_INIT: Set up next packet's destination endpoint * @IPA_CMD_DMA_SHARED_MEM: DMA command performed by IPA * @IPA_CMD_IP_PACKET_TAG_STATUS: Have next packet generate tag * status * @IPA_CMD_NONE: Special (invalid) "not a command" value * * IPA_CMD_NONE is a special (invalid) value that's used to indicate * a request is *not* an immediate command. * All immediate commands are issued using the AP command TX endpoint. */ enum ipa_cmd_opcode { IPA_CMD_NONE = 0x0, Loading Loading @@ -96,7 +103,7 @@ static inline bool ipa_cmd_data_valid(struct ipa *ipa) * * Return: 0 if successful, or a negative error code */ int ipa_cmd_pool_init(struct gsi_channel *gsi_channel, u32 tre_count); int ipa_cmd_pool_init(struct gsi_channel *channel, u32 tre_count); /** * ipa_cmd_pool_exit() - Inverse of ipa_cmd_pool_init() Loading Loading @@ -124,7 +131,7 @@ void ipa_cmd_table_init_add(struct gsi_trans *trans, enum ipa_cmd_opcode opcode, /** * ipa_cmd_hdr_init_local_add() - Add a header init command to a transaction * @ipa: IPA structure * @trans: GSI transaction * @offset: Offset of header memory in IPA local space * @size: Size of header memory * @addr: DMA address of buffer to be written from Loading drivers/net/ipa/ipa_endpoint.h +15 −3 Original line number Diff line number Diff line Loading @@ -41,8 +41,20 @@ enum ipa_endpoint_name { /** * struct ipa_endpoint - IPA endpoint information * @channel_id: EP's GSI channel * @evt_ring_id: EP's GSI channel event ring * @ipa: IPA pointer * @ee_id: Execution environmnent endpoint is associated with * @channel_id: GSI channel used by the endpoint * @endpoint_id: IPA endpoint number * @toward_ipa: Endpoint direction (true = TX, false = RX) * @data: Endpoint configuration data * @trans_tre_max: Maximum number of TRE descriptors per transaction * @evt_ring_id: GSI event ring used by the endpoint * @netdev: Network device pointer, if endpoint uses one * @replenish_enabled: Whether receive buffer replenishing is enabled * @replenish_ready: Number of replenish transactions without doorbell * @replenish_saved: Replenish requests held while disabled * @replenish_backlog: Number of buffers needed to fill hardware queue * @replenish_work: Work item used for repeated replenish failures */ struct ipa_endpoint { struct ipa *ipa; Loading @@ -52,7 +64,7 @@ struct ipa_endpoint { bool toward_ipa; const struct ipa_endpoint_config_data *data; u32 trans_tre_max; /* maximum descriptors per transaction */ u32 trans_tre_max; u32 evt_ring_id; /* Net device this endpoint is associated with, if any */ Loading Loading
drivers/net/ipa/gsi_private.h +1 −1 Original line number Diff line number Diff line Loading @@ -100,7 +100,7 @@ void gsi_channel_doorbell(struct gsi_channel *channel); /** * gsi_ring_virt() - Return virtual address for a ring entry * @ring: Ring whose address is to be translated * @addr: Index (slot number) of entry * @index: Index (slot number) of entry */ void *gsi_ring_virt(struct gsi_ring *ring, u32 index); Loading
drivers/net/ipa/gsi_trans.h +3 −2 Original line number Diff line number Diff line Loading @@ -71,7 +71,7 @@ struct gsi_trans { /** * gsi_trans_pool_init() - Initialize a pool of structures for transactions * @gsi: GSI pointer * @pool: GSI transaction poll pointer * @size: Size of elements in the pool * @count: Minimum number of elements in the pool * @max_alloc: Maximum number of elements allocated at a time from pool Loading Loading @@ -123,7 +123,8 @@ int gsi_trans_pool_init_dma(struct device *dev, struct gsi_trans_pool *pool, void *gsi_trans_pool_alloc_dma(struct gsi_trans_pool *pool, dma_addr_t *addr); /** * gsi_trans_pool_exit() - Inverse of gsi_trans_pool_init() * gsi_trans_pool_exit_dma() - Inverse of gsi_trans_pool_init_dma() * @dev: Device used for DMA * @pool: Pool pointer */ void gsi_trans_pool_exit_dma(struct device *dev, struct gsi_trans_pool *pool); Loading
drivers/net/ipa/ipa.h +4 −3 Original line number Diff line number Diff line Loading @@ -44,6 +44,8 @@ enum ipa_flag { * @version: IPA hardware version * @pdev: Platform device * @completion: Used to signal pipeline clear transfer complete * @nb: Notifier block used for remoteproc SSR * @notifier: Remoteproc SSR notifier * @smp2p: SMP2P information * @clock: IPA clocking information * @table_addr: DMA address of filter/route table content Loading @@ -58,13 +60,12 @@ enum ipa_flag { * @mem_size: Total size (bytes) of memory at @mem_virt * @mem: Array of IPA-local memory region descriptors * @imem_iova: I/O virtual address of IPA region in IMEM * @imem_size; Size of IMEM region * @imem_size: Size of IMEM region * @smem_iova: I/O virtual address of IPA region in SMEM * @smem_size; Size of SMEM region * @smem_size: Size of SMEM region * @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 * @wakeup_source: Wakeup source information * @available: Bit mask indicating endpoints hardware supports * @filter_map: Bit mask indicating endpoints that support filtering * @initialized: Bit mask indicating endpoints initialized Loading
drivers/net/ipa/ipa_cmd.h +13 −6 Original line number Diff line number Diff line Loading @@ -20,11 +20,18 @@ struct gsi_channel; /** * enum ipa_cmd_opcode: IPA immediate commands * * All immediate commands are issued using the AP command TX endpoint. * The numeric values here are the opcodes for IPA v3.5.1 hardware. * @IPA_CMD_IP_V4_FILTER_INIT: Initialize IPv4 filter table * @IPA_CMD_IP_V6_FILTER_INIT: Initialize IPv6 filter table * @IPA_CMD_IP_V4_ROUTING_INIT: Initialize IPv4 routing table * @IPA_CMD_IP_V6_ROUTING_INIT: Initialize IPv6 routing table * @IPA_CMD_HDR_INIT_LOCAL: Initialize IPA-local header memory * @IPA_CMD_REGISTER_WRITE: Register write performed by IPA * @IPA_CMD_IP_PACKET_INIT: Set up next packet's destination endpoint * @IPA_CMD_DMA_SHARED_MEM: DMA command performed by IPA * @IPA_CMD_IP_PACKET_TAG_STATUS: Have next packet generate tag * status * @IPA_CMD_NONE: Special (invalid) "not a command" value * * IPA_CMD_NONE is a special (invalid) value that's used to indicate * a request is *not* an immediate command. * All immediate commands are issued using the AP command TX endpoint. */ enum ipa_cmd_opcode { IPA_CMD_NONE = 0x0, Loading Loading @@ -96,7 +103,7 @@ static inline bool ipa_cmd_data_valid(struct ipa *ipa) * * Return: 0 if successful, or a negative error code */ int ipa_cmd_pool_init(struct gsi_channel *gsi_channel, u32 tre_count); int ipa_cmd_pool_init(struct gsi_channel *channel, u32 tre_count); /** * ipa_cmd_pool_exit() - Inverse of ipa_cmd_pool_init() Loading Loading @@ -124,7 +131,7 @@ void ipa_cmd_table_init_add(struct gsi_trans *trans, enum ipa_cmd_opcode opcode, /** * ipa_cmd_hdr_init_local_add() - Add a header init command to a transaction * @ipa: IPA structure * @trans: GSI transaction * @offset: Offset of header memory in IPA local space * @size: Size of header memory * @addr: DMA address of buffer to be written from Loading
drivers/net/ipa/ipa_endpoint.h +15 −3 Original line number Diff line number Diff line Loading @@ -41,8 +41,20 @@ enum ipa_endpoint_name { /** * struct ipa_endpoint - IPA endpoint information * @channel_id: EP's GSI channel * @evt_ring_id: EP's GSI channel event ring * @ipa: IPA pointer * @ee_id: Execution environmnent endpoint is associated with * @channel_id: GSI channel used by the endpoint * @endpoint_id: IPA endpoint number * @toward_ipa: Endpoint direction (true = TX, false = RX) * @data: Endpoint configuration data * @trans_tre_max: Maximum number of TRE descriptors per transaction * @evt_ring_id: GSI event ring used by the endpoint * @netdev: Network device pointer, if endpoint uses one * @replenish_enabled: Whether receive buffer replenishing is enabled * @replenish_ready: Number of replenish transactions without doorbell * @replenish_saved: Replenish requests held while disabled * @replenish_backlog: Number of buffers needed to fill hardware queue * @replenish_work: Work item used for repeated replenish failures */ struct ipa_endpoint { struct ipa *ipa; Loading @@ -52,7 +64,7 @@ struct ipa_endpoint { bool toward_ipa; const struct ipa_endpoint_config_data *data; u32 trans_tre_max; /* maximum descriptors per transaction */ u32 trans_tre_max; u32 evt_ring_id; /* Net device this endpoint is associated with, if any */ Loading