Loading drivers/net/wireless/cnss2/Makefile +1 −1 Original line number Diff line number Diff line Loading @@ -7,4 +7,4 @@ cnss2-y += bus.o cnss2-y += debug.o cnss2-y += pci.o cnss2-y += power.o cnss2-$(CONFIG_CNSS2_QMI) += qmi.o wlan_firmware_service_v01.o cnss2-$(CONFIG_CNSS2_QMI) += qmi.o wlan_firmware_service_v01.o coexistence_service_v01.o drivers/net/wireless/cnss2/coexistence_service_v01.c 0 → 100644 +95 −0 Original line number Diff line number Diff line // SPDX-License-Identifier: GPL-2.0-only /* Copyright (c) 2019, The Linux Foundation. All rights reserved. */ #include <linux/soc/qcom/qmi.h> #include "coexistence_service_v01.h" struct qmi_elem_info coex_antenna_switch_to_wlan_req_msg_v01_ei[] = { { .data_type = QMI_UNSIGNED_8_BYTE, .elem_len = 1, .elem_size = sizeof(u64), .array_type = NO_ARRAY, .tlv_type = 0x01, .offset = offsetof(struct coex_antenna_switch_to_wlan_req_msg_v01, antenna), }, { .data_type = QMI_EOTI, .array_type = NO_ARRAY, .tlv_type = QMI_COMMON_TLV_TYPE, }, }; struct qmi_elem_info coex_antenna_switch_to_wlan_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 coex_antenna_switch_to_wlan_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 coex_antenna_switch_to_wlan_resp_msg_v01, grant_valid), }, { .data_type = QMI_UNSIGNED_8_BYTE, .elem_len = 1, .elem_size = sizeof(u64), .array_type = NO_ARRAY, .tlv_type = 0x10, .offset = offsetof(struct coex_antenna_switch_to_wlan_resp_msg_v01, grant), }, { .data_type = QMI_EOTI, .array_type = NO_ARRAY, .tlv_type = QMI_COMMON_TLV_TYPE, }, }; struct qmi_elem_info coex_antenna_switch_to_mdm_req_msg_v01_ei[] = { { .data_type = QMI_UNSIGNED_8_BYTE, .elem_len = 1, .elem_size = sizeof(u64), .array_type = NO_ARRAY, .tlv_type = 0x01, .offset = offsetof(struct coex_antenna_switch_to_mdm_req_msg_v01, antenna), }, { .data_type = QMI_EOTI, .array_type = NO_ARRAY, .tlv_type = QMI_COMMON_TLV_TYPE, }, }; struct qmi_elem_info coex_antenna_switch_to_mdm_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 coex_antenna_switch_to_mdm_resp_msg_v01, resp), .ei_array = qmi_response_type_v01_ei, }, }; drivers/net/wireless/cnss2/coexistence_service_v01.h 0 → 100644 +52 −0 Original line number Diff line number Diff line /* SPDX-License-Identifier: GPL-2.0-only */ /* Copyright (c) 2019, The Linux Foundation. All rights reserved. */ #ifndef COEXISTENCE_SERVICE_V01_H #define COEXISTENCE_SERVICE_V01_H #define COEX_SERVICE_ID_V01 0x22 #define COEX_SERVICE_VERS_V01 0x01 #define COEX_SERVICE_MAX_MSG_LEN 8204 #define QMI_COEX_SWITCH_ANTENNA_TO_WLAN_RESP_V01 0x0042 #define QMI_COEX_SWITCH_ANTENNA_TO_WLAN_REQ_V01 0x0042 #define QMI_COEX_SWITCH_ANTENNA_TO_MDM_RESP_V01 0x0042 #define QMI_COEX_SWITCH_ANTENNA_TO_MDM_REQ_V01 0x0042 #define COEX_ANTENNA_BAND_2GHZ_CHAIN0_V01 ((u64)0x0000000000000001ULL) #define COEX_ANTENNA_BAND_2GHZ_CHAIN1_V01 ((u64)0x0000000000000002ULL) #define COEX_ANTENNA_BAND_5GHZ_CHAIN0_V01 ((u64)0x0000000000000004ULL) #define COEX_ANTENNA_BAND_5GHZ_CHAIN1_V01 ((u64)0x0000000000000008ULL) struct coex_antenna_switch_to_wlan_req_msg_v01 { u64 antenna; }; #define COEX_ANTENNA_SWITCH_TO_WLAN_REQ_MSG_V01_MAX_MSG_LEN 11 extern struct qmi_elem_info coex_antenna_switch_to_wlan_req_msg_v01_ei[]; struct coex_antenna_switch_to_wlan_resp_msg_v01 { struct qmi_response_type_v01 resp; u8 grant_valid; u64 grant; }; #define COEX_ANTENNA_SWITCH_TO_WLAN_RESP_MSG_V01_MAX_MSG_LEN 18 extern struct qmi_elem_info coex_antenna_switch_to_wlan_resp_msg_v01_ei[]; struct coex_antenna_switch_to_mdm_req_msg_v01 { u64 antenna; }; #define COEX_ANTENNA_SWITCH_TO_MDM_REQ_MSG_V01_MAX_MSG_LEN 11 extern struct qmi_elem_info coex_antenna_switch_to_mdm_req_msg_v01_ei[]; struct coex_antenna_switch_to_mdm_resp_msg_v01 { struct qmi_response_type_v01 resp; }; #define COEX_ANTENNA_SWITCH_TO_MDM_RESP_MSG_V01_MAX_MSG_LEN 7 extern struct qmi_elem_info coex_antenna_switch_to_mdm_resp_msg_v01_ei[]; #endif drivers/net/wireless/cnss2/debug.c +3 −0 Original line number Diff line number Diff line Loading @@ -91,6 +91,9 @@ static int cnss_stats_show_state(struct seq_file *s, case CNSS_DRIVER_DEBUG: seq_puts(s, "DRIVER_DEBUG"); continue; case CNSS_COEX_CONNECTED: seq_puts(s, "COEX_CONNECTED"); continue; } seq_printf(s, "UNKNOWN-%d", i); Loading drivers/net/wireless/cnss2/main.h +2 −0 Original line number Diff line number Diff line Loading @@ -166,6 +166,7 @@ enum cnss_driver_state { CNSS_FW_BOOT_RECOVERY, CNSS_DEV_ERR_NOTIFY, CNSS_DRIVER_DEBUG, CNSS_COEX_CONNECTED, }; struct cnss_recovery_data { Loading Loading @@ -281,6 +282,7 @@ struct cnss_plat_data { struct cnss_control_params ctrl_params; u64 antenna; u64 grant; struct qmi_handle coex_qmi; }; struct cnss_plat_data *cnss_get_plat_priv(struct platform_device *plat_dev); Loading Loading
drivers/net/wireless/cnss2/Makefile +1 −1 Original line number Diff line number Diff line Loading @@ -7,4 +7,4 @@ cnss2-y += bus.o cnss2-y += debug.o cnss2-y += pci.o cnss2-y += power.o cnss2-$(CONFIG_CNSS2_QMI) += qmi.o wlan_firmware_service_v01.o cnss2-$(CONFIG_CNSS2_QMI) += qmi.o wlan_firmware_service_v01.o coexistence_service_v01.o
drivers/net/wireless/cnss2/coexistence_service_v01.c 0 → 100644 +95 −0 Original line number Diff line number Diff line // SPDX-License-Identifier: GPL-2.0-only /* Copyright (c) 2019, The Linux Foundation. All rights reserved. */ #include <linux/soc/qcom/qmi.h> #include "coexistence_service_v01.h" struct qmi_elem_info coex_antenna_switch_to_wlan_req_msg_v01_ei[] = { { .data_type = QMI_UNSIGNED_8_BYTE, .elem_len = 1, .elem_size = sizeof(u64), .array_type = NO_ARRAY, .tlv_type = 0x01, .offset = offsetof(struct coex_antenna_switch_to_wlan_req_msg_v01, antenna), }, { .data_type = QMI_EOTI, .array_type = NO_ARRAY, .tlv_type = QMI_COMMON_TLV_TYPE, }, }; struct qmi_elem_info coex_antenna_switch_to_wlan_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 coex_antenna_switch_to_wlan_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 coex_antenna_switch_to_wlan_resp_msg_v01, grant_valid), }, { .data_type = QMI_UNSIGNED_8_BYTE, .elem_len = 1, .elem_size = sizeof(u64), .array_type = NO_ARRAY, .tlv_type = 0x10, .offset = offsetof(struct coex_antenna_switch_to_wlan_resp_msg_v01, grant), }, { .data_type = QMI_EOTI, .array_type = NO_ARRAY, .tlv_type = QMI_COMMON_TLV_TYPE, }, }; struct qmi_elem_info coex_antenna_switch_to_mdm_req_msg_v01_ei[] = { { .data_type = QMI_UNSIGNED_8_BYTE, .elem_len = 1, .elem_size = sizeof(u64), .array_type = NO_ARRAY, .tlv_type = 0x01, .offset = offsetof(struct coex_antenna_switch_to_mdm_req_msg_v01, antenna), }, { .data_type = QMI_EOTI, .array_type = NO_ARRAY, .tlv_type = QMI_COMMON_TLV_TYPE, }, }; struct qmi_elem_info coex_antenna_switch_to_mdm_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 coex_antenna_switch_to_mdm_resp_msg_v01, resp), .ei_array = qmi_response_type_v01_ei, }, };
drivers/net/wireless/cnss2/coexistence_service_v01.h 0 → 100644 +52 −0 Original line number Diff line number Diff line /* SPDX-License-Identifier: GPL-2.0-only */ /* Copyright (c) 2019, The Linux Foundation. All rights reserved. */ #ifndef COEXISTENCE_SERVICE_V01_H #define COEXISTENCE_SERVICE_V01_H #define COEX_SERVICE_ID_V01 0x22 #define COEX_SERVICE_VERS_V01 0x01 #define COEX_SERVICE_MAX_MSG_LEN 8204 #define QMI_COEX_SWITCH_ANTENNA_TO_WLAN_RESP_V01 0x0042 #define QMI_COEX_SWITCH_ANTENNA_TO_WLAN_REQ_V01 0x0042 #define QMI_COEX_SWITCH_ANTENNA_TO_MDM_RESP_V01 0x0042 #define QMI_COEX_SWITCH_ANTENNA_TO_MDM_REQ_V01 0x0042 #define COEX_ANTENNA_BAND_2GHZ_CHAIN0_V01 ((u64)0x0000000000000001ULL) #define COEX_ANTENNA_BAND_2GHZ_CHAIN1_V01 ((u64)0x0000000000000002ULL) #define COEX_ANTENNA_BAND_5GHZ_CHAIN0_V01 ((u64)0x0000000000000004ULL) #define COEX_ANTENNA_BAND_5GHZ_CHAIN1_V01 ((u64)0x0000000000000008ULL) struct coex_antenna_switch_to_wlan_req_msg_v01 { u64 antenna; }; #define COEX_ANTENNA_SWITCH_TO_WLAN_REQ_MSG_V01_MAX_MSG_LEN 11 extern struct qmi_elem_info coex_antenna_switch_to_wlan_req_msg_v01_ei[]; struct coex_antenna_switch_to_wlan_resp_msg_v01 { struct qmi_response_type_v01 resp; u8 grant_valid; u64 grant; }; #define COEX_ANTENNA_SWITCH_TO_WLAN_RESP_MSG_V01_MAX_MSG_LEN 18 extern struct qmi_elem_info coex_antenna_switch_to_wlan_resp_msg_v01_ei[]; struct coex_antenna_switch_to_mdm_req_msg_v01 { u64 antenna; }; #define COEX_ANTENNA_SWITCH_TO_MDM_REQ_MSG_V01_MAX_MSG_LEN 11 extern struct qmi_elem_info coex_antenna_switch_to_mdm_req_msg_v01_ei[]; struct coex_antenna_switch_to_mdm_resp_msg_v01 { struct qmi_response_type_v01 resp; }; #define COEX_ANTENNA_SWITCH_TO_MDM_RESP_MSG_V01_MAX_MSG_LEN 7 extern struct qmi_elem_info coex_antenna_switch_to_mdm_resp_msg_v01_ei[]; #endif
drivers/net/wireless/cnss2/debug.c +3 −0 Original line number Diff line number Diff line Loading @@ -91,6 +91,9 @@ static int cnss_stats_show_state(struct seq_file *s, case CNSS_DRIVER_DEBUG: seq_puts(s, "DRIVER_DEBUG"); continue; case CNSS_COEX_CONNECTED: seq_puts(s, "COEX_CONNECTED"); continue; } seq_printf(s, "UNKNOWN-%d", i); Loading
drivers/net/wireless/cnss2/main.h +2 −0 Original line number Diff line number Diff line Loading @@ -166,6 +166,7 @@ enum cnss_driver_state { CNSS_FW_BOOT_RECOVERY, CNSS_DEV_ERR_NOTIFY, CNSS_DRIVER_DEBUG, CNSS_COEX_CONNECTED, }; struct cnss_recovery_data { Loading Loading @@ -281,6 +282,7 @@ struct cnss_plat_data { struct cnss_control_params ctrl_params; u64 antenna; u64 grant; struct qmi_handle coex_qmi; }; struct cnss_plat_data *cnss_get_plat_priv(struct platform_device *plat_dev); Loading