From a404fdb25d007bff0773ec4eaa9370b42b190c9f Mon Sep 17 00:00:00 2001 From: Michael Adisumarta Date: Thu, 21 Jan 2021 12:36:37 -0800 Subject: [PATCH] msm: ipa: header file to support wdi 2.4G new pipe Header file changes that includes new 2.4G wdi tx pipe info and it's interface. Change-Id: I0bc77f8359152f8209ec4ef132dc6497d0875c2a Signed-off-by: Michael Adisumarta --- include/linux/ipa_wdi3.h | 17 +++++++++++++++-- include/uapi/linux/msm_ipa.h | 9 +++++++-- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/include/linux/ipa_wdi3.h b/include/linux/ipa_wdi3.h index ce77c2a24a4a..ad31f927adb9 100644 --- a/include/linux/ipa_wdi3.h +++ b/include/linux/ipa_wdi3.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only */ /* - * Copyright (c) 2018 - 2020, The Linux Foundation. All rights reserved. + * Copyright (c) 2018 - 2021, The Linux Foundation. All rights reserved. */ #ifndef _IPA_WDI3_H_ @@ -26,7 +26,8 @@ enum ipa_wdi_version { }; #define IPA_WDI3_TX_DIR 1 -#define IPA_WDI3_RX_DIR 2 +#define IPA_WDI3_TX1_DIR 2 +#define IPA_WDI3_RX_DIR 3 /** * struct ipa_wdi_init_in_params - wdi init input parameters @@ -82,6 +83,7 @@ struct ipa_wdi_hdr_info { * @is_meta_data_valid: if meta data is valid * @meta_data: meta data if any * @meta_data_mask: meta data mask + * @is_tx1_used: to indicate whether 2.4g or 5g iface */ struct ipa_wdi_reg_intf_in_params { const char *netdev_name; @@ -90,6 +92,7 @@ struct ipa_wdi_reg_intf_in_params { u8 is_meta_data_valid; u32 meta_data; u32 meta_data_mask; + u8 is_tx1_used; }; /** @@ -182,6 +185,9 @@ struct ipa_wdi_pipe_setup_info_smmu { * @tx_smmu: smmu parameters to connect TX pipe(from IPA to WLAN) * @rx: parameters to connect RX pipe(from WLAN to IPA) * @rx_smmu: smmu parameters to connect RX pipe(from WLAN to IPA) + * @is_tx1_used: to notify extra pipe required/not + * @tx1: parameters to connect TX1 pipe(from IPA to WLAN second pipe) + * @tx1_smmu: smmu parameters to connect TX1 pipe(from IPA to WLAN second pipe) */ struct ipa_wdi_conn_in_params { ipa_notify_cb notify; @@ -197,6 +203,11 @@ struct ipa_wdi_conn_in_params { struct ipa_wdi_pipe_setup_info rx; struct ipa_wdi_pipe_setup_info_smmu rx_smmu; } u_rx; + bool is_tx1_used; + union { + struct ipa_wdi_pipe_setup_info tx; + struct ipa_wdi_pipe_setup_info_smmu tx_smmu; + } u_tx1; }; /** @@ -204,11 +215,13 @@ struct ipa_wdi_conn_in_params { * to WLAN driver * @tx_uc_db_pa: physical address of IPA uC doorbell for TX * @rx_uc_db_pa: physical address of IPA uC doorbell for RX + * @tx1_uc_db_pa: physical address of IPA uC doorbell for TX1 * @is_ddr_mapped: flag set to true if address is from DDR */ struct ipa_wdi_conn_out_params { phys_addr_t tx_uc_db_pa; phys_addr_t rx_uc_db_pa; + phys_addr_t tx1_uc_db_pa; bool is_ddr_mapped; }; diff --git a/include/uapi/linux/msm_ipa.h b/include/uapi/linux/msm_ipa.h index 87e52f143894..791f31fa34b7 100644 --- a/include/uapi/linux/msm_ipa.h +++ b/include/uapi/linux/msm_ipa.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */ /* - * Copyright (c) 2012-2020, The Linux Foundation. All rights reserved. + * Copyright (c) 2012-2021, The Linux Foundation. All rights reserved. */ #ifndef _UAPI_MSM_IPA_H_ @@ -435,9 +435,12 @@ enum ipa_client_type { IPA_CLIENT_ETHERNET2_PROD = 116, IPA_CLIENT_ETHERNET2_CONS = 117, + + /* RESERVED PROD = 118, */ + IPA_CLIENT_WLAN2_CONS1 = 119, }; -#define IPA_CLIENT_MAX (IPA_CLIENT_ETHERNET2_CONS + 1) +#define IPA_CLIENT_MAX (IPA_CLIENT_WLAN2_CONS1 + 1) #define IPA_CLIENT_WLAN2_PROD IPA_CLIENT_A5_WLAN_AMPDU_PROD #define IPA_CLIENT_Q6_DL_NLO_DATA_PROD IPA_CLIENT_Q6_DL_NLO_DATA_PROD @@ -461,6 +464,7 @@ enum ipa_client_type { #define IPA_CLIENT_AQC_ETHERNET_CONS IPA_CLIENT_AQC_ETHERNET_CONS #define IPA_CLIENT_MHI_QDSS_CONS IPA_CLIENT_MHI_QDSS_CONS #define IPA_CLIENT_QDSS_PROD IPA_CLIENT_QDSS_PROD +#define IPA_CLIENT_WLAN2_CONS1 IPA_CLIENT_WLAN2_CONS1 #define IPA_CLIENT_IS_APPS_CONS(client) \ ((client) == IPA_CLIENT_APPS_LAN_CONS || \ @@ -491,6 +495,7 @@ enum ipa_client_type { ((client) == IPA_CLIENT_WLAN1_CONS || \ (client) == IPA_CLIENT_WLAN2_CONS || \ (client) == IPA_CLIENT_WLAN3_CONS || \ + (client) == IPA_CLIENT_WLAN2_CONS1 || \ (client) == IPA_CLIENT_WLAN4_CONS) #define IPA_CLIENT_IS_ODU_CONS(client) \