qcacmn: Fix dp/wifi3.0/dp_ipa.*documentation

The kernel-doc script identified a large number of documentation
issues in dp/wifi3.0/dp_ipa.[ch], so fix those issues. In addition,
there are a number of instances where public functions have their
implementation documented instead of having their interface
documented, so move that documentation.

Change-Id: I664c657e4e7424db576bf19ca8a26c697b37e46f
CRs-Fixed: 3373165
This commit is contained in:
Jeff Johnson
2023-01-04 19:50:28 -08:00
committed by Madan Koyyalamudi
parent 33d575de95
commit 81e6a31400
2 changed files with 183 additions and 196 deletions

View File

@@ -1,6 +1,6 @@
/* /*
* Copyright (c) 2017-2021, The Linux Foundation. All rights reserved. * Copyright (c) 2017-2021, The Linux Foundation. All rights reserved.
* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved. * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
* *
* Permission to use, copy, modify, and/or distribute this software for any * Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above * purpose with or without fee is hereby granted, provided that the above
@@ -54,7 +54,7 @@
#define DP_IPA_WAR_WBM2SW_REL_RING_NO_BUF_ENTRIES 16 #define DP_IPA_WAR_WBM2SW_REL_RING_NO_BUF_ENTRIES 16
/** /**
*struct dp_ipa_reo_remap_record - history for dp ipa reo remaps * struct dp_ipa_reo_remap_record - history for dp ipa reo remaps
* @timestamp: Timestamp when remap occurs * @timestamp: Timestamp when remap occurs
* @ix0_reg: reo destination ring IX0 value * @ix0_reg: reo destination ring IX0 value
* @ix2_reg: reo destination ring IX2 value * @ix2_reg: reo destination ring IX2 value
@@ -176,7 +176,7 @@ QDF_STATUS dp_ipa_handle_rx_buf_smmu_mapping(struct dp_soc *soc,
!qdf_mem_smmu_s1_enabled(soc->osdev)) !qdf_mem_smmu_s1_enabled(soc->osdev))
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
/** /*
* Even if ipa pipes is disabled, but if it's unmap * Even if ipa pipes is disabled, but if it's unmap
* operation and nbuf has done ipa smmu map before, * operation and nbuf has done ipa smmu map before,
* do ipa smmu unmap as well. * do ipa smmu unmap as well.
@@ -406,7 +406,7 @@ static QDF_STATUS dp_ipa_get_shared_mem_info(qdf_device_t osdev,
} }
/** /**
* dp_ipa_get_tx_bank_id - API to get TCL bank id * dp_ipa_get_tx_bank_id() - API to get TCL bank id
* @soc: dp_soc handle * @soc: dp_soc handle
* @bank_id: out parameter for bank id * @bank_id: out parameter for bank id
* *
@@ -1122,7 +1122,7 @@ static void dp_ipa_set_pipe_db(struct dp_ipa_resources *res,
#ifdef IPA_WDS_EASYMESH_FEATURE #ifdef IPA_WDS_EASYMESH_FEATURE
/** /**
* dp_ipa_setup_iface_session_id - Pass vdev id to IPA * dp_ipa_setup_iface_session_id() - Pass vdev id to IPA
* @in: ipa in params * @in: ipa in params
* @session_id: vdev id * @session_id: vdev id
* *
@@ -1192,7 +1192,7 @@ static QDF_STATUS dp_ipa_reset_tx_doorbell_pa(struct dp_soc *soc,
#endif /* IPA_WDI3_TX_TWO_PIPES */ #endif /* IPA_WDI3_TX_TWO_PIPES */
/** /**
* dp_tx_ipa_uc_detach - Free autonomy TX resources * dp_tx_ipa_uc_detach() - Free autonomy TX resources
* @soc: data path instance * @soc: data path instance
* @pdev: core txrx pdev context * @pdev: core txrx pdev context
* *
@@ -1229,7 +1229,7 @@ static void dp_tx_ipa_uc_detach(struct dp_soc *soc, struct dp_pdev *pdev)
} }
/** /**
* dp_rx_ipa_uc_detach - free autonomy RX resources * dp_rx_ipa_uc_detach() - free autonomy RX resources
* @soc: data path instance * @soc: data path instance
* @pdev: core txrx pdev context * @pdev: core txrx pdev context
* *
@@ -1246,8 +1246,8 @@ static void dp_rx_ipa_uc_detach(struct dp_soc *soc, struct dp_pdev *pdev)
qdf_mem_free_sgtable(&ipa_res->rx_refill_ring.sgtable); qdf_mem_free_sgtable(&ipa_res->rx_refill_ring.sgtable);
} }
/* /**
* dp_rx_alt_ipa_uc_detach - free autonomy RX resources * dp_rx_alt_ipa_uc_detach() - free autonomy RX resources
* @soc: data path instance * @soc: data path instance
* @pdev: core txrx pdev context * @pdev: core txrx pdev context
* *
@@ -1294,7 +1294,7 @@ int dp_ipa_uc_detach(struct dp_soc *soc, struct dp_pdev *pdev)
} }
/** /**
* dp_tx_ipa_uc_attach - Allocate autonomy TX resources * dp_tx_ipa_uc_attach() - Allocate autonomy TX resources
* @soc: data path instance * @soc: data path instance
* @pdev: Physical device handle * @pdev: Physical device handle
* *
@@ -1412,7 +1412,7 @@ static int dp_tx_ipa_uc_attach(struct dp_soc *soc, struct dp_pdev *pdev)
} }
/** /**
* dp_rx_ipa_uc_attach - Allocate autonomy RX resources * dp_rx_ipa_uc_attach() - Allocate autonomy RX resources
* @soc: data path instance * @soc: data path instance
* @pdev: core txrx pdev context * @pdev: core txrx pdev context
* *
@@ -1468,7 +1468,7 @@ int dp_ipa_uc_attach(struct dp_soc *soc, struct dp_pdev *pdev)
} }
#ifdef IPA_WDI3_VLAN_SUPPORT #ifdef IPA_WDI3_VLAN_SUPPORT
/* /**
* dp_ipa_rx_alt_ring_resource_setup() - setup IPA 2nd RX ring resources * dp_ipa_rx_alt_ring_resource_setup() - setup IPA 2nd RX ring resources
* @soc: data path SoC handle * @soc: data path SoC handle
* @pdev: data path pdev handle * @pdev: data path pdev handle
@@ -1546,12 +1546,6 @@ static inline
void dp_ipa_rx_alt_ring_resource_setup(struct dp_soc *soc, struct dp_pdev *pdev) void dp_ipa_rx_alt_ring_resource_setup(struct dp_soc *soc, struct dp_pdev *pdev)
{ } { }
#endif #endif
/*
* dp_ipa_ring_resource_setup() - setup IPA ring resources
* @soc: data path SoC handle
*
* Return: none
*/
int dp_ipa_ring_resource_setup(struct dp_soc *soc, int dp_ipa_ring_resource_setup(struct dp_soc *soc,
struct dp_pdev *pdev) struct dp_pdev *pdev)
{ {
@@ -1705,7 +1699,7 @@ int dp_ipa_ring_resource_setup(struct dp_soc *soc,
} }
#ifdef IPA_WDI3_VLAN_SUPPORT #ifdef IPA_WDI3_VLAN_SUPPORT
/* /**
* dp_ipa_rx_alt_ring_get_resource() - get IPA 2nd RX ring resources * dp_ipa_rx_alt_ring_get_resource() - get IPA 2nd RX ring resources
* @pdev: data path pdev handle * @pdev: data path pdev handle
* *
@@ -1810,7 +1804,7 @@ QDF_STATUS dp_ipa_get_resource(struct cdp_soc_t *soc_hdl, uint8_t pdev_id)
#endif #endif
#ifdef IPA_WDI3_VLAN_SUPPORT #ifdef IPA_WDI3_VLAN_SUPPORT
/* /**
* dp_ipa_map_rx_alt_ring_doorbell_paddr() - Map 2nd rx ring doorbell paddr * dp_ipa_map_rx_alt_ring_doorbell_paddr() - Map 2nd rx ring doorbell paddr
* @pdev: data path pdev handle * @pdev: data path pdev handle
* *
@@ -1842,7 +1836,7 @@ static void dp_ipa_map_rx_alt_ring_doorbell_paddr(struct dp_pdev *pdev)
ipa_res->rx_alt_ready_doorbell_paddr); ipa_res->rx_alt_ready_doorbell_paddr);
} }
/* /**
* dp_ipa_unmap_rx_alt_ring_doorbell_paddr() - Unmap 2nd rx ring doorbell paddr * dp_ipa_unmap_rx_alt_ring_doorbell_paddr() - Unmap 2nd rx ring doorbell paddr
* @pdev: data path pdev handle * @pdev: data path pdev handle
* *
@@ -2001,14 +1995,6 @@ QDF_STATUS dp_ipa_get_stat(struct cdp_soc_t *soc_hdl, uint8_t pdev_id)
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }
/**
* dp_tx_send_ipa_data_frame() - send IPA data frame
* @soc_hdl: datapath soc handle
* @vdev_id: id of the virtual device
* @skb: skb to transmit
*
* Return: skb/ NULL is for success
*/
qdf_nbuf_t dp_tx_send_ipa_data_frame(struct cdp_soc_t *soc_hdl, uint8_t vdev_id, qdf_nbuf_t dp_tx_send_ipa_data_frame(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
qdf_nbuf_t skb) qdf_nbuf_t skb)
{ {
@@ -2371,7 +2357,7 @@ dp_ipa_wdi_rx_smmu_params(struct dp_soc *soc,
} }
#ifdef IPA_WDI3_VLAN_SUPPORT #ifdef IPA_WDI3_VLAN_SUPPORT
/* /**
* dp_ipa_wdi_rx_alt_pipe_smmu_params() - Setup 2nd rx pipe smmu params * dp_ipa_wdi_rx_alt_pipe_smmu_params() - Setup 2nd rx pipe smmu params
* @soc: data path soc handle * @soc: data path soc handle
* @ipa_res: ipa resource pointer * @ipa_res: ipa resource pointer
@@ -2430,8 +2416,8 @@ dp_ipa_wdi_rx_alt_pipe_smmu_params(struct dp_soc *soc,
soc->rx_pkt_tlv_size + L3_HEADER_PADDING; soc->rx_pkt_tlv_size + L3_HEADER_PADDING;
} }
/* /**
* dp_ipa_wdi_rx_alt_pipe_smmu_params() - Setup 2nd rx pipe params * dp_ipa_wdi_rx_alt_pipe_params() - Setup 2nd rx pipe params
* @soc: data path soc handle * @soc: data path soc handle
* @ipa_res: ipa resource pointer * @ipa_res: ipa resource pointer
* @rx: pipe info handle * @rx: pipe info handle
@@ -2489,7 +2475,7 @@ static void dp_ipa_wdi_rx_alt_pipe_params(struct dp_soc *soc,
soc->rx_pkt_tlv_size + L3_HEADER_PADDING; soc->rx_pkt_tlv_size + L3_HEADER_PADDING;
} }
/* /**
* dp_ipa_setup_rx_alt_pipe() - Setup 2nd rx pipe for IPA offload * dp_ipa_setup_rx_alt_pipe() - Setup 2nd rx pipe for IPA offload
* @soc: data path soc handle * @soc: data path soc handle
* @res: ipa resource pointer * @res: ipa resource pointer
@@ -2539,7 +2525,7 @@ static void dp_ipa_setup_rx_alt_pipe(struct dp_soc *soc,
QDF_IPA_EP_CFG_HDR_LITTLE_ENDIAN(rx_cfg) = true; QDF_IPA_EP_CFG_HDR_LITTLE_ENDIAN(rx_cfg) = true;
} }
/* /**
* dp_ipa_set_rx_alt_pipe_db() - Setup 2nd rx pipe doorbell * dp_ipa_set_rx_alt_pipe_db() - Setup 2nd rx pipe doorbell
* @res: ipa resource pointer * @res: ipa resource pointer
* @out: pipe out handle * @out: pipe out handle
@@ -2635,7 +2621,7 @@ QDF_STATUS dp_ipa_setup(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
QDF_IPA_EP_CFG_MODE(tx_cfg) = IPA_BASIC; QDF_IPA_EP_CFG_MODE(tx_cfg) = IPA_BASIC;
QDF_IPA_EP_CFG_HDR_LITTLE_ENDIAN(tx_cfg) = true; QDF_IPA_EP_CFG_HDR_LITTLE_ENDIAN(tx_cfg) = true;
/** /*
* Transfer Ring: WBM Ring * Transfer Ring: WBM Ring
* Transfer Ring Doorbell PA: WBM Tail Pointer Address * Transfer Ring Doorbell PA: WBM Tail Pointer Address
* Event Ring: TCL ring * Event Ring: TCL ring
@@ -2671,7 +2657,7 @@ QDF_STATUS dp_ipa_setup(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
QDF_IPA_EP_CFG_MODE(rx_cfg) = IPA_BASIC; QDF_IPA_EP_CFG_MODE(rx_cfg) = IPA_BASIC;
QDF_IPA_EP_CFG_HDR_LITTLE_ENDIAN(rx_cfg) = true; QDF_IPA_EP_CFG_HDR_LITTLE_ENDIAN(rx_cfg) = true;
/** /*
* Transfer Ring: REO Ring * Transfer Ring: REO Ring
* Transfer Ring Doorbell PA: REO Tail Pointer Address * Transfer Ring Doorbell PA: REO Tail Pointer Address
* Event Ring: FW ring * Event Ring: FW ring
@@ -2722,7 +2708,7 @@ QDF_STATUS dp_ipa_setup(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
} }
#ifdef IPA_WDI3_VLAN_SUPPORT #ifdef IPA_WDI3_VLAN_SUPPORT
/* /**
* dp_ipa_set_rx1_used() - Set rx1 used flag for 2nd rx offload ring * dp_ipa_set_rx1_used() - Set rx1 used flag for 2nd rx offload ring
* @in: pipe in handle * @in: pipe in handle
* *
@@ -2734,10 +2720,10 @@ void dp_ipa_set_rx1_used(qdf_ipa_wdi_reg_intf_in_params_t *in)
QDF_IPA_WDI_REG_INTF_IN_PARAMS_IS_RX1_USED(in) = true; QDF_IPA_WDI_REG_INTF_IN_PARAMS_IS_RX1_USED(in) = true;
} }
/* /**
* dp_ipa_set_v4_vlan_hdr() - Set v4 vlan hdr * dp_ipa_set_v4_vlan_hdr() - Set v4 vlan hdr
* @in: pipe in handle * @in: pipe in handle
* hdr: pointer to hdr * @hdr: pointer to hdr
* *
* Return: none * Return: none
*/ */
@@ -2749,10 +2735,10 @@ void dp_ipa_set_v4_vlan_hdr(qdf_ipa_wdi_reg_intf_in_params_t *in,
hdr, sizeof(qdf_ipa_wdi_hdr_info_t)); hdr, sizeof(qdf_ipa_wdi_hdr_info_t));
} }
/* /**
* dp_ipa_set_v6_vlan_hdr() - Set v6 vlan hdr * dp_ipa_set_v6_vlan_hdr() - Set v6 vlan hdr
* @in: pipe in handle * @in: pipe in handle
* hdr: pointer to hdr * @hdr: pointer to hdr
* *
* Return: none * Return: none
*/ */
@@ -2827,18 +2813,6 @@ dp_ipa_set_wdi_vlan_hdr_type(qdf_ipa_wdi_hdr_info_t *hdr_info)
{ } { }
#endif #endif
/**
* dp_ipa_setup_iface() - Setup IPA header and register interface
* @ifname: Interface name
* @mac_addr: Interface MAC address
* @prod_client: IPA prod client type
* @cons_client: IPA cons client type
* @session_id: Session ID
* @is_ipv6_enabled: Is IPV6 enabled or not
* @hdl: IPA handle
*
* Return: QDF_STATUS
*/
QDF_STATUS dp_ipa_setup_iface(char *ifname, uint8_t *mac_addr, QDF_STATUS dp_ipa_setup_iface(char *ifname, uint8_t *mac_addr,
qdf_ipa_client_type_t prod_client, qdf_ipa_client_type_t prod_client,
qdf_ipa_client_type_t cons_client, qdf_ipa_client_type_t cons_client,
@@ -2977,7 +2951,7 @@ QDF_STATUS dp_ipa_setup(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
qdf_mem_zero(&pipe_out, sizeof(pipe_out)); qdf_mem_zero(&pipe_out, sizeof(pipe_out));
/* TX PIPE */ /* TX PIPE */
/** /*
* Transfer Ring: WBM Ring * Transfer Ring: WBM Ring
* Transfer Ring Doorbell PA: WBM Tail Pointer Address * Transfer Ring Doorbell PA: WBM Tail Pointer Address
* Event Ring: TCL ring * Event Ring: TCL ring
@@ -3023,7 +2997,7 @@ QDF_STATUS dp_ipa_setup(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
tcl_desc_ptr->packet_offset = 2; /* padding for alignment */ tcl_desc_ptr->packet_offset = 2; /* padding for alignment */
/* RX PIPE */ /* RX PIPE */
/** /*
* Transfer Ring: REO Ring * Transfer Ring: REO Ring
* Transfer Ring Doorbell PA: REO Tail Pointer Address * Transfer Ring Doorbell PA: REO Tail Pointer Address
* Event Ring: FW ring * Event Ring: FW ring
@@ -3130,18 +3104,6 @@ QDF_STATUS dp_ipa_setup(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }
/**
* dp_ipa_setup_iface() - Setup IPA header and register interface
* @ifname: Interface name
* @mac_addr: Interface MAC address
* @prod_client: IPA prod client type
* @cons_client: IPA cons client type
* @session_id: Session ID
* @is_ipv6_enabled: Is IPV6 enabled or not
* @hdl: IPA handle
*
* Return: QDF_STATUS
*/
QDF_STATUS dp_ipa_setup_iface(char *ifname, uint8_t *mac_addr, QDF_STATUS dp_ipa_setup_iface(char *ifname, uint8_t *mac_addr,
qdf_ipa_client_type_t prod_client, qdf_ipa_client_type_t prod_client,
qdf_ipa_client_type_t cons_client, qdf_ipa_client_type_t cons_client,
@@ -3200,16 +3162,6 @@ QDF_STATUS dp_ipa_setup_iface(char *ifname, uint8_t *mac_addr,
#endif /* CONFIG_IPA_WDI_UNIFIED_API */ #endif /* CONFIG_IPA_WDI_UNIFIED_API */
/**
* dp_ipa_cleanup() - Disconnect IPA pipes
* @soc_hdl: dp soc handle
* @pdev_id: dp pdev id
* @tx_pipe_handle: Tx pipe handle
* @rx_pipe_handle: Rx pipe handle
* @hdl: IPA handle
*
* Return: QDF_STATUS
*/
QDF_STATUS dp_ipa_cleanup(struct cdp_soc_t *soc_hdl, uint8_t pdev_id, QDF_STATUS dp_ipa_cleanup(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
uint32_t tx_pipe_handle, uint32_t rx_pipe_handle, uint32_t tx_pipe_handle, uint32_t rx_pipe_handle,
qdf_ipa_wdi_hdl_t hdl) qdf_ipa_wdi_hdl_t hdl)
@@ -3244,14 +3196,6 @@ exit:
return status; return status;
} }
/**
* dp_ipa_cleanup_iface() - Cleanup IPA header and deregister interface
* @ifname: Interface name
* @is_ipv6_enabled: Is IPV6 enabled or not
* @hdl: IPA handle
*
* Return: QDF_STATUS
*/
QDF_STATUS dp_ipa_cleanup_iface(char *ifname, bool is_ipv6_enabled, QDF_STATUS dp_ipa_cleanup_iface(char *ifname, bool is_ipv6_enabled,
qdf_ipa_wdi_hdl_t hdl) qdf_ipa_wdi_hdl_t hdl)
{ {
@@ -3359,14 +3303,6 @@ QDF_STATUS dp_ipa_disable_pipes(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
return result ? QDF_STATUS_E_FAILURE : QDF_STATUS_SUCCESS; return result ? QDF_STATUS_E_FAILURE : QDF_STATUS_SUCCESS;
} }
/**
* dp_ipa_set_perf_level() - Set IPA clock bandwidth based on data rates
* @client: Client type
* @max_supported_bw_mbps: Maximum bandwidth needed (in Mbps)
* @hdl: IPA handle
*
* Return: QDF_STATUS
*/
QDF_STATUS dp_ipa_set_perf_level(int client, uint32_t max_supported_bw_mbps, QDF_STATUS dp_ipa_set_perf_level(int client, uint32_t max_supported_bw_mbps,
qdf_ipa_wdi_hdl_t hdl) qdf_ipa_wdi_hdl_t hdl)
{ {
@@ -3388,7 +3324,7 @@ QDF_STATUS dp_ipa_set_perf_level(int client, uint32_t max_supported_bw_mbps,
} }
/** /**
* dp_ipa_intrabss_send - send IPA RX intra-bss frames * dp_ipa_intrabss_send() - send IPA RX intra-bss frames
* @pdev: pdev * @pdev: pdev
* @vdev: vdev * @vdev: vdev
* @nbuf: skb * @nbuf: skb
@@ -3573,7 +3509,7 @@ bool dp_ipa_is_mdm_platform(void)
#endif #endif
/** /**
* dp_ipa_frag_nbuf_linearize - linearize nbuf for IPA * dp_ipa_frag_nbuf_linearize() - linearize nbuf for IPA
* @soc: soc * @soc: soc
* @nbuf: source skb * @nbuf: source skb
* *
@@ -3636,13 +3572,6 @@ static qdf_nbuf_t dp_ipa_frag_nbuf_linearize(struct dp_soc *soc,
return dst_nbuf; return dst_nbuf;
} }
/**
* dp_ipa_handle_rx_reo_reinject - Handle RX REO reinject skb buffer
* @soc: soc
* @nbuf: skb
*
* Return: nbuf if success and otherwise NULL
*/
qdf_nbuf_t dp_ipa_handle_rx_reo_reinject(struct dp_soc *soc, qdf_nbuf_t nbuf) qdf_nbuf_t dp_ipa_handle_rx_reo_reinject(struct dp_soc *soc, qdf_nbuf_t nbuf)
{ {
@@ -3751,16 +3680,6 @@ QDF_STATUS dp_ipa_ast_create(struct cdp_soc_t *soc_hdl,
#endif #endif
#ifdef QCA_ENHANCED_STATS_SUPPORT #ifdef QCA_ENHANCED_STATS_SUPPORT
/**
* dp_ipa_update_peer_rx_stats - update peer rx stats
* @soc: soc handle
* @vdev_id: vdev id
* @peer_mac: Peer Mac Address
* @nbuf: data nbuf
*
* Return: status success/failure
*/
QDF_STATUS dp_ipa_update_peer_rx_stats(struct cdp_soc_t *soc, QDF_STATUS dp_ipa_update_peer_rx_stats(struct cdp_soc_t *soc,
uint8_t vdev_id, uint8_t *peer_mac, uint8_t vdev_id, uint8_t *peer_mac,
qdf_nbuf_t nbuf) qdf_nbuf_t nbuf)
@@ -3798,12 +3717,6 @@ QDF_STATUS dp_ipa_update_peer_rx_stats(struct cdp_soc_t *soc,
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }
/**
* dp_peer_aggregate_tid_stats - aggregate rx tid stats
* @peer: Data Path peer
*
* Return: void
*/
void void
dp_peer_aggregate_tid_stats(struct dp_peer *peer) dp_peer_aggregate_tid_stats(struct dp_peer *peer)
{ {
@@ -3930,6 +3843,7 @@ void dp_ipa_aggregate_pdev_stats(struct dp_pdev *pdev)
* *
* Return: void * Return: void
*/ */
static
void dp_ipa_get_peer_stats(struct dp_peer *peer, void dp_ipa_get_peer_stats(struct dp_peer *peer,
struct cdp_peer_stats *peer_stats) struct cdp_peer_stats *peer_stats)
{ {
@@ -3954,14 +3868,6 @@ void dp_ipa_get_peer_stats(struct dp_peer *peer,
peer_stats->rx.multicast.bytes; peer_stats->rx.multicast.bytes;
} }
/**
* dp_ipa_txrx_get_pdev_stats - fetch pdev stats
* @soc: DP soc handle
* @pdev_id: id of DP pdev handle
* @pdev_stats: buffer to hold pdev stats
*
* Return : status success/failure
*/
QDF_STATUS QDF_STATUS
dp_ipa_txrx_get_pdev_stats(struct cdp_soc_t *soc, uint8_t pdev_id, dp_ipa_txrx_get_pdev_stats(struct cdp_soc_t *soc, uint8_t pdev_id,
struct cdp_pdev_stats *pdev_stats) struct cdp_pdev_stats *pdev_stats)
@@ -3978,15 +3884,6 @@ dp_ipa_txrx_get_pdev_stats(struct cdp_soc_t *soc, uint8_t pdev_id,
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }
/**
* dp_ipa_txrx_get_vdev_stats - fetch vdev stats
* @soc_hdl: soc handle
* @vdev_id: id of vdev handle
* @buf: buffer to hold vdev stats
* @is_aggregate: for aggregation
*
* Return : int
*/
int dp_ipa_txrx_get_vdev_stats(struct cdp_soc_t *soc_hdl, uint8_t vdev_id, int dp_ipa_txrx_get_vdev_stats(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
void *buf, bool is_aggregate) void *buf, bool is_aggregate)
{ {
@@ -4005,15 +3902,6 @@ int dp_ipa_txrx_get_vdev_stats(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
return 0; return 0;
} }
/**
* dp_ipa_txrx_get_peer_stats - fetch peer stats
* @soc: soc handle
* @vdev_id: id of vdev handle
* @peer_mac: peer mac address
* @peer_stats: buffer to hold peer stats
*
* Return : status success/failure
*/
QDF_STATUS dp_ipa_txrx_get_peer_stats(struct cdp_soc_t *soc, uint8_t vdev_id, QDF_STATUS dp_ipa_txrx_get_peer_stats(struct cdp_soc_t *soc, uint8_t vdev_id,
uint8_t *peer_mac, uint8_t *peer_mac,
struct cdp_peer_stats *peer_stats) struct cdp_peer_stats *peer_stats)

View File

@@ -68,7 +68,7 @@ struct dp_ipa_uc_tx_hdr {
} __packed; } __packed;
/** /**
* struct dp_ipa_uc_tx_hdr - full tx header registered to IPA hardware * struct dp_ipa_uc_tx_vlan_hdr - full tx header registered to IPA hardware
* @eth: ether II header * @eth: ether II header
*/ */
struct dp_ipa_uc_tx_vlan_hdr { struct dp_ipa_uc_tx_vlan_hdr {
@@ -98,8 +98,8 @@ struct dp_ipa_uc_rx_hdr {
#define DP_IPA_HDL_SECOND 1 #define DP_IPA_HDL_SECOND 1
/** /**
* wlan_ipa_get_hdl() - Get ipa handle from IPA component * wlan_ipa_get_hdl() - Get ipa handle from IPA component
* @psoc - control psoc object * @psoc: control psoc object
* @pdev_id - pdev id * @pdev_id: pdev id
* *
* IPA componenet will return the IPA handle based on pdev_id * IPA componenet will return the IPA handle based on pdev_id
* *
@@ -109,8 +109,8 @@ qdf_ipa_wdi_hdl_t wlan_ipa_get_hdl(void *psoc, uint8_t pdev_id);
/** /**
* dp_ipa_get_resource() - Client request resource information * dp_ipa_get_resource() - Client request resource information
* @soc_hdl - data path soc handle * @soc_hdl: data path soc handle
* @pdev_id - device instance id * @pdev_id: device instance id
* *
* IPA client will request IPA UC related resource information * IPA client will request IPA UC related resource information
* Resource information will be distributed to IPA module * Resource information will be distributed to IPA module
@@ -121,54 +121,55 @@ qdf_ipa_wdi_hdl_t wlan_ipa_get_hdl(void *psoc, uint8_t pdev_id);
QDF_STATUS dp_ipa_get_resource(struct cdp_soc_t *soc_hdl, uint8_t pdev_id); QDF_STATUS dp_ipa_get_resource(struct cdp_soc_t *soc_hdl, uint8_t pdev_id);
/** /**
* dp_ipa_set_doorbell_paddr () - Set doorbell register physical address to SRNG * dp_ipa_set_doorbell_paddr() - Set doorbell register physical address to SRNG
* @soc_hdl - data path soc handle * @soc_hdl: data path soc handle
* @pdev_id - device instance id * @pdev_id: device instance id
* *
* Set TX_COMP_DOORBELL register physical address to WBM Head_Ptr_MemAddr_LSB * Set TX_COMP_DOORBELL register physical address to WBM Head_Ptr_MemAddr_LSB
* Set RX_READ_DOORBELL register physical address to REO Head_Ptr_MemAddr_LSB * Set RX_READ_DOORBELL register physical address to REO Head_Ptr_MemAddr_LSB
* *
* Return: none * Return: QDF_STATUS
*/ */
QDF_STATUS dp_ipa_set_doorbell_paddr(struct cdp_soc_t *soc_hdl, QDF_STATUS dp_ipa_set_doorbell_paddr(struct cdp_soc_t *soc_hdl,
uint8_t pdev_id); uint8_t pdev_id);
/** /**
* dp_ipa_iounmap_doorbell_vaddr() - unmap ipa RX db vaddr * dp_ipa_iounmap_doorbell_vaddr() - unmap ipa RX db vaddr
* @soc_hdl - data path soc handle * @soc_hdl: data path soc handle
* @pdev_id - device instance id * @pdev_id: device instance id
* *
* Return: none * Return: QDF_STATUS
*/ */
QDF_STATUS dp_ipa_iounmap_doorbell_vaddr(struct cdp_soc_t *soc_hdl, QDF_STATUS dp_ipa_iounmap_doorbell_vaddr(struct cdp_soc_t *soc_hdl,
uint8_t pdev_id); uint8_t pdev_id);
/** /**
* dp_ipa_op_response() - Handle OP command response from firmware * dp_ipa_op_response() - Handle OP command response from firmware
* @soc_hdl - data path soc handle * @soc_hdl: data path soc handle
* @pdev_id - device instance id * @pdev_id: device instance id
* @op_msg: op response message from firmware * @op_msg: op response message from firmware
* *
* Return: none * Return: QDF_STATUS
*/ */
QDF_STATUS dp_ipa_op_response(struct cdp_soc_t *soc_hdl, uint8_t pdev_id, QDF_STATUS dp_ipa_op_response(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
uint8_t *op_msg); uint8_t *op_msg);
/** /**
* dp_ipa_register_op_cb() - Register OP handler function * dp_ipa_register_op_cb() - Register OP handler function
* @soc_hdl - data path soc handle * @soc_hdl: data path soc handle
* @pdev_id - device instance id * @pdev_id: device instance id
* @op_cb: handler function pointer * @op_cb: handler function pointer
* @usr_ctxt: user context passed back to handler function
* *
* Return: none * Return: QDF_STATUS
*/ */
QDF_STATUS dp_ipa_register_op_cb(struct cdp_soc_t *soc_hdl, uint8_t pdev_id, QDF_STATUS dp_ipa_register_op_cb(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
ipa_uc_op_cb_type op_cb, void *usr_ctxt); ipa_uc_op_cb_type op_cb, void *usr_ctxt);
/** /**
* dp_ipa_register_op_cb() - Deregister OP handler function * dp_ipa_deregister_op_cb() - Deregister OP handler function
* @soc_hdl - data path soc handle * @soc_hdl: data path soc handle
* @pdev_id - device instance id * @pdev_id: device instance id
* *
* Return: none * Return: none
*/ */
@@ -176,10 +177,10 @@ void dp_ipa_deregister_op_cb(struct cdp_soc_t *soc_hdl, uint8_t pdev_id);
/** /**
* dp_ipa_get_stat() - Get firmware wdi status * dp_ipa_get_stat() - Get firmware wdi status
* @soc_hdl - data path soc handle * @soc_hdl: data path soc handle
* @pdev_id - device instance id * @pdev_id: device instance id
* *
* Return: none * Return: QDF_STATUS
*/ */
QDF_STATUS dp_ipa_get_stat(struct cdp_soc_t *soc_hdl, uint8_t pdev_id); QDF_STATUS dp_ipa_get_stat(struct cdp_soc_t *soc_hdl, uint8_t pdev_id);
@@ -195,24 +196,26 @@ qdf_nbuf_t dp_tx_send_ipa_data_frame(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
qdf_nbuf_t skb); qdf_nbuf_t skb);
/** /**
* dp_ipa_enable_autonomy() Enable autonomy RX path * dp_ipa_enable_autonomy() - Enable autonomy RX path
* @soc_hdl - data path soc handle * @soc_hdl: data path soc handle
* @pdev_id - device instance id * @pdev_id: device instance id
* *
* Set all RX packet route to IPA REO ring * Set all RX packet route to IPA REO ring
* Program Destination_Ring_Ctrl_IX_0 REO register to point IPA REO ring * Program Destination_Ring_Ctrl_IX_0 REO register to point IPA REO ring
* Return: none *
* Return: QDF_STATUS
*/ */
QDF_STATUS dp_ipa_enable_autonomy(struct cdp_soc_t *soc_hdl, uint8_t pdev_id); QDF_STATUS dp_ipa_enable_autonomy(struct cdp_soc_t *soc_hdl, uint8_t pdev_id);
/** /**
* dp_ipa_disable_autonomy() Disable autonomy RX path * dp_ipa_disable_autonomy() - Disable autonomy RX path
* @soc_hdl - data path soc handle * @soc_hdl: data path soc handle
* @pdev_id - device instance id * @pdev_id: device instance id
* *
* Disable RX packet routing to IPA REO * Disable RX packet routing to IPA REO
* Program Destination_Ring_Ctrl_IX_0 REO register to disable * Program Destination_Ring_Ctrl_IX_0 REO register to disable
* Return: none *
* Return: QDF_STATUS
*/ */
QDF_STATUS dp_ipa_disable_autonomy(struct cdp_soc_t *soc_hdl, uint8_t pdev_id); QDF_STATUS dp_ipa_disable_autonomy(struct cdp_soc_t *soc_hdl, uint8_t pdev_id);
@@ -220,8 +223,8 @@ QDF_STATUS dp_ipa_disable_autonomy(struct cdp_soc_t *soc_hdl, uint8_t pdev_id);
defined(CONFIG_IPA_WDI_UNIFIED_API) defined(CONFIG_IPA_WDI_UNIFIED_API)
/** /**
* dp_ipa_setup() - Setup and connect IPA pipes * dp_ipa_setup() - Setup and connect IPA pipes
* @soc_hdl - data path soc handle * @soc_hdl: data path soc handle
* @pdev_id - device instance id * @pdev_id: device instance id
* @ipa_i2w_cb: IPA to WLAN callback * @ipa_i2w_cb: IPA to WLAN callback
* @ipa_w2i_cb: WLAN to IPA callback * @ipa_w2i_cb: WLAN to IPA callback
* @ipa_wdi_meter_notifier_cb: IPA WDI metering callback * @ipa_wdi_meter_notifier_cb: IPA WDI metering callback
@@ -232,6 +235,7 @@ QDF_STATUS dp_ipa_disable_autonomy(struct cdp_soc_t *soc_hdl, uint8_t pdev_id);
* @rx_pipe_handle: pointer to Rx pipe handle * @rx_pipe_handle: pointer to Rx pipe handle
* @is_smmu_enabled: Is SMMU enabled or not * @is_smmu_enabled: Is SMMU enabled or not
* @sys_in: parameters to setup sys pipe in mcc mode * @sys_in: parameters to setup sys pipe in mcc mode
* @over_gsi:
* @hdl: IPA handle * @hdl: IPA handle
* @id: IPA instance id * @id: IPA instance id
* @ipa_ast_notify_cb: IPA to WLAN callback for ast create and update * @ipa_ast_notify_cb: IPA to WLAN callback for ast create and update
@@ -251,8 +255,8 @@ QDF_STATUS dp_ipa_setup(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
#else /* CONFIG_IPA_WDI_UNIFIED_API */ #else /* CONFIG_IPA_WDI_UNIFIED_API */
/** /**
* dp_ipa_setup() - Setup and connect IPA pipes * dp_ipa_setup() - Setup and connect IPA pipes
* @soc_hdl - data path soc handle * @soc_hdl: data path soc handle
* @pdev_id - device instance id * @pdev_id: device instance id
* @ipa_i2w_cb: IPA to WLAN callback * @ipa_i2w_cb: IPA to WLAN callback
* @ipa_w2i_cb: WLAN to IPA callback * @ipa_w2i_cb: WLAN to IPA callback
* @ipa_wdi_meter_notifier_cb: IPA WDI metering callback * @ipa_wdi_meter_notifier_cb: IPA WDI metering callback
@@ -261,7 +265,6 @@ QDF_STATUS dp_ipa_setup(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
* @is_rm_enabled: Is IPA RM enabled or not * @is_rm_enabled: Is IPA RM enabled or not
* @tx_pipe_handle: pointer to Tx pipe handle * @tx_pipe_handle: pointer to Tx pipe handle
* @rx_pipe_handle: pointer to Rx pipe handle * @rx_pipe_handle: pointer to Rx pipe handle
* @hdl: IPA handle
* *
* Return: QDF_STATUS * Return: QDF_STATUS
*/ */
@@ -272,21 +275,54 @@ QDF_STATUS dp_ipa_setup(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
bool is_rm_enabled, uint32_t *tx_pipe_handle, bool is_rm_enabled, uint32_t *tx_pipe_handle,
uint32_t *rx_pipe_handle); uint32_t *rx_pipe_handle);
#endif /* CONFIG_IPA_WDI_UNIFIED_API */ #endif /* CONFIG_IPA_WDI_UNIFIED_API */
/**
* dp_ipa_cleanup() - Disconnect IPA pipes
* @soc_hdl: dp soc handle
* @pdev_id: dp pdev id
* @tx_pipe_handle: Tx pipe handle
* @rx_pipe_handle: Rx pipe handle
* @hdl: IPA handle
*
* Return: QDF_STATUS
*/
QDF_STATUS dp_ipa_cleanup(struct cdp_soc_t *soc_hdl, uint8_t pdev_id, QDF_STATUS dp_ipa_cleanup(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
uint32_t tx_pipe_handle, uint32_t tx_pipe_handle, uint32_t rx_pipe_handle,
uint32_t rx_pipe_handle, qdf_ipa_wdi_hdl_t hdl); qdf_ipa_wdi_hdl_t hdl);
/**
* dp_ipa_setup_iface() - Setup IPA header and register interface
* @ifname: Interface name
* @mac_addr: Interface MAC address
* @prod_client: IPA prod client type
* @cons_client: IPA cons client type
* @session_id: Session ID
* @is_ipv6_enabled: Is IPV6 enabled or not
* @hdl: IPA handle
*
* Return: QDF_STATUS
*/
QDF_STATUS dp_ipa_setup_iface(char *ifname, uint8_t *mac_addr, QDF_STATUS dp_ipa_setup_iface(char *ifname, uint8_t *mac_addr,
qdf_ipa_client_type_t prod_client, qdf_ipa_client_type_t prod_client,
qdf_ipa_client_type_t cons_client, qdf_ipa_client_type_t cons_client,
uint8_t session_id, bool is_ipv6_enabled, uint8_t session_id, bool is_ipv6_enabled,
qdf_ipa_wdi_hdl_t hdl); qdf_ipa_wdi_hdl_t hdl);
/**
* dp_ipa_cleanup_iface() - Cleanup IPA header and deregister interface
* @ifname: Interface name
* @is_ipv6_enabled: Is IPV6 enabled or not
* @hdl: IPA handle
*
* Return: QDF_STATUS
*/
QDF_STATUS dp_ipa_cleanup_iface(char *ifname, bool is_ipv6_enabled, QDF_STATUS dp_ipa_cleanup_iface(char *ifname, bool is_ipv6_enabled,
qdf_ipa_wdi_hdl_t hdl); qdf_ipa_wdi_hdl_t hdl);
/** /**
* dp_ipa_uc_enable_pipes() - Enable and resume traffic on Tx/Rx pipes * dp_ipa_enable_pipes() - Enable and resume traffic on Tx/Rx pipes
* @soc_hdl - handle to the soc * @soc_hdl: handle to the soc
* @pdev_id - pdev id number, to get the handle * @pdev_id: pdev id number, to get the handle
* @hdl: IPA handle * @hdl: IPA handle
* *
* Return: QDF_STATUS * Return: QDF_STATUS
@@ -295,15 +331,24 @@ QDF_STATUS dp_ipa_enable_pipes(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
qdf_ipa_wdi_hdl_t hdl); qdf_ipa_wdi_hdl_t hdl);
/** /**
* dp_ipa_disable_pipes() Suspend traffic and disable Tx/Rx pipes * dp_ipa_disable_pipes() - Suspend traffic and disable Tx/Rx pipes
* @soc_hdl - handle to the soc * @soc_hdl: handle to the soc
* @pdev_id - pdev id number, to get the handle * @pdev_id: pdev id number, to get the handle
* @hdl: IPA handle * @hdl: IPA handle
* *
* Return: QDF_STATUS * Return: QDF_STATUS
*/ */
QDF_STATUS dp_ipa_disable_pipes(struct cdp_soc_t *soc_hdl, uint8_t pdev_id, QDF_STATUS dp_ipa_disable_pipes(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
qdf_ipa_wdi_hdl_t hdl); qdf_ipa_wdi_hdl_t hdl);
/**
* dp_ipa_set_perf_level() - Set IPA clock bandwidth based on data rates
* @client: Client type
* @max_supported_bw_mbps: Maximum bandwidth needed (in Mbps)
* @hdl: IPA handle
*
* Return: QDF_STATUS
*/
QDF_STATUS dp_ipa_set_perf_level(int client, uint32_t max_supported_bw_mbps, QDF_STATUS dp_ipa_set_perf_level(int client, uint32_t max_supported_bw_mbps,
qdf_ipa_wdi_hdl_t hdl); qdf_ipa_wdi_hdl_t hdl);
@@ -324,12 +369,28 @@ bool dp_ipa_rx_intrabss_fwd(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
qdf_nbuf_t nbuf, bool *fwd_success); qdf_nbuf_t nbuf, bool *fwd_success);
int dp_ipa_uc_detach(struct dp_soc *soc, struct dp_pdev *pdev); int dp_ipa_uc_detach(struct dp_soc *soc, struct dp_pdev *pdev);
int dp_ipa_uc_attach(struct dp_soc *soc, struct dp_pdev *pdev); int dp_ipa_uc_attach(struct dp_soc *soc, struct dp_pdev *pdev);
/**
* dp_ipa_ring_resource_setup() - setup IPA ring resources
* @soc: data path SoC handle
* @pdev:
*
* Return: status
*/
int dp_ipa_ring_resource_setup(struct dp_soc *soc, int dp_ipa_ring_resource_setup(struct dp_soc *soc,
struct dp_pdev *pdev); struct dp_pdev *pdev);
bool dp_reo_remap_config(struct dp_soc *soc, uint32_t *remap0, bool dp_reo_remap_config(struct dp_soc *soc, uint32_t *remap0,
uint32_t *remap1, uint32_t *remap2); uint32_t *remap1, uint32_t *remap2);
bool dp_ipa_is_mdm_platform(void); bool dp_ipa_is_mdm_platform(void);
/**
* dp_ipa_handle_rx_reo_reinject() - Handle RX REO reinject skb buffer
* @soc: soc
* @nbuf: skb
*
* Return: nbuf if success and otherwise NULL
*/
qdf_nbuf_t dp_ipa_handle_rx_reo_reinject(struct dp_soc *soc, qdf_nbuf_t nbuf); qdf_nbuf_t dp_ipa_handle_rx_reo_reinject(struct dp_soc *soc, qdf_nbuf_t nbuf);
QDF_STATUS dp_ipa_handle_rx_buf_smmu_mapping(struct dp_soc *soc, QDF_STATUS dp_ipa_handle_rx_buf_smmu_mapping(struct dp_soc *soc,
@@ -430,7 +491,7 @@ dp_ipa_reo_ctx_buf_mapping_unlock(struct dp_soc *soc,
/** /**
* dp_ipa_ast_create() - Create/update AST entry in AST table * dp_ipa_ast_create() - Create/update AST entry in AST table
* for learning/roaming packets from IPA * for learning/roaming packets from IPA
* @soc: data path soc handle * @soc_hdl: data path soc handle
* @data: Structure used for updating the AST table * @data: Structure used for updating the AST table
* *
* Create/update AST entry in AST table for learning/roaming packets from IPA * Create/update AST entry in AST table for learning/roaming packets from IPA
@@ -462,14 +523,52 @@ dp_ipa_ast_notify_cb(qdf_ipa_wdi_conn_in_params_t *pipe_in,
#endif #endif
#ifdef QCA_ENHANCED_STATS_SUPPORT #ifdef QCA_ENHANCED_STATS_SUPPORT
/**
* dp_ipa_txrx_get_peer_stats - fetch peer stats
* @soc: soc handle
* @vdev_id: id of vdev handle
* @peer_mac: peer mac address
* @peer_stats: buffer to hold peer stats
*
* Return: status success/failure
*/
QDF_STATUS dp_ipa_txrx_get_peer_stats(struct cdp_soc_t *soc, uint8_t vdev_id, QDF_STATUS dp_ipa_txrx_get_peer_stats(struct cdp_soc_t *soc, uint8_t vdev_id,
uint8_t *peer_mac, uint8_t *peer_mac,
struct cdp_peer_stats *peer_stats); struct cdp_peer_stats *peer_stats);
/**
* dp_ipa_txrx_get_vdev_stats - fetch vdev stats
* @soc_hdl: soc handle
* @vdev_id: id of vdev handle
* @buf: buffer to hold vdev stats
* @is_aggregate: for aggregation
*
* Return: int
*/
int dp_ipa_txrx_get_vdev_stats(struct cdp_soc_t *soc_hdl, uint8_t vdev_id, int dp_ipa_txrx_get_vdev_stats(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
void *buf, bool is_aggregate); void *buf, bool is_aggregate);
/**
* dp_ipa_txrx_get_pdev_stats() - fetch pdev stats
* @soc: DP soc handle
* @pdev_id: id of DP pdev handle
* @pdev_stats: buffer to hold pdev stats
*
* Return: status success/failure
*/
QDF_STATUS dp_ipa_txrx_get_pdev_stats(struct cdp_soc_t *soc, uint8_t pdev_id, QDF_STATUS dp_ipa_txrx_get_pdev_stats(struct cdp_soc_t *soc, uint8_t pdev_id,
struct cdp_pdev_stats *pdev_stats); struct cdp_pdev_stats *pdev_stats);
QDF_STATUS dp_ipa_update_peer_rx_stats(struct cdp_soc_t *soc, uint8_t pdev_id,
/**
* dp_ipa_update_peer_rx_stats() - update peer rx stats
* @soc: soc handle
* @vdev_id: vdev id
* @peer_mac: Peer Mac Address
* @nbuf: data nbuf
*
* Return: status success/failure
*/
QDF_STATUS dp_ipa_update_peer_rx_stats(struct cdp_soc_t *soc, uint8_t vdev_id,
uint8_t *peer_mac, qdf_nbuf_t nbuf); uint8_t *peer_mac, qdf_nbuf_t nbuf);
#endif #endif
#else #else