From 9def5df14a74a40b32b497fb13946cfa82ef8b3e Mon Sep 17 00:00:00 2001 From: Basamma Yakkanahalli Date: Thu, 19 Mar 2020 10:58:12 +0530 Subject: [PATCH] qcacmn: device ID and target type checks for ipq5018 target Initial changes for ipq5018 compilation. Added device ID and target type checks for ipq5018 traget. Change-Id: Ib86a371fbe66749fcb6d114e7a4a9931b684e03d --- dp/inc/cdp_txrx_cmn_reg.h | 4 +- dp/wifi3.0/dp_main.c | 13 ++++- hal/wifi3.0/hal_generic_api.h | 1 + hal/wifi3.0/hal_srng.c | 8 +++ hif/inc/hif.h | 1 + hif/inc/hostdef.h | 1 + hif/inc/target_type.h | 5 +- hif/inc/targetdef.h | 2 + hif/src/ath_procfs.c | 2 + hif/src/ce/ce_assignment.h | 51 +++++++++++++++++++ hif/src/ce/ce_main.c | 44 +++++++++++++++- hif/src/hif_main.c | 15 ++++-- hif/src/hif_main.h | 1 + hif/src/pcie/if_pci.c | 3 ++ hif/src/regtable.c | 13 +++++ hif/src/snoc/if_ahb.c | 9 +++- .../dfs/src/target_if_dfs_full_offload.c | 4 +- target_if/spectral/target_if_spectral.c | 1 + 18 files changed, 166 insertions(+), 12 deletions(-) diff --git a/dp/inc/cdp_txrx_cmn_reg.h b/dp/inc/cdp_txrx_cmn_reg.h index f99fd6b5c3..f63a5e21c1 100644 --- a/dp/inc/cdp_txrx_cmn_reg.h +++ b/dp/inc/cdp_txrx_cmn_reg.h @@ -65,7 +65,8 @@ ol_txrx_soc_attach(void *scn_handle, struct ol_if_ops *dp_ol_if_ops); * * Return: DP SOC handle on success, NULL on failure */ -#if defined(QCA_WIFI_QCA8074) || defined(QCA_WIFI_QCA6018) +#if defined(QCA_WIFI_QCA8074) || defined(QCA_WIFI_QCA6018) || \ + defined(QCA_WIFI_QCA5018) struct cdp_soc_t * dp_soc_attach_wifi3(struct cdp_ctrl_objmgr_psoc *ctrl_psoc, struct hif_opaque_softc *hif_handle, @@ -111,6 +112,7 @@ ol_txrx_soc_handle cdp_soc_attach(u_int16_t devid, case LITHIUM_DP: /*FIXME Add lithium devide IDs */ case QCA8074_DEVICE_ID: /* Hawekeye */ case QCA8074V2_DEVICE_ID: /* Hawekeye V2*/ + case QCA5018_DEVICE_ID: case QCA6290_DEVICE_ID: case QCN9000_DEVICE_ID: case QCA6390_DEVICE_ID: diff --git a/dp/wifi3.0/dp_main.c b/dp/wifi3.0/dp_main.c index 2402defe9d..24bfedaf85 100644 --- a/dp/wifi3.0/dp_main.c +++ b/dp/wifi3.0/dp_main.c @@ -10954,7 +10954,8 @@ void dp_soc_set_txrx_ring_map(struct dp_soc *soc) } } -#if defined(QCA_WIFI_QCA8074) || defined(QCA_WIFI_QCA6018) +#if defined(QCA_WIFI_QCA8074) || defined(QCA_WIFI_QCA6018) || \ + defined(QCA_WIFI_QCA5018) #ifndef QCA_MEM_ATTACH_ON_WIFI3 @@ -11178,6 +11179,16 @@ void *dp_soc_init(struct dp_soc *soc, HTC_HANDLE htc_handle, soc->num_hw_dscp_tid_map = HAL_MAX_HW_DSCP_TID_V2_MAPS; soc->lmac_polled_mode = 1; break; + case TARGET_TYPE_QCA5018: + wlan_cfg_set_reo_dst_ring_size(soc->wlan_cfg_ctx, + REO_DST_RING_SIZE_QCA8074); + soc->ast_override_support = 1; + soc->da_war_enabled = false; + wlan_cfg_set_raw_mode_war(soc->wlan_cfg_ctx, false); + soc->hw_nac_monitor_support = 1; + soc->per_tid_basize_max_tid = 8; + soc->num_hw_dscp_tid_map = HAL_MAX_HW_DSCP_TID_V2_MAPS; + break; default: qdf_print("%s: Unknown tgt type %d\n", __func__, target_type); qdf_assert_always(0); diff --git a/hal/wifi3.0/hal_generic_api.h b/hal/wifi3.0/hal_generic_api.h index 6a17d2b999..51df36560f 100644 --- a/hal/wifi3.0/hal_generic_api.h +++ b/hal/wifi3.0/hal_generic_api.h @@ -812,6 +812,7 @@ hal_rx_status_get_tlv_info_generic(void *rx_tlv_hdr, void *ppduinfo, case TARGET_TYPE_QCA8074: case TARGET_TYPE_QCA8074V2: case TARGET_TYPE_QCA6018: + case TARGET_TYPE_QCA5018: case TARGET_TYPE_QCN9000: #ifdef QCA_WIFI_QCA6390 case TARGET_TYPE_QCA6390: diff --git a/hal/wifi3.0/hal_srng.c b/hal/wifi3.0/hal_srng.c index e909cde40b..77a0c6a9e9 100644 --- a/hal/wifi3.0/hal_srng.c +++ b/hal/wifi3.0/hal_srng.c @@ -43,6 +43,9 @@ void hal_qcn9000_attach(struct hal_soc *hal); #ifdef QCA_WIFI_QCA6750 void hal_qca6750_attach(struct hal_soc *hal); #endif +#ifdef QCA_WIFI_QCA5018 +void hal_qca5018_attach(struct hal_soc *hal); +#endif #ifdef ENABLE_VERBOSE_DEBUG bool is_hal_verbose_debug_enabled; @@ -324,6 +327,11 @@ static void hal_target_based_configure(struct hal_soc *hal) hal->static_window_map = true; hal_qcn9000_attach(hal); break; +#endif +#ifdef QCA_WIFI_QCA5018 + case TARGET_TYPE_QCA5018: + hal_qca5018_attach(hal); + break; #endif default: break; diff --git a/hif/inc/hif.h b/hif/inc/hif.h index 56419b1d18..ff27fe7a0c 100644 --- a/hif/inc/hif.h +++ b/hif/inc/hif.h @@ -66,6 +66,7 @@ typedef void *hif_handle_t; #define HIF_TYPE_QCN9000 21 #define HIF_TYPE_QCA6490 22 #define HIF_TYPE_QCA6750 23 +#define HIF_TYPE_QCA5018 24 #ifdef IPA_OFFLOAD #define DMA_COHERENT_MASK_IPA_VER_3_AND_ABOVE 37 diff --git a/hif/inc/hostdef.h b/hif/inc/hostdef.h index a94df8efb5..745fe0f44a 100644 --- a/hif/inc/hostdef.h +++ b/hif/inc/hostdef.h @@ -44,5 +44,6 @@ extern struct hostdef_s *IPQ4019_HOSTdef; extern struct hostdef_s *QCA8074_HOSTdef; extern struct hostdef_s *QCA8074V2_HOSTDEF; extern struct hostdef_s *QCA6018_HOSTDEF; +extern struct hostdef_s *QCA5018_HOSTDEF; extern struct hostdef_s *QCN9000_HOSTDEF; #endif diff --git a/hif/inc/target_type.h b/hif/inc/target_type.h index fe3a0d852e..b0c4f9a69e 100644 --- a/hif/inc/target_type.h +++ b/hif/inc/target_type.h @@ -58,11 +58,14 @@ extern "C" { #ifndef TARGET_TYPE_QCA6490 #define TARGET_TYPE_QCA6490 27 #endif - /* Moselle */ #ifndef TARGET_TYPE_QCA6750 #define TARGET_TYPE_QCA6750 28 #endif +#ifndef TARGET_TYPE_QCA5018 +#define TARGET_TYPE_QCA5018 29 +#endif + #ifdef __cplusplus } diff --git a/hif/inc/targetdef.h b/hif/inc/targetdef.h index 8bd957216b..16488152dd 100644 --- a/hif/inc/targetdef.h +++ b/hif/inc/targetdef.h @@ -44,6 +44,7 @@ extern struct targetdef_s *IPQ4019_TARGETdef; extern struct targetdef_s *QCA8074_TARGETdef; extern struct targetdef_s *QCA8074V2_TARGETDEF; extern struct targetdef_s *QCA6018_TARGETDEF; +extern struct targetdef_s *QCA5018_TARGETDEF; extern struct targetdef_s *QCN9000_TARGETDEF; extern struct ce_reg_def *AR6002_CE_TARGETdef; @@ -65,6 +66,7 @@ extern struct ce_reg_def *IPQ4019_CE_TARGETdef; extern struct ce_reg_def *QCA8074_CE_TARGETdef; extern struct ce_reg_def *QCA8074V2_CE_TARGETDEF; extern struct ce_reg_def *QCA6018_CE_TARGETDEF; +extern struct ce_reg_def *QCA5018_CE_TARGETDEF; extern struct ce_reg_def *QCN9000_CE_TARGETDEF; diff --git a/hif/src/ath_procfs.c b/hif/src/ath_procfs.c index dd346ca3ea..ffc5bf54ce 100644 --- a/hif/src/ath_procfs.c +++ b/hif/src/ath_procfs.c @@ -87,6 +87,7 @@ static ssize_t ath_procfs_diag_read(struct file *file, char __user *buf, (tgt_info->target_type == TARGET_TYPE_QCA8074) || (tgt_info->target_type == TARGET_TYPE_QCA8074V2) || (tgt_info->target_type == TARGET_TYPE_QCN9000) || + (tgt_info->target_type == TARGET_TYPE_QCA5018) || (tgt_info->target_type == TARGET_TYPE_QCA6018))) || (scn->bus_type == QDF_BUS_TYPE_IPCI && (tgt_info->target_type == TARGET_TYPE_QCA6750)) || @@ -168,6 +169,7 @@ static ssize_t ath_procfs_diag_write(struct file *file, (tgt_info->target_type == TARGET_TYPE_QCA8074) || (tgt_info->target_type == TARGET_TYPE_QCA8074V2) || (tgt_info->target_type == TARGET_TYPE_QCN9000) || + (tgt_info->target_type == TARGET_TYPE_QCA5018) || (tgt_info->target_type == TARGET_TYPE_QCA6018))) || (scn->bus_type == QDF_BUS_TYPE_IPCI && (tgt_info->target_type == TARGET_TYPE_QCA6750)) || diff --git a/hif/src/ce/ce_assignment.h b/hif/src/ce/ce_assignment.h index ca0baf0521..607128cd16 100644 --- a/hif/src/ce/ce_assignment.h +++ b/hif/src/ce/ce_assignment.h @@ -919,6 +919,57 @@ static struct CE_pipe_config target_ce_config_wlan_adrastea[] = { { /* CE11 */ 11, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, }; +#define QCA_5018_CE_COUNT 9 +static struct CE_attr host_ce_config_wlan_qca5018[] = { + /* host->target HTC control and raw streams */ + {/*CE0*/ (CE_ATTR_FLAGS), 0, 16, 2048, 0, NULL,}, + /* target->host HTT + HTC control */ + {/*CE1*/ (CE_ATTR_FLAGS), 0, 0, 2048, + 512, NULL,}, + /* target->host WMI */ + {/*CE2*/ (CE_ATTR_FLAGS), 0, 0, 2048, + 128, NULL,}, + /* host->target WMI */ + {/*CE3*/ (CE_ATTR_FLAGS), 0, 32, 2048, 0, NULL,}, + /* host->target HTT */ + {/*CE4*/ (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0, + CE_HTT_H2T_MSG_SRC_NENTRIES, 256, 0, NULL,}, + /* target -> host PKTLOG */ + {/*CE5*/ (CE_ATTR_FLAGS), 0, 0, 2048, + 512, NULL,}, + /* Target autonomous HIF_memcpy */ + {/*CE6*/ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,}, + /* host->target WMI (mac1) */ + {/*CE7*/ CE_ATTR_FLAGS, 0, 32, 2048, 0, NULL,}, + /* Reserved for target */ + {/*CE8*/ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,}, + /* CE 9, 10, 11 belong to CoreBsp & MHI driver */ +}; + +static struct CE_pipe_config target_ce_config_wlan_qca5018[] = { + /* host->target HTC control and raw streams */ + { /* CE0 */ 0, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0,}, + /* target->host HTT */ + { /* CE1 */ 1, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, + /* target->host WMI + HTC control */ + { /* CE2 */ 2, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, + /* host->target WMI */ + { /* CE3 */ 3, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0,}, + /* host->target HTT */ + { /* CE4 */ 4, PIPEDIR_OUT, 256, 256, + (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,}, + /* Target -> host PKTLOG */ + { /* CE5 */ 5, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, + /* Reserved for target autonomous HIF_memcpy */ + { /* CE6 */ 6, PIPEDIR_INOUT, 32, 16384, CE_ATTR_FLAGS, 0,}, + /* CE7 used only by Host */ + { /* CE7 */ 7, PIPEDIR_OUT, 32, 2048, + 8192, 0,}, + /* Reserved for target */ + { /* CE8 */ 8, PIPEDIR_INOUT, 32, 16384, CE_ATTR_FLAGS, 0,}, + /* CE 9, 10, 11 belong to CoreBsp & MHI driver */ +}; + #define QCN_9000_CE_COUNT 6 /* QCN9000 enable polling mode */ static struct CE_attr host_ce_config_wlan_qcn9000[] = { diff --git a/hif/src/ce/ce_main.c b/hif/src/ce/ce_main.c index f845f6e100..4bcec20b4a 100644 --- a/hif/src/ce/ce_main.c +++ b/hif/src/ce/ce_main.c @@ -50,7 +50,8 @@ #include "mp_dev.h" #if (defined(QCA_WIFI_QCA8074) || defined(QCA_WIFI_QCA6290) || \ - defined(QCA_WIFI_QCA6018)) && !defined(QCA_WIFI_SUPPORT_SRNG) + defined(QCA_WIFI_QCA6018) || defined(QCA_WIFI_QCA5018)) && \ + !defined(QCA_WIFI_SUPPORT_SRNG) #define QCA_WIFI_SUPPORT_SRNG #endif @@ -506,6 +507,33 @@ static struct service_to_pipe target_service_to_ce_map_qcn9000[] = { }; #endif +#if (defined(QCA_WIFI_QCA5018)) +static struct service_to_pipe target_service_to_ce_map_qca5018[] = { + { WMI_DATA_VO_SVC, PIPEDIR_OUT, 3, }, + { WMI_DATA_VO_SVC, PIPEDIR_IN, 2, }, + { WMI_DATA_BK_SVC, PIPEDIR_OUT, 3, }, + { WMI_DATA_BK_SVC, PIPEDIR_IN, 2, }, + { WMI_DATA_BE_SVC, PIPEDIR_OUT, 3, }, + { WMI_DATA_BE_SVC, PIPEDIR_IN, 2, }, + { WMI_DATA_VI_SVC, PIPEDIR_OUT, 3, }, + { WMI_DATA_VI_SVC, PIPEDIR_IN, 2, }, + { WMI_CONTROL_SVC, PIPEDIR_OUT, 3, }, + { WMI_CONTROL_SVC, PIPEDIR_IN, 2, }, + { HTC_CTRL_RSVD_SVC, PIPEDIR_OUT, 0, }, + { HTC_CTRL_RSVD_SVC, PIPEDIR_IN, 1, }, + { HTC_RAW_STREAMS_SVC, PIPEDIR_OUT, 0}, + { HTC_RAW_STREAMS_SVC, PIPEDIR_IN, 1 }, + { HTT_DATA_MSG_SVC, PIPEDIR_OUT, 4, }, + { HTT_DATA_MSG_SVC, PIPEDIR_IN, 1, }, + { PACKET_LOG_SVC, PIPEDIR_IN, 5, }, + /* (Additions here) */ + { 0, 0, 0, }, +}; +#else +static struct service_to_pipe target_service_to_ce_map_qca5018[] = { +}; +#endif + /* PIPEDIR_OUT = HOST to Target */ /* PIPEDIR_IN = TARGET to HOST */ #ifdef QCN7605_SUPPORT @@ -880,6 +908,12 @@ static void hif_select_service_to_pipe_map(struct hif_softc *scn, *sz_tgt_svc_map_to_use = sizeof(target_service_to_ce_map_qcn9000); break; + case TARGET_TYPE_QCA5018: + *tgt_svc_map_to_use = + target_service_to_ce_map_qca5018; + *sz_tgt_svc_map_to_use = + sizeof(target_service_to_ce_map_qca5018); + break; } } } @@ -1091,6 +1125,7 @@ bool ce_srng_based(struct hif_softc *scn) case TARGET_TYPE_QCA6750: case TARGET_TYPE_QCA6018: case TARGET_TYPE_QCN9000: + case TARGET_TYPE_QCA5018: return true; default: return false; @@ -3227,6 +3262,13 @@ void hif_ce_prepare_config(struct hif_softc *scn) scn->ce_count = QCN_9000_CE_COUNT; scn->disable_wake_irq = 1; break; + case TARGET_TYPE_QCA5018: + hif_state->host_ce_config = host_ce_config_wlan_qca5018; + hif_state->target_ce_config = target_ce_config_wlan_qca5018; + hif_state->target_ce_config_sz = + sizeof(target_ce_config_wlan_qca5018); + scn->ce_count = QCA_5018_CE_COUNT; + break; case TARGET_TYPE_QCA6390: hif_state->host_ce_config = host_ce_config_wlan_qca6390; hif_state->target_ce_config = target_ce_config_wlan_qca6390; diff --git a/hif/src/hif_main.c b/hif/src/hif_main.c index f324c6b3a4..dadb886100 100644 --- a/hif/src/hif_main.c +++ b/hif/src/hif_main.c @@ -39,7 +39,8 @@ #include "qdf_status.h" #include "hif_debug.h" #include "mp_dev.h" -#if defined(QCA_WIFI_QCA8074) || defined(QCA_WIFI_QCA6018) +#if defined(QCA_WIFI_QCA8074) || defined(QCA_WIFI_QCA6018) || \ + defined(QCA_WIFI_QCA5018) #include "hal_api.h" #endif #include "hif_napi.h" @@ -525,9 +526,9 @@ void hif_close(struct hif_opaque_softc *hif_ctx) } #if (defined(QCA_WIFI_QCA8074) || defined(QCA_WIFI_QCA6018) || \ - defined(QCA_WIFI_QCA6290) || defined(QCA_WIFI_QCA6390) || \ - defined(QCA_WIFI_QCN9000) || defined(QCA_WIFI_QCA6490) || \ - defined(QCA_WIFI_QCA6750)) + defined(QCA_WIFI_QCA6290) || defined(QCA_WIFI_QCA6390) || \ + defined(QCA_WIFI_QCN9000) || defined(QCA_WIFI_QCA6490) || \ + defined(QCA_WIFI_QCA6750) || defined(QCA_WIFI_QCA5018)) static QDF_STATUS hif_hal_attach(struct hif_softc *scn) { if (ce_srng_based(scn)) { @@ -923,6 +924,12 @@ int hif_get_device_type(uint32_t device_id, HIF_INFO(" *********** QCA6018 *************\n"); break; + case QCA5018_DEVICE_ID: + *hif_type = HIF_TYPE_QCA5018; + *target_type = TARGET_TYPE_QCA5018; + HIF_INFO(" *********** qca5018 *************\n"); + break; + default: HIF_ERROR("%s: Unsupported device ID = 0x%x!", __func__, device_id); diff --git a/hif/src/hif_main.h b/hif/src/hif_main.h index 13495824ec..ae0adada08 100644 --- a/hif/src/hif_main.h +++ b/hif/src/hif_main.h @@ -110,6 +110,7 @@ emulation purpose */ #define QCA8074V2_DEVICE_ID (0xfffe) /* Todo: replace this with actual number */ #define QCA6018_DEVICE_ID (0xfffd) /* Todo: replace this with actual number */ +#define QCA5018_DEVICE_ID (0xfffc) /* Todo: replace this with actual number */ /* Genoa */ #define QCN7605_DEVICE_ID (0x1102) /* Genoa PCIe device ID*/ #define QCN7605_COMPOSITE (0x9901) diff --git a/hif/src/pcie/if_pci.c b/hif/src/pcie/if_pci.c index 58266d6859..ed4c1e0ae1 100644 --- a/hif/src/pcie/if_pci.c +++ b/hif/src/pcie/if_pci.c @@ -2048,6 +2048,7 @@ int hif_pci_bus_configure(struct hif_softc *hif_sc) /* todo: consider replacing this with an srng field */ if (((hif_sc->target_info.target_type == TARGET_TYPE_QCA8074) || (hif_sc->target_info.target_type == TARGET_TYPE_QCA8074V2) || + (hif_sc->target_info.target_type == TARGET_TYPE_QCA5018) || (hif_sc->target_info.target_type == TARGET_TYPE_QCA6018)) && (hif_sc->bus_type == QDF_BUS_TYPE_AHB)) { hif_sc->per_ce_irq = true; @@ -2068,6 +2069,7 @@ int hif_pci_bus_configure(struct hif_softc *hif_sc) if (((hif_sc->target_info.target_type == TARGET_TYPE_QCA8074) || (hif_sc->target_info.target_type == TARGET_TYPE_QCA8074V2) || + (hif_sc->target_info.target_type == TARGET_TYPE_QCA5018) || (hif_sc->target_info.target_type == TARGET_TYPE_QCA6018)) && (hif_sc->bus_type == QDF_BUS_TYPE_PCI)) HIF_INFO_MED("%s: Skip irq config for PCI based 8074 target", @@ -3597,6 +3599,7 @@ int hif_configure_irq(struct hif_softc *scn) case TARGET_TYPE_QCA8074: case TARGET_TYPE_QCA8074V2: case TARGET_TYPE_QCA6018: + case TARGET_TYPE_QCA5018: ret = hif_ahb_configure_irq(sc); break; default: diff --git a/hif/src/regtable.c b/hif/src/regtable.c index 3a0b7948c5..f7a33ca276 100644 --- a/hif/src/regtable.c +++ b/hif/src/regtable.c @@ -134,6 +134,14 @@ void hif_target_register_tbl_attach(struct hif_softc *scn, u32 target_type) break; #endif +#if defined(QCA5018_HEADERS_DEF) + case TARGET_TYPE_QCA5018: + scn->targetdef = QCA5018_TARGETDEF; + scn->target_ce_def = QCA5018_CE_TARGETDEF; + HIF_TRACE("%s: TARGET_TYPE_QCA5018", __func__); + break; +#endif + #if defined(QCA6390_HEADERS_DEF) case TARGET_TYPE_QCA6390: scn->targetdef = QCA6390_TARGETdef; @@ -250,6 +258,11 @@ void hif_register_tbl_attach(struct hif_softc *scn, u32 hif_type) scn->hostdef = QCN9000_HOSTDEF; break; #endif +#if defined(QCA5018_HEADERS_DEF) + case HIF_TYPE_QCA5018: + scn->hostdef = QCA5018_HOSTDEF; + break; +#endif #if defined(QCA6390_HEADERS_DEF) case HIF_TYPE_QCA6390: diff --git a/hif/src/snoc/if_ahb.c b/hif/src/snoc/if_ahb.c index 49672a5b8a..a1c3b1c02b 100644 --- a/hif/src/snoc/if_ahb.c +++ b/hif/src/snoc/if_ahb.c @@ -489,6 +489,7 @@ void hif_ahb_disable_bus(struct hif_softc *scn) /* Should not be executed on 8074 platform */ if ((tgt_info->target_type != TARGET_TYPE_QCA8074) && (tgt_info->target_type != TARGET_TYPE_QCA8074V2) && + (tgt_info->target_type != TARGET_TYPE_QCA5018) && (tgt_info->target_type != TARGET_TYPE_QCA6018)) { hif_ahb_clk_enable_disable(&pdev->dev, 0); @@ -607,6 +608,7 @@ QDF_STATUS hif_ahb_enable_bus(struct hif_softc *ol_sc, if ((tgt_info->target_type != TARGET_TYPE_QCA8074) && (tgt_info->target_type != TARGET_TYPE_QCA8074V2) && + (tgt_info->target_type != TARGET_TYPE_QCA5018) && (tgt_info->target_type != TARGET_TYPE_QCA6018)) { if (hif_ahb_enable_radio(sc, pdev, id) != 0) { HIF_INFO("error in enabling soc\n"); @@ -625,6 +627,7 @@ QDF_STATUS hif_ahb_enable_bus(struct hif_softc *ol_sc, err_target_sync: if ((tgt_info->target_type != TARGET_TYPE_QCA8074) && (tgt_info->target_type != TARGET_TYPE_QCA8074V2) && + (tgt_info->target_type != TARGET_TYPE_QCA5018) && (tgt_info->target_type != TARGET_TYPE_QCA6018)) { HIF_INFO("Error: Disabling target\n"); hif_ahb_disable_bus(ol_sc); @@ -733,9 +736,10 @@ void hif_ahb_irq_enable(struct hif_softc *scn, int ce_id) hif_write32_mb(scn, scn->mem + reg_offset, regval); if (tgt_info->target_type == TARGET_TYPE_QCA8074 || tgt_info->target_type == TARGET_TYPE_QCA8074V2 || + tgt_info->target_type == TARGET_TYPE_QCA5018 || tgt_info->target_type == TARGET_TYPE_QCA6018) { /* Enable destination ring interrupts for - * 8074, 8074V2 and 6018 + * 8074, 8074V2, 6018 and 50xx */ regval = hif_read32_mb(scn, scn->mem + HOST_IE_ADDRESS_3); @@ -783,9 +787,10 @@ void hif_ahb_irq_disable(struct hif_softc *scn, int ce_id) hif_write32_mb(scn, scn->mem + reg_offset, regval); if (tgt_info->target_type == TARGET_TYPE_QCA8074 || tgt_info->target_type == TARGET_TYPE_QCA8074V2 || + tgt_info->target_type == TARGET_TYPE_QCA5018 || tgt_info->target_type == TARGET_TYPE_QCA6018) { /* Disable destination ring interrupts for - * 8074, 8074V2 and 6018 + * 8074, 8074V2, 6018 and 50xx */ regval = hif_read32_mb(scn, scn->mem + HOST_IE_ADDRESS_3); diff --git a/target_if/dfs/src/target_if_dfs_full_offload.c b/target_if/dfs/src/target_if_dfs_full_offload.c index 9c29ce31cb..8da1f95a99 100644 --- a/target_if/dfs/src/target_if_dfs_full_offload.c +++ b/target_if/dfs/src/target_if_dfs_full_offload.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2020 The Linux Foundation. All rights reserved. * * * Permission to use, copy, modify, and/or distribute this software for @@ -391,7 +391,7 @@ free_vdevref: #endif #if (defined(WLAN_DFS_FULL_OFFLOAD) || defined(QCA_WIFI_QCA8074) || \ - defined(QCA_WIFI_QCA6018)) + defined(QCA_WIFI_QCA6018) || defined(QCA_WIFI_QCA5018)) QDF_STATUS target_process_bang_radar_cmd( struct wlan_objmgr_pdev *pdev, struct dfs_emulate_bang_radar_test_cmd *dfs_unit_test) diff --git a/target_if/spectral/target_if_spectral.c b/target_if/spectral/target_if_spectral.c index 1a776efee5..3abdbc6448 100644 --- a/target_if/spectral/target_if_spectral.c +++ b/target_if/spectral/target_if_spectral.c @@ -2297,6 +2297,7 @@ target_if_pdev_spectral_init(struct wlan_objmgr_pdev *pdev) if ((target_type == TARGET_TYPE_QCA8074) || (target_type == TARGET_TYPE_QCA8074V2) || (target_type == TARGET_TYPE_QCA6018) || + (target_type == TARGET_TYPE_QCA5018) || (target_type == TARGET_TYPE_QCN9000) || (target_type == TARGET_TYPE_QCA6290) || (target_type == TARGET_TYPE_QCA6390)) {