android_kernel_xiaomi_sm8350/drivers/net/wireless/cnss_utils/device_management_service_v01.c
Naman Padhiar 05a4d86580 icnss2: Setup DMS QMI client for WLAN MAC address
WLAN MAC address can be provisioned using NV memory based setup.
DMS QMI server connection is required to retrieve this MAC address.
Thus setup DMS QMI client in icnss platform driver and send this
MAC address for WLAN FW before mission mode enable.
1. Move DMS QMI files to cnss_util from cnss2.
2. Read "use-nv-mac" property from DT node to decide whether
   reding MAC address from NV memory is mandatory or not.
   If mandatory wait for DMS QMI server to read MAC address.
   If not mandatory read MAC address if DMS server is available
   otherwise continue.

Change-Id: Iddc5a7180c9eea2a8a9507f08b1b383bc095f2bc
Signed-off-by: Naman Padhiar <npadhiar@codeaurora.org>
2021-04-06 03:19:03 -07:00

79 lines
2.1 KiB
C

// SPDX-License-Identifier: GPL-2.0-only
/* Copyright (c) 2020-2021, The Linux Foundation. All rights reserved. */
#include <linux/soc/qcom/qmi.h>
#include <linux/module.h>
#include "device_management_service_v01.h"
struct qmi_elem_info dms_get_mac_address_req_msg_v01_ei[] = {
{
.data_type = QMI_SIGNED_4_BYTE_ENUM,
.elem_len = 1,
.elem_size = sizeof(enum dms_device_mac_enum_v01),
.array_type = NO_ARRAY,
.tlv_type = 0x01,
.offset = offsetof(struct
dms_get_mac_address_req_msg_v01,
device),
},
{
.data_type = QMI_EOTI,
.array_type = NO_ARRAY,
.tlv_type = QMI_COMMON_TLV_TYPE,
},
};
EXPORT_SYMBOL(dms_get_mac_address_req_msg_v01_ei);
struct qmi_elem_info dms_get_mac_address_resp_msg_v01_ei[] = {
{
.data_type = QMI_STRUCT,
.elem_len = 1,
.elem_size = sizeof(struct qmi_response_type_v01),
.array_type = NO_ARRAY,
.tlv_type = 0x02,
.offset = offsetof(struct
dms_get_mac_address_resp_msg_v01,
resp),
.ei_array = qmi_response_type_v01_ei,
},
{
.data_type = QMI_OPT_FLAG,
.elem_len = 1,
.elem_size = sizeof(u8),
.array_type = NO_ARRAY,
.tlv_type = 0x10,
.offset = offsetof(struct
dms_get_mac_address_resp_msg_v01,
mac_address_valid),
},
{
.data_type = QMI_DATA_LEN,
.elem_len = 1,
.elem_size = sizeof(u8),
.array_type = NO_ARRAY,
.tlv_type = 0x10,
.offset = offsetof(struct
dms_get_mac_address_resp_msg_v01,
mac_address_len),
},
{
.data_type = QMI_UNSIGNED_1_BYTE,
.elem_len = QMI_DMS_MAC_ADDR_MAX_V01,
.elem_size = sizeof(u8),
.array_type = VAR_LEN_ARRAY,
.tlv_type = 0x10,
.offset = offsetof(struct
dms_get_mac_address_resp_msg_v01,
mac_address),
},
{
.data_type = QMI_EOTI,
.array_type = NO_ARRAY,
.tlv_type = QMI_COMMON_TLV_TYPE,
},
};
EXPORT_SYMBOL(dms_get_mac_address_resp_msg_v01_ei);
MODULE_LICENSE("GPL v2");
MODULE_DESCRIPTION("WLAN qmi service DMS");