Forráskód Böngészése

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

The kernel-doc script identified a large number of documentation
issues in dp/wifi3.0/dp_rx_defrag.[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: I4080e4b614c5d1f0253afd06fc4eb650142b76d4
CRs-Fixed: 3373163
Jeff Johnson 2 éve
szülő
commit
8b86e068ec
2 módosított fájl, 164 hozzáadás és 150 törlés
  1. 93 139
      dp/wifi3.0/dp_rx_defrag.c
  2. 71 11
      dp/wifi3.0/dp_rx_defrag.h

+ 93 - 139
dp/wifi3.0/dp_rx_defrag.c

@@ -1,6 +1,6 @@
 /*
  * 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 purpose with or without fee is hereby granted, provided that the
@@ -68,12 +68,12 @@ const struct dp_rx_defrag_cipher dp_f_gcmp = {
 	WLAN_IEEE80211_GCMP_MICLEN,
 };
 
-/*
- * dp_rx_defrag_frames_free(): Free fragment chain
+/**
+ * dp_rx_defrag_frames_free() - Free fragment chain
  * @frames: Fragment chain
  *
  * Iterates through the fragment chain and frees them
- * Returns: None
+ * Return: None
  */
 static void dp_rx_defrag_frames_free(qdf_nbuf_t frames)
 {
@@ -86,15 +86,15 @@ static void dp_rx_defrag_frames_free(qdf_nbuf_t frames)
 	}
 }
 
-/*
- * dp_rx_clear_saved_desc_info(): Clears descriptor info
- * @txrx peer: Pointer to the peer data structure
+/**
+ * dp_rx_clear_saved_desc_info() - Clears descriptor info
+ * @txrx_peer: Pointer to the peer data structure
  * @tid: Transmit ID (TID)
  *
  * Saves MPDU descriptor info and MSDU link pointer from REO
  * ring descriptor. The cache is created per peer, per TID
  *
- * Returns: None
+ * Return: None
  */
 static void dp_rx_clear_saved_desc_info(struct dp_txrx_peer *txrx_peer,
 					unsigned int tid)
@@ -141,15 +141,6 @@ static void dp_rx_return_head_frag_desc(struct dp_txrx_peer *txrx_peer,
 	}
 }
 
-/*
- * dp_rx_reorder_flush_frag(): Flush the frag list
- * @txrx_peer: Pointer to the peer data structure
- * @tid: Transmit ID (TID)
- *
- * Flush the per-TID frag list
- *
- * Returns: None
- */
 void dp_rx_reorder_flush_frag(struct dp_txrx_peer *txrx_peer,
 			      unsigned int tid)
 {
@@ -165,14 +156,6 @@ void dp_rx_reorder_flush_frag(struct dp_txrx_peer *txrx_peer,
 	dp_rx_defrag_cleanup(txrx_peer, tid);
 }
 
-/*
- * dp_rx_defrag_waitlist_flush(): Flush SOC defrag wait list
- * @soc: DP SOC
- *
- * Flush fragments of all waitlisted TID's
- *
- * Returns: None
- */
 void dp_rx_defrag_waitlist_flush(struct dp_soc *soc)
 {
 	struct dp_rx_tid_defrag *waitlist_elem = NULL;
@@ -244,14 +227,14 @@ void dp_rx_defrag_waitlist_flush(struct dp_soc *soc)
 	}
 }
 
-/*
- * dp_rx_defrag_waitlist_add(): Update per-PDEV defrag wait list
+/**
+ * dp_rx_defrag_waitlist_add() - Update per-PDEV defrag wait list
  * @txrx_peer: Pointer to the peer data structure
  * @tid: Transmit ID (TID)
  *
  * Appends per-tid fragments to global fragment wait list
  *
- * Returns: None
+ * Return: None
  */
 static void dp_rx_defrag_waitlist_add(struct dp_txrx_peer *txrx_peer,
 				      unsigned int tid)
