1 /* 2 * Copyright (c) 2019-2020 The Linux Foundation. All rights reserved. 3 * 4 * Permission to use, copy, modify, and/or distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 */ 16 17 /** 18 * DOC: Define PDEV MLME structure and APIs 19 */ 20 #ifndef _WLAN_PDEV_MLME_H_ 21 #define _WLAN_PDEV_MLME_H_ 22 23 #include <qdf_timer.h> 24 #include <include/wlan_vdev_mlme.h> 25 #include <wlan_ext_mlme_obj_types.h> 26 27 /* 28 * struct pdev_restart_attr - Pdev restart attributes 29 * @vdev: vdev on which the pdev restart cmd was enqueued 30 * @restart_bmap: Bitmap for vdev requesting multivdev restart 31 */ 32 struct pdev_restart_attr { 33 struct wlan_objmgr_vdev *vdev; 34 qdf_bitmap(restart_bmap, WLAN_UMAC_PSOC_MAX_VDEVS); 35 }; 36 37 /** 38 * struct pdev_mlme_obj - PDEV MLME component object 39 * @pdev: PDEV object 40 * @ext_pdev_ptr: PDEV MLME legacy pointer 41 * @mlme_register_ops: Call back to register MLME legacy APIs 42 * @vdev_restart_lock: Lock for VDEVs restart 43 * @restart_req_timer: Timer handle for VDEVs restart 44 * @restart_pend_vdev_bmap: Bitmap for VDEV RESTART command pending 45 * @restart_send_vdev_bmap: Bitmap for VDEV RESTART command sending 46 * @start_send_vdev_arr: Bitmap for VDEV START command sending 47 */ 48 struct pdev_mlme_obj { 49 struct wlan_objmgr_pdev *pdev; 50 mlme_pdev_ext_t *ext_pdev_ptr; 51 QDF_STATUS (*mlme_register_ops)(struct vdev_mlme_obj *vdev_mlme); 52 qdf_spinlock_t vdev_restart_lock; 53 qdf_timer_t restart_req_timer; 54 qdf_bitmap(restart_pend_vdev_bmap, WLAN_UMAC_PSOC_MAX_VDEVS); 55 qdf_bitmap(restart_send_vdev_bmap, WLAN_UMAC_PSOC_MAX_VDEVS); 56 qdf_bitmap(start_send_vdev_arr, WLAN_UMAC_PSOC_MAX_VDEVS); 57 struct pdev_restart_attr pdev_restart; 58 qdf_atomic_t multivdev_restart_wait_cnt; 59 }; 60 61 #endif 62