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:
gaurank kathpalia
2020-02-10 16:30:31 +05:30
committed by nshrivas
parent c537985832
commit f3d64f7ffa
2 changed files with 64 additions and 1 deletions

View File

@@ -612,6 +612,17 @@ struct nan_datapath_end_indication_event {
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
* @vdev: pointer to vdev object

View File

@@ -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
* 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;
}
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,
uint32_t len)
{
@@ -968,6 +1004,15 @@ QDF_STATUS target_if_nan_register_events(struct wlan_objmgr_psoc *psoc)
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,
wmi_ndp_indication_event_id,
target_if_ndp_ind_handler,
@@ -1091,6 +1136,13 @@ QDF_STATUS target_if_nan_deregister_events(struct wlan_objmgr_psoc *psoc)
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,
wmi_ndp_initiator_rsp_event_id);
if (ret) {