@@ -274,15 +257,6 @@ static void dp_rx_defrag_waitlist_add(struct dp_txrx_peer *txrx_peer,
 	qdf_spin_unlock_bh(&psoc->rx.defrag.defrag_lock);
 }
 
-/*
- * dp_rx_defrag_waitlist_remove(): Remove fragments from waitlist
- * @txrx peer: Pointer to the peer data structure
- * @tid: Transmit ID (TID)
- *
- * Remove fragments from waitlist
- *
- * Returns: None
- */
 void dp_rx_defrag_waitlist_remove(struct dp_txrx_peer *txrx_peer,
 				  unsigned int tid)
 {
@@ -317,8 +291,8 @@ void dp_rx_defrag_waitlist_remove(struct dp_txrx_peer *txrx_peer,
 	qdf_spin_unlock_bh(&soc->rx.defrag.defrag_lock);
 }
 
-/*
- * dp_rx_defrag_fraglist_insert(): Create a per-sequence fragment list
+/**
+ * dp_rx_defrag_fraglist_insert() - Create a per-sequence fragment list
  * @txrx_peer: Pointer to the peer data structure
  * @tid: Transmit ID (TID)
  * @head_addr: Pointer to head list
@@ -328,7 +302,7 @@ void dp_rx_defrag_waitlist_remove(struct dp_txrx_peer *txrx_peer,
  *
  * Build a per-tid, per-sequence fragment list.
  *
- * Returns: Success, if inserted
+ * Return: Success, if inserted
  */
 static QDF_STATUS
 dp_rx_defrag_fraglist_insert(struct dp_txrx_peer *txrx_peer, unsigned int tid,
@@ -442,14 +416,15 @@ insert_fail:
 }
 
 
-/*
- * dp_rx_defrag_tkip_decap(): decap tkip encrypted fragment
+/**
+ * dp_rx_defrag_tkip_decap() - decap tkip encrypted fragment
+ * @soc: DP SOC
  * @msdu: Pointer to the fragment
  * @hdrlen: 802.11 header length (mostly useful in 4 addr frames)
  *
  * decap tkip encrypted fragment
  *
- * Returns: QDF_STATUS
+ * Return: QDF_STATUS
  */
 static QDF_STATUS
 dp_rx_defrag_tkip_decap(struct dp_soc *soc,
@@ -474,14 +449,15 @@ dp_rx_defrag_tkip_decap(struct dp_soc *soc,
 	return QDF_STATUS_SUCCESS;
 }
 
-/*
- * dp_rx_defrag_ccmp_demic(): Remove MIC information from CCMP fragment
+/**
+ * dp_rx_defrag_ccmp_demic() - Remove MIC information from CCMP fragment
+ * @soc: DP SOC
  * @nbuf: Pointer to the fragment buffer
  * @hdrlen: 802.11 header length (mostly useful in 4 addr frames)
  *
  * Remove MIC information from CCMP fragment
  *
- * Returns: QDF_STATUS
+ * Return: QDF_STATUS
  */
 static QDF_STATUS
 dp_rx_defrag_ccmp_demic(struct dp_soc *soc, qdf_nbuf_t nbuf, uint16_t hdrlen)
@@ -502,14 +478,15 @@ dp_rx_defrag_ccmp_demic(struct dp_soc *soc, qdf_nbuf_t nbuf, uint16_t hdrlen)
 	return QDF_STATUS_SUCCESS;
 }
 
-/*
- * dp_rx_defrag_ccmp_decap(): decap CCMP encrypted fragment
+/**
+ * dp_rx_defrag_ccmp_decap() - decap CCMP encrypted fragment
+ * @soc: DP SOC
  * @nbuf: Pointer to the fragment
  * @hdrlen: length of the header information
  *
  * decap CCMP encrypted fragment
  *
- * Returns: QDF_STATUS
+ * Return: QDF_STATUS
  */
 static QDF_STATUS
 dp_rx_defrag_ccmp_decap(struct dp_soc *soc, qdf_nbuf_t nbuf, uint16_t hdrlen)
@@ -526,14 +503,15 @@ dp_rx_defrag_ccmp_decap(struct dp_soc *soc, qdf_nbuf_t nbuf, uint16_t hdrlen)
 	return QDF_STATUS_SUCCESS;
 }
 
