qcacld-3.0: Do not use adapter in os_if of SON
Use vdev instead of adapter in os_if of SON. Change-Id: Icefc9fb8575511f39676bd742359b3962e746f87 CRs-Fixed: 3119371
This commit is contained in:
parent
56b017309b
commit
d39f2ceb18
@ -30,6 +30,7 @@
|
||||
#include <wlan_reg_services_api.h>
|
||||
#include <son_ucfg_api.h>
|
||||
#include <wlan_hdd_son.h>
|
||||
#include <wlan_hdd_object_manager.h>
|
||||
|
||||
/**
|
||||
* hdd_son_is_acs_in_progress() - whether acs is in progress or not
|
||||
@ -2260,21 +2261,42 @@ void hdd_son_register_callbacks(struct hdd_context *hdd_ctx)
|
||||
|
||||
int hdd_son_deliver_acs_complete_event(struct hdd_adapter *adapter)
|
||||
{
|
||||
int ret;
|
||||
int ret = -EINVAL;
|
||||
struct wlan_objmgr_vdev *vdev;
|
||||
|
||||
if (adapter) {
|
||||
vdev = hdd_objmgr_get_vdev_by_user(adapter, WLAN_SON_ID);
|
||||
if (!vdev) {
|
||||
hdd_err("null vdev");
|
||||
return ret;
|
||||
}
|
||||
ret = os_if_son_deliver_ald_event(vdev, NULL,
|
||||
MLME_EVENT_ACS_COMPLETE,
|
||||
NULL);
|
||||
hdd_objmgr_put_vdev_by_user(vdev, WLAN_SON_ID);
|
||||
}
|
||||
|
||||
ret = os_if_son_deliver_ald_event(adapter, NULL,
|
||||
MLME_EVENT_ACS_COMPLETE, NULL);
|
||||
return ret;
|
||||
}
|
||||
|
||||
int hdd_son_deliver_cac_status_event(struct hdd_adapter *adapter,
|
||||
bool radar_detected)
|
||||
{
|
||||
int ret;
|
||||
int ret = -EINVAL;
|
||||
struct wlan_objmgr_vdev *vdev;
|
||||
|
||||
if (adapter) {
|
||||
vdev = hdd_objmgr_get_vdev_by_user(adapter, WLAN_SON_ID);
|
||||
if (!vdev) {
|
||||
hdd_err("null vdev");
|
||||
return ret;
|
||||
}
|
||||
ret = os_if_son_deliver_ald_event(vdev, NULL,
|
||||
MLME_EVENT_CAC_STATUS,
|
||||
&radar_detected);
|
||||
hdd_objmgr_put_vdev_by_user(vdev, WLAN_SON_ID);
|
||||
}
|
||||
|
||||
ret = os_if_son_deliver_ald_event(adapter, NULL,
|
||||
MLME_EVENT_CAC_STATUS,
|
||||
&radar_detected);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -2283,15 +2305,26 @@ int hdd_son_deliver_assoc_disassoc_event(struct hdd_adapter *adapter,
|
||||
uint32_t reason_code,
|
||||
enum assoc_disassoc_event flag)
|
||||
{
|
||||
int ret;
|
||||
int ret = -EINVAL;
|
||||
struct son_ald_assoc_event_info info;
|
||||
struct wlan_objmgr_vdev *vdev;
|
||||
|
||||
qdf_mem_zero(&info, sizeof(info));
|
||||
memcpy(info.macaddr, &sta_mac.bytes, QDF_MAC_ADDR_SIZE);
|
||||
info.flag = flag;
|
||||
info.reason = reason_code;
|
||||
ret = os_if_son_deliver_ald_event(adapter, NULL,
|
||||
MLME_EVENT_ASSOC_DISASSOC, &info);
|
||||
if (adapter) {
|
||||
vdev = hdd_objmgr_get_vdev_by_user(adapter, WLAN_SON_ID);
|
||||
if (!vdev) {
|
||||
hdd_err("null vdev");
|
||||
return ret;
|
||||
}
|
||||
ret = os_if_son_deliver_ald_event(vdev, NULL,
|
||||
MLME_EVENT_ASSOC_DISASSOC,
|
||||
&info);
|
||||
hdd_objmgr_put_vdev_by_user(vdev, WLAN_SON_ID);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -2300,23 +2333,38 @@ void hdd_son_deliver_peer_authorize_event(struct hdd_adapter *adapter,
|
||||
{
|
||||
struct wlan_objmgr_peer *peer;
|
||||
int ret;
|
||||
struct wlan_objmgr_vdev *vdev;
|
||||
struct wlan_objmgr_psoc *psoc;
|
||||
|
||||
if (adapter->device_mode != QDF_SAP_MODE) {
|
||||
if (!adapter || adapter->device_mode != QDF_SAP_MODE) {
|
||||
hdd_err("Non SAP vdev");
|
||||
return;
|
||||
}
|
||||
vdev = hdd_objmgr_get_vdev_by_user(adapter, WLAN_SON_ID);
|
||||
if (!vdev) {
|
||||
hdd_err("null vdev");
|
||||
return;
|
||||
}
|
||||
psoc = wlan_vdev_get_psoc(vdev);
|
||||
if (!psoc) {
|
||||
hdd_err("null psoc");
|
||||
hdd_objmgr_put_vdev_by_user(vdev, WLAN_SON_ID);
|
||||
return;
|
||||
}
|
||||
peer = wlan_objmgr_get_peer_by_mac(psoc, peer_mac, WLAN_UMAC_COMP_SON);
|
||||
if (!peer) {
|
||||
hdd_err("No peer object for sta" QDF_FULL_MAC_FMT,
|
||||
QDF_FULL_MAC_REF(peer_mac));
|
||||
hdd_objmgr_put_vdev_by_user(vdev, WLAN_SON_ID);
|
||||
return;
|
||||
}
|
||||
|
||||
ret = os_if_son_deliver_ald_event(adapter, peer,
|
||||
ret = os_if_son_deliver_ald_event(vdev, peer,
|
||||
MLME_EVENT_CLIENT_ASSOCIATED, NULL);
|
||||
if (ret)
|
||||
hdd_err("ALD ASSOCIATED Event failed for" QDF_FULL_MAC_FMT,
|
||||
QDF_FULL_MAC_REF(peer_mac));
|
||||
|
||||
wlan_objmgr_peer_release_ref(peer, WLAN_UMAC_COMP_SON);
|
||||
hdd_objmgr_put_vdev_by_user(vdev, WLAN_SON_ID);
|
||||
}
|
||||
|
@ -601,14 +601,14 @@ void os_if_son_modify_acl(struct wlan_objmgr_vdev *vdev,
|
||||
|
||||
/**
|
||||
* os_if_son_deliver_ald_event() - deliver ald events to son
|
||||
* @adapter: adapter object
|
||||
* @vdev: vdev object
|
||||
* @peer: peer object
|
||||
* @event: Name of the event
|
||||
* @event_data: event data
|
||||
*
|
||||
* Return: 0 on success
|
||||
*/
|
||||
int os_if_son_deliver_ald_event(struct hdd_adapter *adapter,
|
||||
int os_if_son_deliver_ald_event(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_objmgr_peer *peer,
|
||||
enum ieee80211_event_type event,
|
||||
void *event_data);
|
||||
|
@ -1352,17 +1352,15 @@ QDF_STATUS os_if_son_pdev_ops(struct wlan_objmgr_pdev *pdev,
|
||||
|
||||
qdf_export_symbol(os_if_son_pdev_ops);
|
||||
|
||||
int os_if_son_deliver_ald_event(struct hdd_adapter *adapter,
|
||||
int os_if_son_deliver_ald_event(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_objmgr_peer *peer,
|
||||
enum ieee80211_event_type event,
|
||||
void *event_data)
|
||||
{
|
||||
struct wlan_objmgr_vdev *vdev;
|
||||
struct wlan_objmgr_psoc *psoc;
|
||||
struct wlan_lmac_if_rx_ops *rx_ops;
|
||||
int ret;
|
||||
|
||||
vdev = hdd_objmgr_get_vdev_by_user(adapter, WLAN_OSIF_SON_ID);
|
||||
if (!vdev) {
|
||||
osif_err("null vdev");
|
||||
return -EINVAL;
|
||||
@ -1370,16 +1368,15 @@ int os_if_son_deliver_ald_event(struct hdd_adapter *adapter,
|
||||
psoc = wlan_vdev_get_psoc(vdev);
|
||||
if (!psoc) {
|
||||
osif_err("null posc");
|
||||
hdd_objmgr_put_vdev_by_user(vdev, WLAN_OSIF_SON_ID);
|
||||
return -EINVAL;
|
||||
}
|
||||
rx_ops = wlan_psoc_get_lmac_if_rxops(psoc);
|
||||
if (rx_ops && rx_ops->son_rx_ops.deliver_event)
|
||||
ret = rx_ops->son_rx_ops.deliver_event(vdev, peer, event,
|
||||
event_data);
|
||||
event_data);
|
||||
else
|
||||
ret = -EINVAL;
|
||||
hdd_objmgr_put_vdev_by_user(vdev, WLAN_OSIF_SON_ID);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user