qcacmn: Use target if component for VDEV manager response path
Currently, VDEV manager responses are using legacy path instead of target_if, vdev_mgr and os_if components. As the driver implementation is planned for converged model, legacy implementation will be moved to the respective components. To avoid rework, Use target_if, vdev_mgr and os_if components to process the FW responses corresponding to the vdev manager. Change-Id: I778f6de93481fc730383e8f8e1c604f173947d69 CRs-Fixed: 3093776
此提交包含在:
@@ -0,0 +1,67 @@
|
||||
/*
|
||||
* Copyright (c) 2021 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 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: osif_vdev_mgr_util.h
|
||||
*
|
||||
* This header file maintains declarations of osif APIs corresponding to vdev
|
||||
* manager.
|
||||
*/
|
||||
|
||||
#ifndef __OSIF_VDEV_MGR_UTIL_H
|
||||
#define __OSIF_VDEV_MGR_UTIL_H
|
||||
/**
|
||||
* struct osif_vdev_mgr_ops - VDEV mgr legacy callbacks
|
||||
* @osif_vdev_mgr_set_mac_addr_response: Callback to indicate set MAC address
|
||||
* response from FW
|
||||
*/
|
||||
struct osif_vdev_mgr_ops {
|
||||
#ifdef WLAN_FEATURE_DYNAMIC_MAC_ADDR_UPDATE
|
||||
void (*osif_vdev_mgr_set_mac_addr_response)(uint8_t vdev_id,
|
||||
uint8_t resp_status);
|
||||
#endif
|
||||
};
|
||||
|
||||
/**
|
||||
* osif_vdev_mgr_set_legacy_cb() - Sets legacy callbacks to osif
|
||||
* @osif_legacy_ops: Function pointer to legacy ops structure
|
||||
*
|
||||
* API to set legacy callbacks to osif
|
||||
* Context: Any context.
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
void osif_vdev_mgr_set_legacy_cb(struct osif_vdev_mgr_ops *osif_legacy_ops);
|
||||
|
||||
/**
|
||||
* osif_vdev_mgr_reset_legacy_cb() - Resets legacy callbacks to osif
|
||||
*
|
||||
* API to reset legacy callbacks to osif
|
||||
* Context: Any context.
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
void osif_vdev_mgr_reset_legacy_cb(void);
|
||||
|
||||
/**
|
||||
* osif_vdev_mgr_register_cb() - Register VDEV manager legacy callbacks
|
||||
*
|
||||
* API to register legavy VDEV manager callbacks
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS osif_vdev_mgr_register_cb(void);
|
||||
#endif /* __OSIF_CM_UTIL_H */
|
@@ -0,0 +1,74 @@
|
||||
/*
|
||||
* Copyright (c) 2021 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 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: osif_vdev_mgr_util.c
|
||||
*
|
||||
* This header file maintains definitaions of osif APIs corresponding to vdev
|
||||
* manager.
|
||||
*/
|
||||
|
||||
#include <include/wlan_mlme_cmn.h>
|
||||
#include "osif_vdev_mgr_util.h"
|
||||
|
||||
static struct osif_vdev_mgr_ops *osif_vdev_mgr_legacy_ops;
|
||||
|
||||
#ifdef WLAN_FEATURE_DYNAMIC_MAC_ADDR_UPDATE
|
||||
static QDF_STATUS osif_vdev_mgr_set_mac_addr_response(uint8_t vdev_id,
|
||||
uint8_t resp_status)
|
||||
{
|
||||
if (osif_vdev_mgr_legacy_ops &&
|
||||
osif_vdev_mgr_legacy_ops->osif_vdev_mgr_set_mac_addr_response)
|
||||
osif_vdev_mgr_legacy_ops->osif_vdev_mgr_set_mac_addr_response(
|
||||
vdev_id, resp_status);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
|
||||
static struct mlme_vdev_mgr_ops vdev_mgr_ops = {
|
||||
#ifdef WLAN_FEATURE_DYNAMIC_MAC_ADDR_UPDATE
|
||||
.mlme_vdev_mgr_set_mac_addr_response =
|
||||
osif_vdev_mgr_set_mac_addr_response
|
||||
#endif
|
||||
};
|
||||
|
||||
/**
|
||||
* osif_vdev_mgr_get_global_ops() - Get vdev manager global ops
|
||||
*
|
||||
* Return: Connection manager global ops
|
||||
*/
|
||||
static struct mlme_vdev_mgr_ops *osif_vdev_mgr_get_global_ops(void)
|
||||
{
|
||||
return &vdev_mgr_ops;
|
||||
}
|
||||
|
||||
QDF_STATUS osif_vdev_mgr_register_cb(void)
|
||||
{
|
||||
mlme_set_osif_vdev_mgr_cb(osif_vdev_mgr_get_global_ops);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
void osif_vdev_mgr_set_legacy_cb(struct osif_vdev_mgr_ops *osif_legacy_ops)
|
||||
{
|
||||
osif_vdev_mgr_legacy_ops = osif_legacy_ops;
|
||||
}
|
||||
|
||||
void osif_vdev_mgr_reset_legacy_cb(void)
|
||||
{
|
||||
osif_vdev_mgr_legacy_ops = NULL;
|
||||
}
|
新增問題並參考
封鎖使用者