-/*
- * dp_rx_defrag_wep_decap(): decap WEP encrypted fragment
+/**
+ * dp_rx_defrag_wep_decap() - decap WEP encrypted fragment
+ * @soc: DP SOC
  * @msdu: Pointer to the fragment
  * @hdrlen: length of the header information
  *
  * decap WEP encrypted fragment
  *
- * Returns: QDF_STATUS
+ * Return: QDF_STATUS
  */
 static QDF_STATUS
 dp_rx_defrag_wep_decap(struct dp_soc *soc, qdf_nbuf_t msdu, uint16_t hdrlen)
@@ -549,14 +527,14 @@ dp_rx_defrag_wep_decap(struct dp_soc *soc, qdf_nbuf_t msdu, uint16_t hdrlen)
 	return QDF_STATUS_SUCCESS;
 }
 
-/*
- * dp_rx_defrag_hdrsize(): Calculate the header size of the received fragment
+/**
+ * dp_rx_defrag_hdrsize() - Calculate the header size of the received fragment
  * @soc: soc handle
  * @nbuf: Pointer to the fragment
  *
  * Calculate the header size of the received fragment
  *
- * Returns: header size (uint16_t)
+ * Return: header size (uint16_t)
  */
 static uint16_t dp_rx_defrag_hdrsize(struct dp_soc *soc, qdf_nbuf_t nbuf)
 {
@@ -592,14 +570,14 @@ static uint16_t dp_rx_defrag_hdrsize(struct dp_soc *soc, qdf_nbuf_t nbuf)
 	return size;
 }
 
-/*
- * dp_rx_defrag_michdr(): Calculate a pseudo MIC header
+/**
+ * dp_rx_defrag_michdr() - Calculate a pseudo MIC header
  * @wh0: Pointer to the wireless header of the fragment
  * @hdr: Array to hold the pseudo header
  *
  * Calculate a pseudo MIC header
  *
- * Returns: None
+ * Return: None
  */
 static void dp_rx_defrag_michdr(const struct ieee80211_frame *wh0,
 				uint8_t hdr[])
@@ -653,8 +631,9 @@ static void dp_rx_defrag_michdr(const struct ieee80211_frame *wh0,
 	hdr[13] = hdr[14] = hdr[15] = 0;	/* reserved */
 }
 
