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
此提交包含在:
Bapiraju Alla
2021-12-14 17:23:54 +05:30
提交者 Madan Koyyalamudi
父節點 df5cc86477
當前提交 76caeb9b44
共有 11 個檔案被更改,包括 380 行新增0 行删除

查看文件

@@ -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;
}