qcacmn: Add interface manager module
- Add interface manager module files - Add start_connect event processing - Add stubs for start_connect_complete and start_bss event processing API's Change-Id: I91a2bf38755abef38b6a9348d3eb69983217916c CRs-Fixed: 2759226
此提交包含在:
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
* Copyright (c) 2020, The Linux Foundation. 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 above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* DOC: contains interface manager public file containing AP event handlers
|
||||
*/
|
||||
|
||||
#ifndef _WLAN_IF_MGR_AP_H_
|
||||
#define _WLAN_IF_MGR_AP_H_
|
||||
|
||||
/**
|
||||
* wlan_process_start_bss_start() - Start BSS event handler
|
||||
*
|
||||
* Interface manager connect start bss event handler
|
||||
*
|
||||
* @vdev: vdev object
|
||||
* @event_data: Interface mgr event data
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS wlan_process_ap_start_bss(struct wlan_objmgr_vdev *vdev,
|
||||
struct if_mgr_event_data *event_data);
|
||||
|
||||
#endif
|
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* Copyright (c) 2020, The Linux Foundation. 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 above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* DOC: contains interface manager public api
|
||||
*/
|
||||
|
||||
#ifndef _WLAN_IF_MGR_API_H_
|
||||
#define _WLAN_IF_MGR_API_H_
|
||||
|
||||
#include "wlan_objmgr_psoc_obj.h"
|
||||
#include "wlan_objmgr_vdev_obj.h"
|
||||
#include "wlan_if_mgr_public_struct.h"
|
||||
|
||||
/**
|
||||
* if_mgr_deliver_event() - interface mgr event handler
|
||||
* @vdev: vdev object
|
||||
* @event: interface mangaer event
|
||||
* @event_data: Interface mgr event data
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS if_mgr_deliver_event(struct wlan_objmgr_vdev *vdev,
|
||||
enum wlan_if_mgr_evt event,
|
||||
struct if_mgr_event_data *event_data);
|
||||
|
||||
#endif
|
@@ -0,0 +1,97 @@
|
||||
/*
|
||||
* Copyright (c) 2020, The Linux Foundation. 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 above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* DOC: contains Interface MGR init/deinit public api
|
||||
*/
|
||||
|
||||
#ifndef _WLAN_IF_MGR_MAIN_API_H_
|
||||
#define _WLAN_IF_MGR_MAIN_API_H_
|
||||
|
||||
#include <qdf_atomic.h>
|
||||
#include <wlan_objmgr_psoc_obj.h>
|
||||
#include <wlan_objmgr_pdev_obj.h>
|
||||
#include <wlan_objmgr_vdev_obj.h>
|
||||
#include <wlan_if_mgr_public_struct.h>
|
||||
|
||||
#define ifmgr_alert(params...) \
|
||||
QDF_TRACE_FATAL(QDF_MODULE_ID_IFMGR, params)
|
||||
#define ifmgr_err(params...) \
|
||||
QDF_TRACE_ERROR(QDF_MODULE_ID_IFMGR, params)
|
||||
#define ifmgr_warn(params...) \
|
||||
QDF_TRACE_WARN(QDF_MODULE_ID_IFMGR, params)
|
||||
#define ifmgr_notice(params...) \
|
||||
QDF_TRACE_INFO(QDF_MODULE_ID_IFMGR, params)
|
||||
#define ifmgr_info(params...) \
|
||||
QDF_TRACE_INFO(QDF_MODULE_ID_IFMGR, params)
|
||||
#define ifmgr_debug(params...) \
|
||||
QDF_TRACE_DEBUG(QDF_MODULE_ID_IFMGR, params)
|
||||
|
||||
/* Rate Limited Logs */
|
||||
#define ifmgr_alert_rl(params...) \
|
||||
QDF_TRACE_FATAL_RL(QDF_MODULE_ID_IFMGR, params)
|
||||
#define ifmgr_err_rl(params...) \
|
||||
QDF_TRACE_ERROR_RL(QDF_MODULE_ID_IFMGR, params)
|
||||
#define ifmgr_warn_rl(params...) \
|
||||
QDF_TRACE_WARN_RL(QDF_MODULE_ID_IFMGR, params)
|
||||
#define ifmgr_info_rl(params...) \
|
||||
QDF_TRACE_INFO_RL(QDF_MODULE_ID_IFMGR, params)
|
||||
#define ifmgr_debug_rl(params...) \
|
||||
QDF_TRACE_DEBUG_RL(QDF_MODULE_ID_IFMGR, params)
|
||||
|
||||
#define ifmgr_nofl_alert(params...) \
|
||||
QDF_TRACE_FATAL_NO_FL(QDF_MODULE_ID_IFMGR, params)
|
||||
#define ifmgr_nofl_err(params...) \
|
||||
QDF_TRACE_ERROR_NO_FL(QDF_MODULE_ID_IFMGR, params)
|
||||
#define ifmgr_nofl_warn(params...) \
|
||||
QDF_TRACE_WARN_NO_FL(QDF_MODULE_ID_IFMGR, params)
|
||||
#define ifmgr_nofl_info(params...) \
|
||||
QDF_TRACE_INFO_NO_FL(QDF_MODULE_ID_IFMGR, params)
|
||||
#define ifmgr_nofl_debug(params...) \
|
||||
QDF_TRACE_DEBUG_NO_FL(QDF_MODULE_ID_IFMGR, params)
|
||||
|
||||
#define ifmgr_hex_dump(level, data, buf_len) \
|
||||
qdf_trace_hex_dump(QDF_MODULE_ID_IFMGR, level, data, buf_len)
|
||||
|
||||
/**
|
||||
* struct wlan_if_mgr_obj - interface object definition
|
||||
*
|
||||
*/
|
||||
struct wlan_if_mgr_obj {
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* wlan_if_mgr_psoc_created_notification() - interface mgr psoc create handler
|
||||
* @psoc: psoc object
|
||||
* @arg_list: Argument list
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS wlan_if_mgr_psoc_created_notification(struct wlan_objmgr_psoc *psoc,
|
||||
void *arg_list);
|
||||
|
||||
/**
|
||||
* wlan_scan_psoc_deleted_notification() - scan psoc delete handler
|
||||
* @psoc: psoc object
|
||||
* @arg_list: Argument list
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS wlan_if_mgr_psoc_destroyed_notification(struct wlan_objmgr_psoc *psoc,
|
||||
void *arg_list);
|
||||
|
||||
#endif
|
@@ -0,0 +1,64 @@
|
||||
/*
|
||||
* Copyright (c) 2020, The Linux Foundation. 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 above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* DOC: contains interface manager structure definations
|
||||
*/
|
||||
#ifndef __IF_MGR_PUBLIC_STRUCTS_H
|
||||
#define __IF_MGR_PUBLIC_STRUCTS_H
|
||||
|
||||
#include <scheduler_api.h>
|
||||
#include <wlan_objmgr_psoc_obj.h>
|
||||
#include <wlan_objmgr_pdev_obj.h>
|
||||
#include <wlan_objmgr_vdev_obj.h>
|
||||
#include <qdf_time.h>
|
||||
#include <qdf_list.h>
|
||||
#include <qdf_atomic.h>
|
||||
|
||||
/**
|
||||
* enum wlan_if_mgr_evt: interface manager events
|
||||
* @WLAN_IF_MGR_EV_CONNECT_START:
|
||||
* @WLAN_IF_MGR_EV_CONNECT_COMPLETE:
|
||||
* @WLAN_IF_MGR_EV_DISCONNECT_START:
|
||||
* @WLAN_IF_MGR_EV_DISCONNECT_COMPLETE:
|
||||
* @WLAN_IF_MGR_EV_VALIDATE_CANDIDATE:
|
||||
* @WLAN_IF_MGR_EV_AP_START_BSS:
|
||||
* @WLAN_IF_MGR_EV_AP_START_COMPLETE:
|
||||
* @WLAN_IF_MGR_EV_AP_STOP_BSS:
|
||||
* @WLAN_IF_MGR_EV_AP_STOP_COMPLETE:
|
||||
*/
|
||||
enum wlan_if_mgr_evt {
|
||||
WLAN_IF_MGR_EV_CONNECT_START = 0,
|
||||
WLAN_IF_MGR_EV_CONNECT_COMPLETE = 1,
|
||||
WLAN_IF_MGR_EV_DISCONNECT_START = 2,
|
||||
WLAN_IF_MGR_EV_DISCONNECT_COMPLETE = 3,
|
||||
WLAN_IF_MGR_EV_VALIDATE_CANDIDATE = 4,
|
||||
WLAN_IF_MGR_EV_AP_START_BSS = 5,
|
||||
WLAN_IF_MGR_EV_AP_START_COMPLETE = 6,
|
||||
WLAN_IF_MGR_EV_AP_STOP_BSS = 7,
|
||||
WLAN_IF_MGR_EV_AP_STOP_COMPLETE = 8,
|
||||
WLAN_IF_MGR_EV_MAX = 9,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct if_mgr_event_data - interface manager event data
|
||||
* @status: status
|
||||
*/
|
||||
struct if_mgr_event_data {
|
||||
QDF_STATUS status;
|
||||
};
|
||||
|
||||
#endif
|
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
* Copyright (c) 2020, The Linux Foundation. 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 above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* DOC: contains interface manager public file containing STA event handlers
|
||||
*/
|
||||
|
||||
#ifndef _WLAN_IF_MGR_STA_H_
|
||||
#define _WLAN_IF_MGR_STA_H_
|
||||
|
||||
/**
|
||||
* wlan_process_connect_start() - connect start event handler
|
||||
*
|
||||
* Interface manager connect start event handler
|
||||
*
|
||||
* @vdev: vdev object
|
||||
* @event_data: Interface mgr event data
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS wlan_process_connect_start(struct wlan_objmgr_vdev *vdev,
|
||||
struct if_mgr_event_data *event_data);
|
||||
|
||||
/**
|
||||
* wlan_process_connect_complete() - connect complete event handler
|
||||
*
|
||||
* Interface manager connect complete event handler
|
||||
*
|
||||
* @vdev: vdev object
|
||||
* @event_data: Interface manager complete event data
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS wlan_process_connect_complete(struct wlan_objmgr_vdev *vdev,
|
||||
struct if_mgr_event_data *event_data);
|
||||
|
||||
#endif
|
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
* Copyright (c) 2020, The Linux Foundation. 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 above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* DOC: contains interface manager public api
|
||||
*/
|
||||
|
||||
#ifndef _WLAN_IF_MGR_UCFG_API_H_
|
||||
#define _WLAN_IF_MGR_UCFG_API_H_
|
||||
|
||||
#include <scheduler_api.h>
|
||||
#include <wlan_objmgr_psoc_obj.h>
|
||||
#include <wlan_objmgr_pdev_obj.h>
|
||||
#include <wlan_objmgr_vdev_obj.h>
|
||||
|
||||
/**
|
||||
* ucfg_if_mgr_deliver_event() - interface mgr event handler
|
||||
* @vdev: vdev object
|
||||
* @event: interface mangaer event
|
||||
* @event_data: Interface mgr event data
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
static inline
|
||||
QDF_STATUS ucfg_if_mgr_deliver_event(struct wlan_objmgr_vdev *vdev,
|
||||
enum wlan_if_mgr_evt event,
|
||||
struct if_mgr_event_data *event_data)
|
||||
{
|
||||
return if_mgr_deliver_event(vdev, event, event_data);
|
||||
}
|
||||
|
||||
#endif
|
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
* Copyright (c) 2020, The Linux Foundation. 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 above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* DOC: contains interface manager public api
|
||||
*/
|
||||
#include "wlan_if_mgr_public_struct.h"
|
||||
#include "wlan_if_mgr_api.h"
|
||||
#include "wlan_if_mgr_sta.h"
|
||||
#include "wlan_if_mgr_ap.h"
|
||||
|
||||
QDF_STATUS if_mgr_deliver_event(struct wlan_objmgr_vdev *vdev,
|
||||
enum wlan_if_mgr_evt event,
|
||||
struct if_mgr_event_data *event_data)
|
||||
{
|
||||
struct wlan_objmgr_psoc *psoc;
|
||||
|
||||
psoc = wlan_vdev_get_psoc(vdev);
|
||||
if (!psoc)
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
|
||||
switch (event) {
|
||||
case WLAN_IF_MGR_EV_CONNECT_START:
|
||||
wlan_process_connect_start(vdev, event_data);
|
||||
break;
|
||||
|
||||
case WLAN_IF_MGR_EV_CONNECT_COMPLETE:
|
||||
wlan_process_connect_complete(vdev, event_data);
|
||||
break;
|
||||
|
||||
case WLAN_IF_MGR_EV_AP_START_BSS:
|
||||
wlan_process_ap_start_bss(vdev, event_data);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
@@ -0,0 +1,72 @@
|
||||
/*
|
||||
* Copyright (c) 2020, The Linux Foundation. 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 above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* DOC: contains core interface manager function definitions
|
||||
*/
|
||||
#include "wlan_if_mgr_main.h"
|
||||
|
||||
QDF_STATUS wlan_if_mgr_psoc_created_notification(struct wlan_objmgr_psoc *psoc,
|
||||
void *arg_list)
|
||||
{
|
||||
struct wlan_if_mgr_obj *ifmgr_obj;
|
||||
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
||||
|
||||
ifmgr_obj = qdf_mem_malloc_atomic(sizeof(struct wlan_if_mgr_obj));
|
||||
if (!ifmgr_obj) {
|
||||
ifmgr_err("Failed to allocate memory");
|
||||
return QDF_STATUS_E_NOMEM;
|
||||
}
|
||||
|
||||
/* Attach scan private date to psoc */
|
||||
status = wlan_objmgr_psoc_component_obj_attach(psoc,
|
||||
WLAN_UMAC_COMP_IF_MGR,
|
||||
(void *)ifmgr_obj,
|
||||
QDF_STATUS_SUCCESS);
|
||||
if (QDF_IS_STATUS_ERROR(status))
|
||||
ifmgr_err("Failed to attach psoc scan component");
|
||||
else
|
||||
ifmgr_debug("interface mgr object attach to psoc successful");
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
wlan_if_mgr_psoc_destroyed_notification(struct wlan_objmgr_psoc *psoc,
|
||||
void *arg_list)
|
||||
{
|
||||
void *ifmgr_obj = NULL;
|
||||
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
||||
|
||||
ifmgr_obj = wlan_objmgr_psoc_get_comp_private_obj(psoc,
|
||||
WLAN_UMAC_COMP_IF_MGR);
|
||||
|
||||
if (!ifmgr_obj) {
|
||||
ifmgr_err("Failed to detach interface mgr in psoc ctx");
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
status = wlan_objmgr_psoc_component_obj_detach(psoc,
|
||||
WLAN_UMAC_COMP_IF_MGR,
|
||||
ifmgr_obj);
|
||||
if (QDF_IS_STATUS_ERROR(status))
|
||||
ifmgr_err("Failed to detach psoc interface mgr component");
|
||||
|
||||
qdf_mem_free(ifmgr_obj);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
新增問題並參考
封鎖使用者