-/*
- * dp_rx_defrag_mic(): Calculate MIC header
+/**
+ * dp_rx_defrag_mic() - Calculate MIC header
+ * @soc: DP SOC
  * @key: Pointer to the key
  * @wbuf: fragment buffer
  * @off: Offset
@@ -663,7 +642,7 @@ static void dp_rx_defrag_michdr(const struct ieee80211_frame *wh0,
  *
  * Calculate a pseudo MIC header
  *
- * Returns: QDF_STATUS
+ * Return: QDF_STATUS
  */
 static QDF_STATUS dp_rx_defrag_mic(struct dp_soc *soc, const uint8_t *key,
 				   qdf_nbuf_t wbuf, uint16_t off,
@@ -779,15 +758,16 @@ static QDF_STATUS dp_rx_defrag_mic(struct dp_soc *soc, const uint8_t *key,
 	return QDF_STATUS_SUCCESS;
 }
 
-/*
- * dp_rx_defrag_tkip_demic(): Remove MIC header from the TKIP frame
+/**
+ * dp_rx_defrag_tkip_demic() - Remove MIC header from the TKIP frame
+ * @soc: DP SOC
  * @key: Pointer to the key
  * @msdu: fragment buffer
  * @hdrlen: Length of the header information
  *
  * Remove MIC information from the TKIP frame
  *
- * Returns: QDF_STATUS
+ * Return: QDF_STATUS
  */
 static QDF_STATUS dp_rx_defrag_tkip_demic(struct dp_soc *soc,
 					  const uint8_t *key,
@@ -855,14 +835,15 @@ static QDF_STATUS dp_rx_defrag_tkip_demic(struct dp_soc *soc,
 	return QDF_STATUS_SUCCESS;
 }
 
-/*
- * dp_rx_frag_pull_hdr(): Pulls the RXTLV & the 802.11 headers
+/**
+ * dp_rx_frag_pull_hdr() - Pulls the RXTLV & the 802.11 headers
+ * @soc: DP SOC
  * @nbuf: buffer pointer
  * @hdrsize: size of the header to be pulled
  *
  * Pull the RXTLV & the 802.11 headers
  *
- * Returns: None
+ * Return: None
  */
 static void dp_rx_frag_pull_hdr(struct dp_soc *soc,
 				qdf_nbuf_t nbuf, uint16_t hdrsize)
@@ -875,13 +856,14 @@ static void dp_rx_frag_pull_hdr(struct dp_soc *soc,
 		 (uint32_t)qdf_nbuf_len(nbuf), hdrsize);
 }
 
-/*
- * dp_rx_defrag_pn_check(): Check the PN of current fragmented with prev PN
+/**
+ * dp_rx_defrag_pn_check() - Check the PN of current fragmented with prev PN
+ * @soc: DP SOC
  * @msdu: msdu to get the current PN
  * @cur_pn128: PN extracted from current msdu
  * @prev_pn128: Prev PN
  *
- * Returns: 0 on success, non zero on failure
+ * Return: 0 on success, non zero on failure
  */
 static int dp_rx_defrag_pn_check(struct dp_soc *soc, qdf_nbuf_t msdu,
 				 uint64_t *cur_pn128, uint64_t *prev_pn128)
@@ -898,15 +880,16 @@ static int dp_rx_defrag_pn_check(struct dp_soc *soc, qdf_nbuf_t msdu,
 	return out_of_order;
 }
 
-/*
- * dp_rx_construct_fraglist(): Construct a nbuf fraglist
- * @txrx peer: Pointer to the txrx peer
+/**
+ * dp_rx_construct_fraglist() - Construct a nbuf fraglist
+ * @txrx_peer: Pointer to the txrx peer
+ * @tid: Transmit ID (TID)
  * @head: Pointer to list of fragments
  * @hdrsize: Size of the header to be pulled
  *
  * Construct a nbuf fraglist
  *
- * Returns: None
+ * Return: None
  */
 static int
 dp_rx_construct_fraglist(struct dp_txrx_peer *txrx_peer, int tid,
@@ -980,16 +963,9 @@ dp_rx_construct_fraglist(struct dp_txrx_peer *txrx_peer, int tid,
 }
 
 /**
- * dp_rx_defrag_err() - rx err handler
- * @pdev: handle to pdev object
- * @vdev_id: vdev id
- * @peer_mac_addr: peer mac address
- * @tid: TID
- * @tsf32: TSF
- * @err_type: error type
- * @rx_frame: rx frame
- * @pn: PN Number
- * @key_id: key id
+ * dp_rx_defrag_err() - rx defragmentation error handler
+ * @vdev: handle to vdev object
+ * @nbuf: packet buffer
  *
  * This function handles rx error and send MIC error notification
  *
@@ -1026,16 +1002,17 @@ static void dp_rx_defrag_err(struct dp_vdev *vdev, qdf_nbuf_t nbuf)
 }
 
 
-/*
- * dp_rx_defrag_nwifi_to_8023(): Transcap 802.11 to 802.3
+/**
+ * dp_rx_defrag_nwifi_to_8023() - Transcap 802.11 to 802.3
  * @soc: dp soc handle
  * @txrx_peer: txrx_peer handle
+ * @tid: Transmit ID (TID)
  * @nbuf: Pointer to the fragment buffer
  * @hdrsize: Size of headers
  *
  * Transcap the fragment from 802.11 to 802.3
  *
- * Returns: None
+ * Return: None
  */
 static void
 dp_rx_defrag_nwifi_to_8023(struct dp_soc *soc, struct dp_txrx_peer *txrx_peer,
@@ -1139,13 +1116,13 @@ dp_rx_defrag_nwifi_to_8023(struct dp_soc *soc, struct dp_txrx_peer *txrx_peer,
 }
 
 #ifdef RX_DEFRAG_DO_NOT_REINJECT
-/*
- * dp_rx_defrag_deliver(): Deliver defrag packet to stack
- * @peer: Pointer to the peer
+/**
+ * dp_rx_defrag_deliver() - Deliver defrag packet to stack
+ * @txrx_peer: Pointer to the peer
  * @tid: Transmit Identifier
  * @head: Nbuf to be delivered
  *
- * Returns: None
+ * Return: None
  */
 static inline void dp_rx_defrag_deliver(struct dp_txrx_peer *txrx_peer,
 					unsigned int tid,
@@ -1169,15 +1146,15 @@ static inline void dp_rx_defrag_deliver(struct dp_txrx_peer *txrx_peer,
 			       deliver_list_tail);
 }
 
-/*
- * dp_rx_defrag_reo_reinject(): Reinject the fragment chain back into REO
- * @txrx peer: Pointer to the peer
+/**
+ * dp_rx_defrag_reo_reinject() - Reinject the fragment chain back into REO
+ * @txrx_peer: Pointer to the peer
  * @tid: Transmit Identifier
  * @head: Buffer to be reinjected back
  *
  * Reinject the fragment chain back into REO
  *
- * Returns: QDF_STATUS
+ * Return: QDF_STATUS
  */
 static QDF_STATUS dp_rx_defrag_reo_reinject(struct dp_txrx_peer *txrx_peer,
 					    unsigned int tid, qdf_nbuf_t head)
@@ -1202,7 +1179,7 @@ static QDF_STATUS dp_rx_defrag_reo_reinject(struct dp_txrx_peer *txrx_peer,
  * @sw_cookie: SW cookie of the buffer reinjected to SW2REO ring
  * @rbm: Return buffer manager of the buffer reinjected to SW2REO ring
  *
- * Returns: None
+ * Return: None
  */
 static inline void
 dp_rx_reinject_ring_record_entry(struct dp_soc *soc, uint64_t paddr,
@@ -1233,15 +1210,15 @@ dp_rx_reinject_ring_record_entry(struct dp_soc *soc, uint64_t paddr,
 }
 #endif
 
-/*
- * dp_rx_defrag_reo_reinject(): Reinject the fragment chain back into REO
+/**
+ * dp_rx_defrag_reo_reinject() - Reinject the fragment chain back into REO
  * @txrx_peer: Pointer to the txrx_peer
  * @tid: Transmit Identifier
  * @head: Buffer to be reinjected back
  *
  * Reinject the fragment chain back into REO
  *
- * Returns: QDF_STATUS
+ * Return: QDF_STATUS
  */
 static QDF_STATUS dp_rx_defrag_reo_reinject(struct dp_txrx_peer *txrx_peer,
 					    unsigned int tid, qdf_nbuf_t head)
@@ -1420,15 +1397,15 @@ static QDF_STATUS dp_rx_defrag_reo_reinject(struct dp_txrx_peer *txrx_peer,
 }
 #endif
 
-/*
- * dp_rx_defrag_gcmp_demic(): Remove MIC information from GCMP fragment
+/**
+ * dp_rx_defrag_gcmp_demic() - Remove MIC information from GCMP fragment
  * @soc: Datapath soc structure
  * @nbuf: Pointer to the fragment buffer
  * @hdrlen: 802.11 header length
  *
  * Remove MIC information from GCMP fragment
  *
- * Returns: QDF_STATUS
+ * Return: QDF_STATUS
  */
 static QDF_STATUS dp_rx_defrag_gcmp_demic(struct dp_soc *soc, qdf_nbuf_t nbuf,
 					  uint16_t hdrlen)
@@ -1452,16 +1429,16 @@ static QDF_STATUS dp_rx_defrag_gcmp_demic(struct dp_soc *soc, qdf_nbuf_t nbuf,
 	return QDF_STATUS_SUCCESS;
 }
 
-/*
- * dp_rx_defrag(): Defragment the fragment chain
- * @txrx peer: Pointer to the peer
+/**
+ * dp_rx_defrag() - Defragment the fragment chain
+ * @txrx_peer: Pointer to the peer
  * @tid: Transmit Identifier
  * @frag_list_head: Pointer to head list
  * @frag_list_tail: Pointer to tail list
  *
  * Defragment the fragment chain
  *
- * Returns: QDF_STATUS
+ * Return: QDF_STATUS
  */
 static QDF_STATUS dp_rx_defrag(struct dp_txrx_peer *txrx_peer, unsigned int tid,
 			       qdf_nbuf_t frag_list_head,
@@ -1617,13 +1594,6 @@ static QDF_STATUS dp_rx_defrag(struct dp_txrx_peer *txrx_peer, unsigned int tid,
 	return QDF_STATUS_SUCCESS;
 }
 
-/*
- * dp_rx_defrag_cleanup(): Clean up activities
- * @txrx_peer: Pointer to the peer
- * @tid: Transmit Identifier
- *
- * Returns: None
- */
 void dp_rx_defrag_cleanup(struct dp_txrx_peer *txrx_peer, unsigned int tid)
 {
 	struct dp_rx_reorder_array_elem *rx_reorder_array_elem =
@@ -1647,14 +1617,15 @@ void dp_rx_defrag_cleanup(struct dp_txrx_peer *txrx_peer, unsigned int tid)
 	txrx_peer->rx_tid[tid].curr_seq_num = 0;
 }
 
-/*
- * dp_rx_defrag_save_info_from_ring_desc(): Save info from REO ring descriptor
+/**
+ * dp_rx_defrag_save_info_from_ring_desc() - Save info from REO ring descriptor
  * @soc: Pointer to the SOC data structure
  * @ring_desc: Pointer to the dst ring descriptor
+ * @rx_desc: Pointer to rx descriptor
  * @txrx_peer: Pointer to the peer
  * @tid: Transmit Identifier
  *
- * Returns: None
+ * Return: None
  */
 static QDF_STATUS
 dp_rx_defrag_save_info_from_ring_desc(struct dp_soc *soc,
@@ -1686,7 +1657,7 @@ dp_rx_defrag_save_info_from_ring_desc(struct dp_soc *soc,
 
 #ifdef DP_RX_DEFRAG_ADDR1_CHECK_WAR
 #ifdef WLAN_FEATURE_11BE_MLO
-/*
+/**
  * dp_rx_defrag_vdev_mac_addr_cmp() - function to check whether mac address
  *				matches VDEV mac
  * @vdev: dp_vdev object of the VDEV on which this data packet is received
@@ -1751,16 +1722,18 @@ static inline bool dp_rx_defrag_addr1_check(struct dp_soc *soc,
 }
 #endif
 
-/*
- * dp_rx_defrag_store_fragment(): Store incoming fragments
+/**
+ * dp_rx_defrag_store_fragment() - Store incoming fragments
  * @soc: Pointer to the SOC data structure
  * @ring_desc: Pointer to the ring descriptor
+ * @head:
+ * @tail:
  * @mpdu_desc_info: MPDU descriptor info
  * @tid: Traffic Identifier
  * @rx_desc: Pointer to rx descriptor
  * @rx_bfs: Number of bfs consumed
  *
- * Returns: QDF_STATUS
+ * Return: QDF_STATUS
  */
 static QDF_STATUS
 dp_rx_defrag_store_fragment(struct dp_soc *soc,
@@ -2065,25 +2038,6 @@ end:
 	return QDF_STATUS_E_DEFRAG_ERROR;
 }
 
-/**
- * dp_rx_frag_handle() - Handles fragmented Rx frames
- *
- * @soc: core txrx main context
- * @ring_desc: opaque pointer to the REO error ring descriptor
- * @mpdu_desc_info: MPDU descriptor information from ring descriptor
- * @head: head of the local descriptor free-list
- * @tail: tail of the local descriptor free-list
- * @quota: No. of units (packets) that can be serviced in one shot.
- *
- * This function implements RX 802.11 fragmentation handling
- * The handling is mostly same as legacy fragmentation handling.
- * If required, this function can re-inject the frames back to
- * REO ring (with proper setting to by-pass fragmentation check
- * but use duplicate detection / re-ordering and routing these frames
- * to a different core.
- *
- * Return: uint32_t: No. of elements processed
- */
 uint32_t dp_rx_frag_handle(struct dp_soc *soc, hal_ring_desc_t ring_desc,
 			   struct hal_rx_mpdu_desc_info *mpdu_desc_info,
 			   struct dp_rx_desc *rx_desc,

+ 71 - 11
dp/wifi3.0/dp_rx_defrag.h

@@ -1,6 +1,6 @@
 /*
  * Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
- * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
  *
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
@@ -49,14 +49,34 @@ struct dp_rx_defrag_cipher {
 	uint8_t ic_miclen;
 };
 
+/**
+ * dp_rx_frag_handle() - Handles fragmented Rx frames
+ *
+ * @soc: core txrx main context
+ * @ring_desc: opaque pointer to the REO error ring descriptor
+ * @mpdu_desc_info: MPDU descriptor information from ring descriptor
+ * @rx_desc:
+ * @mac_id:
+ * @quota: No. of units (packets) that can be serviced in one shot.
+ *
+ * This function implements RX 802.11 fragmentation handling
+ * The handling is mostly same as legacy fragmentation handling.
+ * If required, this function can re-inject the frames back to
+ * REO ring (with proper setting to by-pass fragmentation check
+ * but use duplicate detection / re-ordering and routing these frames
+ * to a different core.
+ *
+ * Return: uint32_t: No. of elements processed
+ */
 uint32_t dp_rx_frag_handle(struct dp_soc *soc, hal_ring_desc_t  ring_desc,
 			   struct hal_rx_mpdu_desc_info *mpdu_desc_info,
 			   struct dp_rx_desc *rx_desc,
 			   uint8_t *mac_id,
 			   uint32_t quota);
 
-/*
+/**
  * dp_rx_frag_get_mac_hdr() - Return pointer to the mac hdr
+ * @soc: DP SOC
  * @rx_desc_info: Pointer to the pkt_tlvs in the
  * nbuf (pkt_tlvs->mac_hdr->data)
  *
@@ -65,7 +85,7 @@ uint32_t dp_rx_frag_handle(struct dp_soc *soc, hal_ring_desc_t  ring_desc,
  * 802.11 fields that hardware does not populate in the
  * rx meta data.
  *
- * Returns: pointer to ieee80211_frame
+ * Return: pointer to ieee80211_frame
  */
 static inline struct ieee80211_frame *
 dp_rx_frag_get_mac_hdr(struct dp_soc *soc, uint8_t *rx_desc_info)
@@ -74,12 +94,13 @@ dp_rx_frag_get_mac_hdr(struct dp_soc *soc, uint8_t *rx_desc_info)
 	return (struct ieee80211_frame *)(rx_desc_info + rx_desc_len);
 }
 
-/*
+/**
  * dp_rx_frag_get_mpdu_seq_number() - Get mpdu sequence number
+ * @soc: DP SOC
  * @rx_desc_info: Pointer to the pkt_tlvs in the
  * nbuf (pkt_tlvs->mac_hdr->data)
  *
- * Returns: uint16_t, rx sequence number
+ * Return: uint16_t, rx sequence number
  */
 static inline uint16_t
 dp_rx_frag_get_mpdu_seq_number(struct dp_soc *soc, int8_t *rx_desc_info)
@@ -91,12 +112,13 @@ dp_rx_frag_get_mpdu_seq_number(struct dp_soc *soc, int8_t *rx_desc_info)
 		IEEE80211_SEQ_SEQ_SHIFT;
 }
 
-/*
+/**
  * dp_rx_frag_get_mpdu_frag_number() - Get mpdu fragment number
+ * @soc: DP SOC
  * @rx_desc_info: Pointer to the pkt_tlvs in the
  * nbuf (pkt_tlvs->mac_hdr->data)
  *
- * Returns: uint8_t, receive fragment number
+ * Return: uint8_t, receive fragment number
  */
 static inline uint8_t
 dp_rx_frag_get_mpdu_frag_number(struct dp_soc *soc, uint8_t *rx_desc_info)
@@ -108,12 +130,13 @@ dp_rx_frag_get_mpdu_frag_number(struct dp_soc *soc, uint8_t *rx_desc_info)
 		IEEE80211_SEQ_FRAG_MASK;
 }
 
-/*
+/**
  * dp_rx_frag_get_more_frag_bit() - Get more fragment bit
+ * @soc: DP SOC
  * @rx_desc_info: Pointer to the pkt_tlvs in the
  * nbuf (pkt_tlvs->mac_hdr->data)
  *
- * Returns: uint8_t, get more fragment bit
+ * Return: uint8_t, get more fragment bit
  */
 static inline
 uint8_t dp_rx_frag_get_more_frag_bit(struct dp_soc *soc, uint8_t *rx_desc_info)
@@ -133,11 +156,48 @@ uint8_t dp_rx_get_pkt_dir(struct dp_soc *soc, uint8_t *rx_desc_info)
 	return mac_hdr->i_fc[1] & IEEE80211_FC1_DIR_MASK;
 }
 
+/**
+ * dp_rx_defrag_waitlist_flush() - Flush SOC defrag wait list
+ * @soc: DP SOC
+ *
+ * Flush fragments of all waitlisted TID's
+ *
+ * Return: None
+ */
 void dp_rx_defrag_waitlist_flush(struct dp_soc *soc);
+
+/**
+ * dp_rx_reorder_flush_frag() - Flush the frag list
+ * @txrx_peer: Pointer to the peer data structure
+ * @tid: Transmit ID (TID)
+ *
+ * Flush the per-TID frag list
+ *
+ * Return: None
+ */
 void dp_rx_reorder_flush_frag(struct dp_txrx_peer *txrx_peer,
 			      unsigned int tid);
-void dp_rx_defrag_waitlist_remove(struct dp_txrx_peer *peer, unsigned int tid);
-void dp_rx_defrag_cleanup(struct dp_txrx_peer *peer, unsigned int tid);
+
+/**
+ * dp_rx_defrag_waitlist_remove() - Remove fragments from waitlist
+ * @txrx_peer: Pointer to the peer data structure
+ * @tid: Transmit ID (TID)
+ *
+ * Remove fragments from waitlist
+ *
+ * Return: None
+ */
+void dp_rx_defrag_waitlist_remove(struct dp_txrx_peer *txrx_peer,
+				  unsigned int tid);
+
+/**
+ * dp_rx_defrag_cleanup() - Clean up activities
+ * @txrx_peer: Pointer to the peer
+ * @tid: Transmit Identifier
+ *
+ * Return: None
+ */
+void dp_rx_defrag_cleanup(struct dp_txrx_peer *txrx_peer, unsigned int tid);
 
 QDF_STATUS dp_rx_defrag_add_last_frag(struct dp_soc *soc,
 				      struct dp_txrx_peer *peer, uint16_t tid,