Karthikeyan Kathirvel <quic_kathirve@xxxxxxxxxxx> writes: > From: Sriram R <quic_srirrama@xxxxxxxxxxx> > > Add new compatible string for IPQ5018 and add > required hw params for IPQ5018. The hw descriptors size and > datapath ops are similar to QCN9074, hence reuse the same. > > Tested-on : IPQ5018 hw1.0 AHB WLAN.HK.2.6.0.1-00861-QCAHKSWPL_SILICONZ-1 > > Signed-off-by: Sriram R <quic_srirrama@xxxxxxxxxxx> > Co-developed-by: Karthikeyan Kathirvel <quic_kathirve@xxxxxxxxxxx> > Signed-off-by: Karthikeyan Kathirvel <quic_kathirve@xxxxxxxxxxx> > --- > drivers/net/wireless/ath/ath11k/core.c | 70 ++++++++++++++++++++++++++ > drivers/net/wireless/ath/ath11k/core.h | 8 +++ > 2 files changed, 78 insertions(+) > > diff --git a/drivers/net/wireless/ath/ath11k/core.c b/drivers/net/wireless/ath/ath11k/core.c > index edf78df9b12f..d2af175a3d93 100644 > --- a/drivers/net/wireless/ath/ath11k/core.c > +++ b/drivers/net/wireless/ath/ath11k/core.c > @@ -604,6 +604,76 @@ static const struct ath11k_hw_params ath11k_hw_params[] = { > .smp2p_wow_exit = true, > .support_fw_mac_sequence = true, > }, > + { > + .hw_rev = ATH11K_HW_IPQ5018_HW10, > + .name = "ipq5018 hw1.0", > + .fw = { > + .dir = "IPQ5018/hw1.0", > + .board_size = 256 * 1024, > + .cal_offset = 128 * 1024, > + }, > + .max_radios = MAX_RADIOS_5018, > + .bdf_addr = 0x4BA00000, > + /* hal_desc_sz and hw ops are similar to qcn9074 */ > + .hal_desc_sz = sizeof(struct hal_rx_desc_qcn9074), > + .qmi_service_ins_id = ATH11K_QMI_WLFW_SERVICE_INS_ID_V01_IPQ8074, > + .ring_mask = &ath11k_hw_ring_mask_ipq8074, > + .credit_flow = false, > + .max_tx_ring = 1, > + .spectral = { > + .fft_sz = 2, > + .fft_pad_sz = 0, > + .summary_pad_sz = 16, > + .fft_hdr_len = 24, > + .max_fft_bins = 1024, > + }, > + .internal_sleep_clock = false, > + .host_ce_config = ath11k_host_ce_config_qcn9074, > + .ce_count = CE_CNT_5018, > + .rxdma1_enable = true, > + .num_rxmda_per_pdev = RXDMA_PER_PDEV_5018, > + .rx_mac_buf_ring = false, > + .vdev_start_delay = false, > + .htt_peer_map_v2 = true, > + .interface_modes = BIT(NL80211_IFTYPE_STATION) | > + BIT(NL80211_IFTYPE_AP) | > + BIT(NL80211_IFTYPE_MESH_POINT), > + .supports_monitor = false, > + .supports_sta_ps = false, > + .supports_shadow_regs = false, > + .fw_mem_mode = 0, > + .num_vdevs = 16 + 1, > + .num_peers = 512, > + .supports_regdb = false, > + .idle_ps = false, > + .supports_suspend = false, > + .hal_params = &ath11k_hw_hal_params_ipq8074, > + .single_pdev_only = false, > + .cold_boot_calib = true, > + .fix_l1ss = true, > + .supports_dynamic_smps_6ghz = false, > + .alloc_cacheable_memory = true, > + .supports_rssi_stats = false, > + .fw_wmi_diag_event = false, > + .current_cc_support = false, > + .dbr_debug_support = true, > + .global_reset = false, > + .bios_sar_capa = NULL, > + .m3_fw_support = false, > + .fixed_bdf_addr = true, > + .fixed_mem_region = true, > + .static_window_map = false, > + .hybrid_bus_type = false, > + .fixed_fw_mem = false, > + .support_off_channel_tx = false, > + .supports_multi_bssid = false, > + > + .sram_dump = {}, > + > + .tcl_ring_retry = true, > + .tx_ring_size = DP_TCL_DATA_RING_SIZE, > + .smp2p_wow_exit = false, > + }, support_fw_mac_sequence was missing so in the pending branch I added that: --- a/drivers/net/wireless/ath/ath11k/core.c +++ b/drivers/net/wireless/ath/ath11k/core.c @@ -673,6 +673,7 @@ static const struct ath11k_hw_params ath11k_hw_params[] = { .tcl_ring_retry = true, .tx_ring_size = DP_TCL_DATA_RING_SIZE, .smp2p_wow_exit = false, + .support_fw_mac_sequence = false, }, }; -- https://patchwork.kernel.org/project/linux-wireless/list/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches