diff --git a/dp/inc/cdp_txrx_cmn_struct.h b/dp/inc/cdp_txrx_cmn_struct.h index 5fefa5236c..ea03668493 100644 --- a/dp/inc/cdp_txrx_cmn_struct.h +++ b/dp/inc/cdp_txrx_cmn_struct.h @@ -83,6 +83,7 @@ #define CDP_MU_MAX_USERS 8 #define CDP_MU_MAX_USER_INDEX (CDP_MU_MAX_USERS - 1) #define CDP_INVALID_PEER 0xffff +#define CDP_INVALID_TID 31 #define CDP_DATA_TID_MAX 8 /* diff --git a/dp/inc/cdp_txrx_ctrl.h b/dp/inc/cdp_txrx_ctrl.h index 96e6aeffc2..133a7bd820 100644 --- a/dp/inc/cdp_txrx_ctrl.h +++ b/dp/inc/cdp_txrx_ctrl.h @@ -33,6 +33,8 @@ #ifndef _CDP_TXRX_CTRL_H_ #define _CDP_TXRX_CTRL_H_ #include "cdp_txrx_handle.h" +#include "cdp_txrx_cmn_struct.h" +#include "cdp_txrx_ops.h" static inline int cdp_is_target_ar900b (ol_txrx_soc_handle soc, struct cdp_vdev *vdev) diff --git a/hif/src/ce/ce_main.c b/hif/src/ce/ce_main.c index 53c4ee0f0b..95cff13dd2 100644 --- a/hif/src/ce/ce_main.c +++ b/hif/src/ce/ce_main.c @@ -388,6 +388,7 @@ static struct service_to_pipe target_service_to_ce_map_wlan[] = { /* PIPEDIR_OUT = HOST to Target */ /* PIPEDIR_IN = TARGET to HOST */ +#if (defined(QCA_WIFI_QCA8074)) static struct service_to_pipe target_service_to_ce_map_qca8074[] = { { WMI_DATA_VO_SVC, PIPEDIR_OUT, 3, }, { WMI_DATA_VO_SVC, PIPEDIR_IN, 2, }, @@ -411,7 +412,12 @@ static struct service_to_pipe target_service_to_ce_map_qca8074[] = { /* (Additions here) */ { 0, 0, 0, }, }; +#else +static struct service_to_pipe target_service_to_ce_map_qca8074[] = { +}; +#endif +#if (defined(QCA_WIFI_QCA6290)) #ifdef CONFIG_WIN static struct service_to_pipe target_service_to_ce_map_qca6290[] = { { WMI_DATA_VO_SVC, PIPEDIR_OUT, 3, }, @@ -453,6 +459,10 @@ static struct service_to_pipe target_service_to_ce_map_qca6290[] = { { 0, 0, 0, }, }; #endif +#else +static struct service_to_pipe target_service_to_ce_map_qca6290[] = { +}; +#endif static struct service_to_pipe target_service_to_ce_map_ar900b[] = { { diff --git a/hif/src/hif_main.c b/hif/src/hif_main.c index bafdc4e3f8..cf8dd45feb 100644 --- a/hif/src/hif_main.c +++ b/hif/src/hif_main.c @@ -939,6 +939,7 @@ enum hif_target_status hif_get_target_status(struct hif_opaque_softc *hif_ctx) return scn->target_status; } +qdf_export_symbol(hif_get_target_status); /** * hif_set_target_status() - API to set target status diff --git a/htc/htc.c b/htc/htc.c index 1159ac91c7..ba6383219d 100644 --- a/htc/htc.c +++ b/htc/htc.c @@ -54,6 +54,13 @@ ATH_DEBUG_INSTANTIATE_MODULE_VAR(htc, #endif +#if (defined(CONFIG_MCL) || (QCA_WIFI_QCA8074)) +static const uint32_t svc_id[] = {WMI_CONTROL_SVC, WMI_CONTROL_SVC_WMAC1, + WMI_CONTROL_SVC_WMAC2}; +#else +static const uint32_t svc_id[] = {WMI_CONTROL_SVC}; +#endif + extern unsigned int htc_credit_flow; static void reset_endpoint_states(HTC_TARGET *target); @@ -471,8 +478,6 @@ A_STATUS htc_setup_target_buffer_assignments(HTC_TARGET *target) pEntry, credits); } else { int i; - uint32_t svc_id[] = {WMI_CONTROL_SVC, WMI_CONTROL_SVC_WMAC1, - WMI_CONTROL_SVC_WMAC2}; uint32_t max_wmi_svc = (sizeof(svc_id) / sizeof(uint32_t)); if ((target->wmi_ep_count == 0) || diff --git a/htc/htc_recv.c b/htc/htc_recv.c index e177ca32dd..7734977815 100644 --- a/htc/htc_recv.c +++ b/htc/htc_recv.c @@ -255,7 +255,9 @@ QDF_STATUS htc_rx_completion_handler(void *Context, qdf_nbuf_t netbuf, uint16_t payloadLen; uint32_t trailerlen = 0; uint8_t htc_ep_id; +#ifdef HTC_MSG_WAKEUP_FROM_SUSPEND_ID struct htc_init_info *info; +#endif #ifdef RX_SG_SUPPORT LOCK_HTC_RX(target); diff --git a/spectral/Kbuild b/spectral/Kbuild index 71296881a2..2a7eeba99c 100644 --- a/spectral/Kbuild +++ b/spectral/Kbuild @@ -129,6 +129,14 @@ PERF_PWR_OFFLOAD_INC += -I$(PERF_PWR_OFFLOAD_DIR_PATH)/wlan/include \ -I$(PERF_PWR_OFFLOAD_WMI_SRC)/inc \ -I$(obj)/$(DEPTH)/offload/extra_include +#Add HK/BL Fw header path required by common files +ifeq (1, ${WIFI_TARGET_3_0}) +PERF_PWR_OFFLOAD_INC += -I$(PERF_PWR_OFFLOAD_DIR_PATH)/include/fwcommon \ + -I$(PERF_PWR_OFFLOAD_DIR_PATH)/include/fwcommon/htt_stats +else +PERF_PWR_OFFLOAD_INC += -I$(PERF_PWR_OFFLOAD_DIR_PATH)/include/legacy +endif + INCS += $(PERF_PWR_OFFLOAD_INC) INCS += -I$(obj)/$(DEPTH)/cmn_dev/target_if/spectral INCS += -I$(obj)/$(DEPTH)/cmn_dev/wmi/inc diff --git a/target_if/dfs/src/target_if_dfs.c b/target_if/dfs/src/target_if_dfs.c index 2c6a8fd67f..3cfcf779ad 100644 --- a/target_if/dfs/src/target_if_dfs.c +++ b/target_if/dfs/src/target_if_dfs.c @@ -320,6 +320,7 @@ static QDF_STATUS target_if_dfs_register_event_handler( } } +#if (defined(CONFIG_MCL) || (QCA_WIFI_QCA8074)) static QDF_STATUS target_process_bang_radar_cmd( struct wlan_objmgr_pdev *pdev, struct dfs_emulate_bang_radar_test_cmd *dfs_unit_test) @@ -356,9 +357,16 @@ static QDF_STATUS target_process_bang_radar_cmd( status = wmi_unified_unit_test_cmd(wmi_handle, &wmi_utest); if (QDF_IS_STATUS_ERROR(status)) target_if_err("dfs: unit_test_cmd send failed %d", status); - return status; } +#else +static QDF_STATUS target_process_bang_radar_cmd( + struct wlan_objmgr_pdev *pdev, + struct dfs_emulate_bang_radar_test_cmd *dfs_unit_test) +{ + return QDF_STATUS_SUCCESS; +} +#endif static QDF_STATUS target_if_dfs_is_pdev_5ghz(struct wlan_objmgr_pdev *pdev, bool *is_5ghz) diff --git a/wmi/inc/wmi_unified_priv.h b/wmi/inc/wmi_unified_priv.h index c21a89de46..d8e8e2f198 100644 --- a/wmi/inc/wmi_unified_priv.h +++ b/wmi/inc/wmi_unified_priv.h @@ -1660,6 +1660,7 @@ struct wmi_soc { HTC_ENDPOINT_ID wmi_endpoint_id[WMI_MAX_RADIOS]; uint16_t max_msg_len[WMI_MAX_RADIOS]; struct wmi_ops *ops; + const uint32_t *svc_ids; uint32_t wmi_events[wmi_events_max]; /* WMI service bitmap recieved from target */ uint32_t *wmi_service_bitmap; diff --git a/wmi/src/wmi_unified.c b/wmi/src/wmi_unified.c index ad1f631f3e..e842fd226f 100644 --- a/wmi/src/wmi_unified.c +++ b/wmi/src/wmi_unified.c @@ -2369,8 +2369,6 @@ static int wmi_connect_pdev_htc_service(struct wmi_soc *soc, uint32_t pdev_idx) { int status; - uint32_t svc_id[] = {WMI_CONTROL_SVC, WMI_CONTROL_SVC_WMAC1, - WMI_CONTROL_SVC_WMAC2}; struct htc_service_connect_resp response; struct htc_service_connect_req connect; @@ -2391,7 +2389,7 @@ static int wmi_connect_pdev_htc_service(struct wmi_soc *soc, wmi_htc_tx_complete /* ar6000_tx_queue_full */; /* connect to control service */ - connect.service_id = svc_id[pdev_idx]; + connect.service_id = soc->svc_ids[pdev_idx]; status = htc_connect_service(soc->htc_handle, &connect, &response); diff --git a/wmi/src/wmi_unified_non_tlv.c b/wmi/src/wmi_unified_non_tlv.c index 84a7b31de0..3e127bee45 100644 --- a/wmi/src/wmi_unified_non_tlv.c +++ b/wmi/src/wmi_unified_non_tlv.c @@ -32,7 +32,7 @@ #if defined(WMI_NON_TLV_SUPPORT) || defined(WMI_TLV_AND_NON_TLV_SUPPORT) #include "wmi.h" #include "wmi_unified.h" - +#include /* pdev_id is used to distinguish the radio for which event * is recieved. Since non-tlv target has only one radio, setting @@ -40,6 +40,9 @@ */ #define WMI_NON_TLV_DEFAULT_PDEV_ID WMI_HOST_PDEV_ID_0 +/* HTC service id for WMI */ +static const uint32_t svc_ids[] = {WMI_CONTROL_SVC}; + /** * send_vdev_create_cmd_non_tlv() - send VDEV create command to fw * @wmi_handle: wmi handle @@ -9329,6 +9332,7 @@ void wmi_non_tlv_attach(struct wmi_unified *wmi_handle) { #if defined(WMI_NON_TLV_SUPPORT) || defined(WMI_TLV_AND_NON_TLV_SUPPORT) wmi_handle->ops = &non_tlv_ops; + wmi_handle->soc->svc_ids = &svc_ids[0]; populate_non_tlv_service(wmi_handle->services); populate_non_tlv_events_id(wmi_handle->wmi_events); populate_pdev_param_non_tlv(wmi_handle->pdev_param); diff --git a/wmi/src/wmi_unified_tlv.c b/wmi/src/wmi_unified_tlv.c index 7389ee41e1..92f02dc27f 100644 --- a/wmi/src/wmi_unified_tlv.c +++ b/wmi/src/wmi_unified_tlv.c @@ -31,6 +31,7 @@ #include "wmi_unified_priv.h" #include "wmi_version_whitelist.h" #include +#include #ifdef CONVERGED_P2P_ENABLE #include "wlan_p2p_public_struct.h" @@ -47,6 +48,11 @@ #include "nan_public_structs.h" #endif +/* HTC service ids for WMI for multi-radio */ +static const uint32_t multi_svc_ids[] = {WMI_CONTROL_SVC, + WMI_CONTROL_SVC_WMAC1, + WMI_CONTROL_SVC_WMAC2}; + /* copy_vdev_create_pdev_id() - copy pdev from host params to target command * buffer. * @wmi_handle: pointer to wmi_handle @@ -23773,6 +23779,7 @@ void wmi_tlv_attach(wmi_unified_t wmi_handle) { wmi_handle->ops = &tlv_ops; wmi_ocb_ut_attach(wmi_handle); + wmi_handle->soc->svc_ids = &multi_svc_ids[0]; #ifdef WMI_INTERFACE_EVENT_LOGGING /* Skip saving WMI_CMD_HDR and TLV HDR */ wmi_handle->log_info.buf_offset_command = 8;