qcacld-3.0: Add support for NAN msg in kmsg
Add support for the following NAN messages in kmsg:- 1. NAN enable status 2. NAN, NDP match events 3. NDP channel info. etc. Change-Id: Icbf8f4ed05a7bd181a076d526dd2e01d70be6b05 CRs-Fixed: 2618835
This commit is contained in:

committed by
nshrivas

parent
c537985832
commit
f3d64f7ffa
@@ -612,6 +612,17 @@ struct nan_datapath_end_indication_event {
|
|||||||
struct peer_nan_datapath_map ndp_map[];
|
struct peer_nan_datapath_map ndp_map[];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* struct nan_datapath_peer_ind - ndp peer indication
|
||||||
|
* @msg: msg received by FW
|
||||||
|
* @data_len: data length
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
struct nan_dump_msg {
|
||||||
|
uint8_t *msg;
|
||||||
|
uint32_t data_len;
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct nan_datapath_confirm_event - ndp confirmation event from FW
|
* struct nan_datapath_confirm_event - ndp confirmation event from FW
|
||||||
* @vdev: pointer to vdev object
|
* @vdev: pointer to vdev object
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2016-2019 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2016-2020 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -224,6 +224,42 @@ static QDF_STATUS target_if_nan_ndp_initiator_req(
|
|||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int target_if_nan_dmesg_handler(ol_scn_t scn, uint8_t *data,
|
||||||
|
uint32_t data_len)
|
||||||
|
{
|
||||||
|
QDF_STATUS status;
|
||||||
|
struct nan_dump_msg msg;
|
||||||
|
struct wmi_unified *wmi_handle;
|
||||||
|
struct wlan_objmgr_psoc *psoc;
|
||||||
|
|
||||||
|
psoc = target_if_get_psoc_from_scn_hdl(scn);
|
||||||
|
if (!psoc) {
|
||||||
|
target_if_err("psoc is null");
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
wmi_handle = get_wmi_unified_hdl_from_psoc(psoc);
|
||||||
|
if (!wmi_handle) {
|
||||||
|
target_if_err("wmi_handle is null");
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
status = wmi_extract_nan_msg(wmi_handle, data, &msg);
|
||||||
|
if (QDF_IS_STATUS_ERROR(status)) {
|
||||||
|
target_if_err("parsing of event failed, %d", status);
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!msg.msg) {
|
||||||
|
target_if_err("msg not present %d", msg.data_len);
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
target_if_info("%s", msg.msg);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int target_if_ndp_initiator_rsp_handler(ol_scn_t scn, uint8_t *data,
|
static int target_if_ndp_initiator_rsp_handler(ol_scn_t scn, uint8_t *data,
|
||||||
uint32_t len)
|
uint32_t len)
|
||||||
{
|
{
|
||||||
@@ -968,6 +1004,15 @@ QDF_STATUS target_if_nan_register_events(struct wlan_objmgr_psoc *psoc)
|
|||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ret = wmi_unified_register_event_handler(handle, wmi_nan_dmesg_event_id,
|
||||||
|
target_if_nan_dmesg_handler,
|
||||||
|
WMI_RX_UMAC_CTX);
|
||||||
|
if (ret) {
|
||||||
|
target_if_err("wmi event registration failed, ret: %d", ret);
|
||||||
|
target_if_nan_deregister_events(psoc);
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
ret = wmi_unified_register_event_handler(handle,
|
ret = wmi_unified_register_event_handler(handle,
|
||||||
wmi_ndp_indication_event_id,
|
wmi_ndp_indication_event_id,
|
||||||
target_if_ndp_ind_handler,
|
target_if_ndp_ind_handler,
|
||||||
@@ -1091,6 +1136,13 @@ QDF_STATUS target_if_nan_deregister_events(struct wlan_objmgr_psoc *psoc)
|
|||||||
status = ret;
|
status = ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ret = wmi_unified_unregister_event_handler(handle,
|
||||||
|
wmi_nan_dmesg_event_id);
|
||||||
|
if (ret) {
|
||||||
|
target_if_err("wmi event deregistration failed, ret: %d", ret);
|
||||||
|
status = ret;
|
||||||
|
}
|
||||||
|
|
||||||
ret = wmi_unified_unregister_event_handler(handle,
|
ret = wmi_unified_unregister_event_handler(handle,
|
||||||
wmi_ndp_initiator_rsp_event_id);
|
wmi_ndp_initiator_rsp_event_id);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
|
Reference in New Issue
Block a user