1 /* 2 * Copyright (c) 2021, The Linux Foundation. All rights reserved. 3 * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved. 4 * 5 * Permission to use, copy, modify, and/or distribute this software for any 6 * purpose with or without fee is hereby granted, provided that the above 7 * copyright notice and this permission notice appear in all copies. 8 * 9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 */ 17 18 #ifndef _WLAN_MGMT_TXRX_RX_REO_UTILS_API_H_ 19 #define _WLAN_MGMT_TXRX_RX_REO_UTILS_API_H_ 20 21 /** 22 * DOC: wlan_mgmt_txrx_rx_reo_utils_api.h 23 * 24 * management rx-reorder public APIs and structures 25 * for umac converged components. 26 * 27 */ 28 29 #include <wlan_mgmt_txrx_utils_api.h> 30 31 struct mgmt_txrx_priv_pdev_context; 32 33 #ifdef WLAN_MGMT_RX_REO_SUPPORT 34 /** 35 * wlan_get_mlo_link_id_from_pdev() - Helper API to get the MLO HW link id 36 * from the pdev object. 37 * @pdev: Pointer to pdev object 38 * 39 * Return: On success returns the MLO HW link id corresponding to the pdev 40 * object. On failure returns -1. 41 */ 42 int8_t 43 wlan_get_mlo_link_id_from_pdev(struct wlan_objmgr_pdev *pdev); 44 45 /** 46 * wlan_get_mlo_grp_id_from_pdev() - Helper API to get the MLO Group id 47 * from the pdev object. 48 * @pdev: Pointer to pdev object 49 * 50 * Return: On success returns the MLO Group id corresponding to the pdev 51 * object. On failure returns -1. 52 */ 53 int8_t 54 wlan_get_mlo_grp_id_from_pdev(struct wlan_objmgr_pdev *pdev); 55 56 /** 57 * wlan_get_pdev_from_mlo_link_id() - Helper API to get the pdev 58 * object from the link id. 59 * @mlo_link_id: MLO HW link id 60 * @ml_grp_id: MLO Group id which it belongs to 61 * @refdbgid: Reference debug id 62 * 63 * Return: On success returns the pdev object from the link_id. 64 * On failure returns NULL. 65 */ 66 struct wlan_objmgr_pdev * 67 wlan_get_pdev_from_mlo_link_id(uint8_t mlo_link_id, uint8_t ml_grp_id, 68 wlan_objmgr_ref_dbgid refdbgid); 69 #else 70 static inline int8_t 71 wlan_get_mlo_link_id_from_pdev(struct wlan_objmgr_pdev *pdev) 72 { 73 return 0; 74 } 75 static inline int8_t 76 wlan_get_mlo_grp_id_from_pdev(struct wlan_objmgr_pdev *pdev) 77 { 78 return 0; 79 } 80 static inline struct wlan_objmgr_pdev * 81 wlan_get_pdev_from_mlo_link_id(uint8_t mlo_link_id, uint8_t ml_grp_id, 82 wlan_objmgr_ref_dbgid refdbgid) 83 { 84 return NULL; 85 } 86 #endif 87 88 #ifdef WLAN_MGMT_RX_REO_SUPPORT 89 90 #define mgmt_rx_reo_alert(params...) \ 91 QDF_TRACE_FATAL(QDF_MODULE_ID_MGMT_RX_REO, params) 92 #define mgmt_rx_reo_err(params...) \ 93 QDF_TRACE_ERROR(QDF_MODULE_ID_MGMT_RX_REO, params) 94 #define mgmt_rx_reo_warn(params...) \ 95 QDF_TRACE_WARN(QDF_MODULE_ID_MGMT_RX_REO, params) 96 #define mgmt_rx_reo_notice(params...) \ 97 QDF_TRACE_INFO(QDF_MODULE_ID_MGMT_RX_REO, params) 98 #define mgmt_rx_reo_info(params...) \ 99 QDF_TRACE_INFO(QDF_MODULE_ID_MGMT_RX_REO, params) 100 #define mgmt_rx_reo_debug(params...) \ 101 QDF_TRACE_DEBUG(QDF_MODULE_ID_MGMT_RX_REO, params) 102 103 #define mgmt_rx_reo_alert_no_fl(params...) \ 104 QDF_TRACE_FATAL_NO_FL(QDF_MODULE_ID_MGMT_RX_REO, params) 105 #define mgmt_rx_reo_err_no_fl(params...) \ 106 QDF_TRACE_ERROR_NO_FL(QDF_MODULE_ID_MGMT_RX_REO, params) 107 #define mgmt_rx_reo_warn_no_fl(params...) \ 108 QDF_TRACE_WARN_NO_FL(QDF_MODULE_ID_MGMT_RX_REO, params) 109 #define mgmt_rx_reo_notice_no_fl(params...) \ 110 QDF_TRACE_INFO_NO_FL(QDF_MODULE_ID_MGMT_RX_REO, params) 111 #define mgmt_rx_reo_info_no_fl(params...) \ 112 QDF_TRACE_INFO_NO_FL(QDF_MODULE_ID_MGMT_RX_REO, params) 113 #define mgmt_rx_reo_debug_no_fl(params...) \ 114 QDF_TRACE_DEBUG_NO_FL(QDF_MODULE_ID_MGMT_RX_REO, params) 115 116 #define mgmt_rx_reo_alert_rl(params...) \ 117 QDF_TRACE_FATAL_RL(QDF_MODULE_ID_MGMT_RX_REO, params) 118 #define mgmt_rx_reo_err_rl(params...) \ 119 QDF_TRACE_ERROR_RL(QDF_MODULE_ID_MGMT_RX_REO, params) 120 #define mgmt_rx_reo_warn_rl(params...) \ 121 QDF_TRACE_WARN_RL(QDF_MODULE_ID_MGMT_RX_REO, params) 122 #define mgmt_rx_reo_notice_rl(params...) \ 123 QDF_TRACE_INFO_RL(QDF_MODULE_ID_MGMT_RX_REO, params) 124 #define mgmt_rx_reo_info_rl(params...) \ 125 QDF_TRACE_INFO_RL(QDF_MODULE_ID_MGMT_RX_REO, params) 126 #define mgmt_rx_reo_debug_rl(params...) \ 127 QDF_TRACE_DEBUG_RL(QDF_MODULE_ID_MGMT_RX_REO, params) 128 129 #ifdef WLAN_MGMT_RX_REO_SIM_SUPPORT 130 /** 131 * wlan_mgmt_rx_reo_sim_start() - Helper API to start management Rx reorder 132 * simulation 133 * 134 * This API starts the simulation framework which mimics the management frame 135 * generation by target. MAC HW is modelled as a kthread. FW and host layers 136 * are modelled as an ordered work queues. 137 * @ml_grp_id: MLO group id of the required mlo context 138 * 139 * Return: QDF_STATUS 140 */ 141 QDF_STATUS 142 wlan_mgmt_rx_reo_sim_start(uint8_t ml_grp_id); 143 144 /** 145 * wlan_mgmt_rx_reo_sim_stop() - Helper API to stop management Rx reorder 146 * simulation 147 * @ml_grp_id: MLO group id of the required mlo context 148 * 149 * This API stops the simulation framework which mimics the management frame 150 * generation by target. MAC HW is modelled as a kthread. FW and host layers 151 * are modelled as an ordered work queues. 152 * 153 * Return: QDF_STATUS 154 */ 155 QDF_STATUS 156 wlan_mgmt_rx_reo_sim_stop(uint8_t ml_grp_id); 157 #else 158 /** 159 * wlan_mgmt_rx_reo_sim_start() - Helper API to start management Rx reorder 160 * simulation 161 * @ml_grp_id: MLO group id of the required mlo context 162 * 163 * Error print is added to indicate that simulation framework is not compiled. 164 * 165 * Return: QDF_STATUS_E_INVAL 166 */ 167 static inline QDF_STATUS 168 wlan_mgmt_rx_reo_sim_start(uint8_t ml_grp_id) 169 { 170 mgmt_txrx_err("Mgmt rx reo simulation is not compiled"); 171 172 return QDF_STATUS_E_INVAL; 173 } 174 175 /** 176 * wlan_mgmt_rx_reo_sim_stop() - Helper API to stop management Rx reorder 177 * simulation 178 * @ml_grp_id: MLO group id of the required mlo context 179 * 180 * Error print is added to indicate that simulation framework is not compiled. 181 * 182 * Return: QDF_STATUS_E_INVAL 183 */ 184 static inline QDF_STATUS 185 wlan_mgmt_rx_reo_sim_stop(uint8_t ml_grp_id) 186 { 187 mgmt_txrx_err("Mgmt rx reo simulation is not compiled"); 188 189 return QDF_STATUS_E_INVAL; 190 } 191 #endif /* WLAN_MGMT_RX_REO_SIM_SUPPORT */ 192 193 /** 194 * wlan_mgmt_rx_reo_get_snapshot_info() - Get snapshot info 195 * @pdev: pointer to pdev 196 * @id: snapshot identifier 197 * @snapshot_info: pointer to snapshot info 198 * 199 * Helper API to get information of snapshot @id for pdev @pdev. 200 * 201 * Return: QDF_STATUS 202 */ 203 QDF_STATUS 204 wlan_mgmt_rx_reo_get_snapshot_info 205 (struct wlan_objmgr_pdev *pdev, 206 enum mgmt_rx_reo_shared_snapshot_id id, 207 struct mgmt_rx_reo_snapshot_info *snapshot_info); 208 209 /** 210 * wlan_mgmt_txrx_process_rx_frame() - API to process the incoming management 211 * frame 212 * @pdev: pointer to pdev 213 * @buf: pointer to buffer 214 * @mgmt_rx_params: pointer to management rx params 215 * 216 * API to process the incoming management frame. 217 * 218 * Return: QDF_STATUS 219 */ 220 QDF_STATUS wlan_mgmt_txrx_process_rx_frame( 221 struct wlan_objmgr_pdev *pdev, 222 qdf_nbuf_t buf, 223 struct mgmt_rx_event_params *mgmt_rx_params); 224 225 /** 226 * wlan_mgmt_rx_reo_init() - Initializes the management rx-reorder module 227 * 228 * This function gets called from dispatcher init and initializes the management 229 * rx-reorder module. 230 * 231 * Return: QDF_STATUS 232 */ 233 QDF_STATUS 234 wlan_mgmt_rx_reo_init(void); 235 236 /** 237 * wlan_mgmt_rx_reo_deinit() - De initializes the management rx-reorder module 238 * 239 * This function gets called from dispatcher deinit and de initializes the 240 * management rx-reorder module. 241 * 242 * Return: QDF_STATUS 243 */ 244 QDF_STATUS 245 wlan_mgmt_rx_reo_deinit(void); 246 247 /** 248 * wlan_mgmt_rx_reo_validate_mlo_link_info() - Validate the MLO HW link 249 * related information extracted from the MLO global shared memory arena 250 * @psoc: pointer to psoc object 251 * 252 * This function validates the MLO HW link related information extracted from 253 * the MLO global shared memory arena. This includes number of active HW links 254 * and the valid link bitmap. Same information is available with MLO manager and 255 * it is considered as the source of truth. 256 * 257 * Return: QDF_STATUS 258 */ 259 QDF_STATUS 260 wlan_mgmt_rx_reo_validate_mlo_link_info(struct wlan_objmgr_psoc *psoc); 261 262 /** 263 * wlan_mgmt_rx_reo_pdev_obj_create_notification() - pdev create handler for 264 * management rx-reorder module 265 * @pdev: pointer to pdev object 266 * @mgmt_txrx_pdev_ctx: pdev private object of mgmt txrx module 267 * 268 * This function gets called from object manager when pdev is being created and 269 * creates management rx-reorder pdev context 270 * 271 * Return: QDF_STATUS 272 */ 273 QDF_STATUS 274 wlan_mgmt_rx_reo_pdev_obj_create_notification( 275 struct wlan_objmgr_pdev *pdev, 276 struct mgmt_txrx_priv_pdev_context *mgmt_txrx_pdev_ctx); 277 278 /** 279 * wlan_mgmt_rx_reo_pdev_obj_destroy_notification() - pdev destroy handler for 280 * management rx-reorder feature 281 * @pdev: pointer to pdev object 282 * @mgmt_txrx_pdev_ctx: pdev private object of mgmt txrx module 283 * 284 * This function gets called from object manager when pdev is being destroyed 285 * and destroys management rx-reorder pdev context 286 * 287 * Return: QDF_STATUS 288 */ 289 QDF_STATUS 290 wlan_mgmt_rx_reo_pdev_obj_destroy_notification( 291 struct wlan_objmgr_pdev *pdev, 292 struct mgmt_txrx_priv_pdev_context *mgmt_txrx_pdev_ctx); 293 294 /** 295 * wlan_mgmt_rx_reo_psoc_obj_create_notification() - psoc create handler for 296 * management rx-reorder module 297 * @psoc: pointer to psoc object 298 * 299 * This function gets called from object manager when psoc is being created. 300 * 301 * Return: QDF_STATUS 302 */ 303 QDF_STATUS 304 wlan_mgmt_rx_reo_psoc_obj_create_notification(struct wlan_objmgr_psoc *psoc); 305 306 /** 307 * wlan_mgmt_rx_reo_psoc_obj_destroy_notification() - psoc destroy handler for 308 * management rx-reorder feature 309 * @psoc: pointer to psoc object 310 * 311 * This function gets called from object manager when psoc is being destroyed. 312 * 313 * Return: QDF_STATUS 314 */ 315 QDF_STATUS 316 wlan_mgmt_rx_reo_psoc_obj_destroy_notification(struct wlan_objmgr_psoc *psoc); 317 318 /** 319 * wlan_mgmt_rx_reo_pdev_attach() - Initializes the per pdev data structures 320 * related to management rx-reorder module 321 * @pdev: pointer to pdev object 322 * 323 * Return: QDF_STATUS 324 */ 325 QDF_STATUS wlan_mgmt_rx_reo_pdev_attach(struct wlan_objmgr_pdev *pdev); 326 327 /** 328 * wlan_mgmt_rx_reo_psoc_attach() - Initializes the per psoc data structures 329 * related to management rx-reorder module 330 * @psoc: pointer to psoc object 331 * 332 * Return: QDF_STATUS 333 */ 334 QDF_STATUS wlan_mgmt_rx_reo_psoc_attach(struct wlan_objmgr_psoc *psoc); 335 336 /** 337 * wlan_mgmt_rx_reo_pdev_detach() - Clears the per pdev data structures related 338 * to management rx-reorder module 339 * @pdev: pointer to pdev object 340 * 341 * Return: QDF_STATUS 342 */ 343 QDF_STATUS wlan_mgmt_rx_reo_pdev_detach(struct wlan_objmgr_pdev *pdev); 344 345 /** 346 * wlan_mgmt_rx_reo_psoc_detach() - Clears the per psoc data structures related 347 * to management rx-reorder module 348 * @psoc: pointer to psoc object 349 * 350 * Return: QDF_STATUS 351 */ 352 QDF_STATUS wlan_mgmt_rx_reo_psoc_detach(struct wlan_objmgr_psoc *psoc); 353 354 /** 355 * wlan_mgmt_rx_reo_is_feature_enabled_at_psoc() - Check if MGMT Rx REO feature 356 * is enabled on a given psoc 357 * @psoc: pointer to psoc object 358 * 359 * Return: true if the feature is enabled, else false 360 */ 361 bool 362 wlan_mgmt_rx_reo_is_feature_enabled_at_psoc(struct wlan_objmgr_psoc *psoc); 363 364 /** 365 * wlan_mgmt_rx_reo_is_feature_enabled_at_pdev() - Check if MGMT Rx REO feature 366 * is enabled on a given pdev 367 * @pdev: pointer to pdev object 368 * 369 * Return: true if the feature is enabled, else false 370 */ 371 bool 372 wlan_mgmt_rx_reo_is_feature_enabled_at_pdev(struct wlan_objmgr_pdev *pdev); 373 374 /** 375 * wlan_mgmt_rx_reo_is_scheduler_enabled_at_psoc() - Check if MGMT Rx REO 376 * scheduler is enabled on a given psoc 377 * @psoc: pointer to psoc object 378 * 379 * Return: true if the scheduler is enabled, else false 380 */ 381 bool 382 wlan_mgmt_rx_reo_is_scheduler_enabled_at_psoc(struct wlan_objmgr_psoc *psoc); 383 384 /** 385 * wlan_mgmt_rx_reo_is_scheduler_enabled_at_pdev() - Check if MGMT Rx REO 386 * scheduler is enabled on a given pdev 387 * @pdev: pointer to pdev object 388 * 389 * Return: true if the scheduler is enabled, else false 390 */ 391 bool 392 wlan_mgmt_rx_reo_is_scheduler_enabled_at_pdev(struct wlan_objmgr_pdev *pdev); 393 394 /** 395 * wlan_mgmt_rx_reo_get_pkt_ctr_delta_thresh() - Get the packet counter delta 396 * threshold value 397 * @psoc: pointer to psoc object 398 * 399 * Return: Packet counter delta threshold value 400 */ 401 uint16_t 402 wlan_mgmt_rx_reo_get_pkt_ctr_delta_thresh(struct wlan_objmgr_psoc *psoc); 403 404 #ifdef WLAN_MGMT_RX_REO_DEBUG_SUPPORT 405 /** 406 * wlan_mgmt_rx_reo_get_ingress_frame_debug_list_size() - Get the size of 407 * ingress frame debug list 408 * @psoc: pointer to psoc object 409 * 410 * Return: Size of ingress frame debug list 411 */ 412 uint16_t 413 wlan_mgmt_rx_reo_get_ingress_frame_debug_list_size 414 (struct wlan_objmgr_psoc *psoc); 415 416 /** 417 * wlan_mgmt_rx_reo_get_egress_frame_debug_list_size() - Get the size of 418 * egress frame debug list 419 * @psoc: pointer to psoc object 420 * 421 * Return: Size of egress frame debug list 422 */ 423 uint16_t 424 wlan_mgmt_rx_reo_get_egress_frame_debug_list_size 425 (struct wlan_objmgr_psoc *psoc); 426 427 /** 428 * wlan_mgmt_rx_reo_get_scheduler_debug_list_size() - Get the size of 429 * scheduler debug list 430 * @psoc: pointer to psoc object 431 * 432 * Return: Size of scheduler debug list 433 */ 434 uint16_t 435 wlan_mgmt_rx_reo_get_scheduler_debug_list_size(struct wlan_objmgr_psoc *psoc); 436 #else 437 static inline uint16_t 438 wlan_mgmt_rx_reo_get_ingress_frame_debug_list_size(struct wlan_objmgr_psoc *psoc) 439 { 440 return 0; 441 } 442 443 static inline uint16_t 444 wlan_mgmt_rx_reo_get_egress_frame_debug_list_size(struct wlan_objmgr_psoc *psoc) 445 { 446 return 0; 447 } 448 449 static inline uint16_t 450 wlan_mgmt_rx_reo_get_scheduler_debug_list_size(struct wlan_objmgr_psoc *psoc) 451 { 452 return 0; 453 } 454 #endif /* WLAN_MGMT_RX_REO_DEBUG_SUPPORT */ 455 456 /** 457 * wlan_mgmt_rx_reo_is_simulation_in_progress() - API to check whether 458 * simulation is in progress 459 * @ml_grp_id: MLO group id of the required mlo context 460 * 461 * Return: true if simulation is in progress, else false 462 */ 463 bool 464 wlan_mgmt_rx_reo_is_simulation_in_progress(uint8_t ml_grp_id); 465 466 /** 467 * wlan_mgmt_rx_reo_print_ingress_frame_stats() - Helper API to print 468 * stats related to incoming management frames 469 * @ml_grp_id: MLO group id of the required mlo context 470 * 471 * This API prints stats related to management frames entering management 472 * Rx reorder module. 473 * 474 * Return: QDF_STATUS 475 */ 476 QDF_STATUS 477 wlan_mgmt_rx_reo_print_ingress_frame_stats(uint8_t ml_grp_id); 478 479 /** 480 * wlan_mgmt_rx_reo_print_ingress_frame_info() - Print the debug information 481 * about the latest frames entered the reorder module 482 * @ml_grp_id: MLO group id of the required mlo context 483 * @num_frames: Number of frames for which the debug information is to be 484 * printed. If @num_frames is 0, then debug information about all the frames 485 * in the ring buffer will be printed. 486 * 487 * Return: QDF_STATUS of operation 488 */ 489 QDF_STATUS 490 wlan_mgmt_rx_reo_print_ingress_frame_info(uint8_t ml_grp_id, 491 uint16_t num_frames); 492 493 /** 494 * wlan_mgmt_rx_reo_print_egress_frame_stats() - Helper API to print 495 * stats related to outgoing management frames 496 * @ml_grp_id: MLO group id of the required mlo context 497 * 498 * This API prints stats related to management frames exiting management 499 * Rx reorder module. 500 * 501 * Return: QDF_STATUS 502 */ 503 QDF_STATUS 504 wlan_mgmt_rx_reo_print_egress_frame_stats(uint8_t ml_grp_id); 505 506 /** 507 * wlan_mgmt_rx_reo_print_egress_frame_info() - Print the debug information 508 * about the latest frames leaving the reorder module 509 * @num_frames: Number of frames for which the debug information is to be 510 * printed. If @num_frames is 0, then debug information about all the frames 511 * in the ring buffer will be printed. 512 * @ml_grp_id: MLO group id of the required mlo context 513 * 514 * Return: QDF_STATUS of operation 515 */ 516 QDF_STATUS 517 wlan_mgmt_rx_reo_print_egress_frame_info(uint8_t ml_grp_id, 518 uint16_t num_frames); 519 520 /** 521 * wlan_mgmt_rx_reo_release_frames() - Release management frames which are ready 522 * for delivery 523 * @mlo_grp_id: MLO group ID 524 * @link_bitmap: Link bitmap 525 * 526 * Return: QDF_STATUS 527 */ 528 QDF_STATUS 529 wlan_mgmt_rx_reo_release_frames(uint8_t mlo_grp_id, uint32_t link_bitmap); 530 #else 531 static inline QDF_STATUS 532 wlan_mgmt_rx_reo_validate_mlo_link_info(struct wlan_objmgr_psoc *psoc) 533 { 534 return QDF_STATUS_SUCCESS; 535 } 536 537 /** 538 * wlan_mgmt_rx_reo_pdev_obj_create_notification() - pdev create handler for 539 * management rx-reorder feature 540 * @pdev: pointer to pdev object 541 * @mgmt_txrx_pdev_ctx: pdev private object of mgmt txrx module 542 * 543 * This function gets called from object manager when pdev is being created and 544 * creates management rx-reorder pdev context 545 * 546 * Return: QDF_STATUS 547 */ 548 static inline QDF_STATUS 549 wlan_mgmt_rx_reo_pdev_obj_create_notification( 550 struct wlan_objmgr_pdev *pdev, 551 struct mgmt_txrx_priv_pdev_context *mgmt_txrx_pdev_ctx) 552 { 553 return QDF_STATUS_SUCCESS; 554 } 555 556 /** 557 * wlan_mgmt_rx_reo_pdev_obj_destroy_notification() - pdev destroy handler for 558 * management rx-reorder feature 559 * @pdev: pointer to pdev object 560 * @mgmt_txrx_pdev_ctx: pdev private object of mgmt txrx module 561 * 562 * This function gets called from object manager when pdev is being destroyed 563 * and destroys management rx-reorder pdev context 564 * 565 * Return: QDF_STATUS 566 */ 567 static inline QDF_STATUS 568 wlan_mgmt_rx_reo_pdev_obj_destroy_notification( 569 struct wlan_objmgr_pdev *pdev, 570 struct mgmt_txrx_priv_pdev_context *mgmt_txrx_pdev_ctx) 571 { 572 return QDF_STATUS_SUCCESS; 573 } 574 575 /** 576 * wlan_mgmt_rx_reo_psoc_obj_create_notification() - psoc create handler for 577 * management rx-reorder module 578 * @psoc: pointer to psoc object 579 * 580 * This function gets called from object manager when psoc is being created. 581 * 582 * Return: QDF_STATUS 583 */ 584 static inline QDF_STATUS 585 wlan_mgmt_rx_reo_psoc_obj_create_notification(struct wlan_objmgr_psoc *psoc) 586 { 587 return QDF_STATUS_SUCCESS; 588 } 589 590 /** 591 * wlan_mgmt_rx_reo_psoc_obj_destroy_notification() - psoc destroy handler for 592 * management rx-reorder feature 593 * @psoc: pointer to psoc object 594 * 595 * This function gets called from object manager when psoc is being destroyed. 596 * 597 * Return: QDF_STATUS 598 */ 599 static inline QDF_STATUS 600 wlan_mgmt_rx_reo_psoc_obj_destroy_notification(struct wlan_objmgr_psoc *psoc) 601 { 602 if (!psoc) 603 return QDF_STATUS_E_FAILURE; 604 return QDF_STATUS_SUCCESS; 605 } 606 607 /** 608 * wlan_mgmt_rx_reo_pdev_attach() - Initializes the per pdev data structures 609 * related to management rx-reorder module 610 * @pdev: pointer to pdev object 611 * 612 * Return: QDF_STATUS 613 */ 614 static inline QDF_STATUS 615 wlan_mgmt_rx_reo_pdev_attach(struct wlan_objmgr_pdev *pdev) 616 { 617 return QDF_STATUS_SUCCESS; 618 } 619 620 /** 621 * wlan_mgmt_rx_reo_psoc_attach() - Initializes the per psoc data structures 622 * related to management rx-reorder module 623 * @psoc: pointer to psoc object 624 * 625 * Return: QDF_STATUS 626 */ 627 static inline QDF_STATUS 628 wlan_mgmt_rx_reo_psoc_attach(struct wlan_objmgr_psoc *psoc) 629 { 630 return QDF_STATUS_SUCCESS; 631 } 632 633 /** 634 * wlan_mgmt_rx_reo_pdev_detach() - Clears the per pdev data structures related 635 * to management rx-reorder module 636 * @pdev: pointer to pdev object 637 * 638 * Return: QDF_STATUS 639 */ 640 static inline QDF_STATUS 641 wlan_mgmt_rx_reo_pdev_detach(struct wlan_objmgr_pdev *pdev) 642 { 643 return QDF_STATUS_SUCCESS; 644 } 645 646 /** 647 * wlan_mgmt_rx_reo_psoc_detach() - Clears the per psoc data structures related 648 * to management rx-reorder module 649 * @psoc: pointer to psoc object 650 * 651 * Return: QDF_STATUS 652 */ 653 static inline QDF_STATUS 654 wlan_mgmt_rx_reo_psoc_detach(struct wlan_objmgr_psoc *psoc) 655 { 656 return QDF_STATUS_SUCCESS; 657 } 658 659 /** 660 * wlan_mgmt_rx_reo_init() - Initializes the management rx-reorder module 661 * 662 * This function gets called from dispatcher init and initializes the management 663 * rx-reorder module. 664 * 665 * Return: QDF_STATUS 666 */ 667 static inline QDF_STATUS 668 wlan_mgmt_rx_reo_init(void) 669 { 670 return QDF_STATUS_SUCCESS; 671 } 672 673 /** 674 * wlan_mgmt_rx_reo_deinit() - De initializes the management rx-reorder module 675 * 676 * This function gets called from dispatcher deinit and de initializes the 677 * management rx-reorder module. 678 * 679 * Return: QDF_STATUS 680 */ 681 static inline QDF_STATUS 682 wlan_mgmt_rx_reo_deinit(void) 683 { 684 return QDF_STATUS_SUCCESS; 685 } 686 #endif /* WLAN_MGMT_RX_REO_SUPPORT */ 687 #endif /* _WLAN_MGMT_TXRX_RX_REO_UTILS_API_H_ */ 688