Lines Matching full:ab
196 static int ath11k_hal_alloc_cont_rdp(struct ath11k_base *ab) in ath11k_hal_alloc_cont_rdp() argument
198 struct ath11k_hal *hal = &ab->hal; in ath11k_hal_alloc_cont_rdp()
202 hal->rdp.vaddr = dma_alloc_coherent(ab->dev, size, &hal->rdp.paddr, in ath11k_hal_alloc_cont_rdp()
210 static void ath11k_hal_free_cont_rdp(struct ath11k_base *ab) in ath11k_hal_free_cont_rdp() argument
212 struct ath11k_hal *hal = &ab->hal; in ath11k_hal_free_cont_rdp()
219 dma_free_coherent(ab->dev, size, in ath11k_hal_free_cont_rdp()
224 static int ath11k_hal_alloc_cont_wrp(struct ath11k_base *ab) in ath11k_hal_alloc_cont_wrp() argument
226 struct ath11k_hal *hal = &ab->hal; in ath11k_hal_alloc_cont_wrp()
230 hal->wrp.vaddr = dma_alloc_coherent(ab->dev, size, &hal->wrp.paddr, in ath11k_hal_alloc_cont_wrp()
238 static void ath11k_hal_free_cont_wrp(struct ath11k_base *ab) in ath11k_hal_free_cont_wrp() argument
240 struct ath11k_hal *hal = &ab->hal; in ath11k_hal_free_cont_wrp()
247 dma_free_coherent(ab->dev, size, in ath11k_hal_free_cont_wrp()
252 static void ath11k_hal_ce_dst_setup(struct ath11k_base *ab, in ath11k_hal_ce_dst_setup() argument
255 struct hal_srng_config *srng_config = &ab->hal.srng_config[HAL_CE_DST]; in ath11k_hal_ce_dst_setup()
263 val = ath11k_hif_read32(ab, addr); in ath11k_hal_ce_dst_setup()
267 ath11k_hif_write32(ab, addr, val); in ath11k_hal_ce_dst_setup()
270 static void ath11k_hal_srng_dst_hw_init(struct ath11k_base *ab, in ath11k_hal_srng_dst_hw_init() argument
273 struct ath11k_hal *hal = &ab->hal; in ath11k_hal_srng_dst_hw_init()
281 ath11k_hif_write32(ab, reg_base + in ath11k_hal_srng_dst_hw_init()
282 HAL_REO1_RING_MSI1_BASE_LSB_OFFSET(ab), in ath11k_hal_srng_dst_hw_init()
289 ath11k_hif_write32(ab, reg_base + in ath11k_hal_srng_dst_hw_init()
290 HAL_REO1_RING_MSI1_BASE_MSB_OFFSET(ab), val); in ath11k_hal_srng_dst_hw_init()
292 ath11k_hif_write32(ab, in ath11k_hal_srng_dst_hw_init()
293 reg_base + HAL_REO1_RING_MSI1_DATA_OFFSET(ab), in ath11k_hal_srng_dst_hw_init()
297 ath11k_hif_write32(ab, reg_base, srng->ring_base_paddr); in ath11k_hal_srng_dst_hw_init()
304 ath11k_hif_write32(ab, reg_base + HAL_REO1_RING_BASE_MSB_OFFSET(ab), val); in ath11k_hal_srng_dst_hw_init()
308 ath11k_hif_write32(ab, reg_base + HAL_REO1_RING_ID_OFFSET(ab), val); in ath11k_hal_srng_dst_hw_init()
318 ath11k_hif_write32(ab, in ath11k_hal_srng_dst_hw_init()
319 reg_base + HAL_REO1_RING_PRODUCER_INT_SETUP_OFFSET(ab), in ath11k_hal_srng_dst_hw_init()
325 ath11k_hif_write32(ab, reg_base + HAL_REO1_RING_HP_ADDR_LSB_OFFSET(ab), in ath11k_hal_srng_dst_hw_init()
327 ath11k_hif_write32(ab, reg_base + HAL_REO1_RING_HP_ADDR_MSB_OFFSET(ab), in ath11k_hal_srng_dst_hw_init()
332 ath11k_hif_write32(ab, reg_base, 0); in ath11k_hal_srng_dst_hw_init()
333 ath11k_hif_write32(ab, reg_base + HAL_REO1_RING_TP_OFFSET(ab), 0); in ath11k_hal_srng_dst_hw_init()
346 ath11k_hif_write32(ab, reg_base + HAL_REO1_RING_MISC_OFFSET(ab), val); in ath11k_hal_srng_dst_hw_init()
349 static void ath11k_hal_srng_src_hw_init(struct ath11k_base *ab, in ath11k_hal_srng_src_hw_init() argument
352 struct ath11k_hal *hal = &ab->hal; in ath11k_hal_srng_src_hw_init()
360 ath11k_hif_write32(ab, reg_base + in ath11k_hal_srng_src_hw_init()
361 HAL_TCL1_RING_MSI1_BASE_LSB_OFFSET(ab), in ath11k_hal_srng_src_hw_init()
368 ath11k_hif_write32(ab, reg_base + in ath11k_hal_srng_src_hw_init()
369 HAL_TCL1_RING_MSI1_BASE_MSB_OFFSET(ab), in ath11k_hal_srng_src_hw_init()
372 ath11k_hif_write32(ab, reg_base + in ath11k_hal_srng_src_hw_init()
373 HAL_TCL1_RING_MSI1_DATA_OFFSET(ab), in ath11k_hal_srng_src_hw_init()
377 ath11k_hif_write32(ab, reg_base, srng->ring_base_paddr); in ath11k_hal_srng_src_hw_init()
384 ath11k_hif_write32(ab, reg_base + HAL_TCL1_RING_BASE_MSB_OFFSET(ab), val); in ath11k_hal_srng_src_hw_init()
387 ath11k_hif_write32(ab, reg_base + HAL_TCL1_RING_ID_OFFSET(ab), val); in ath11k_hal_srng_src_hw_init()
390 ath11k_hif_write32(ab, reg_base, (u32)srng->ring_base_paddr); in ath11k_hal_srng_src_hw_init()
396 ath11k_hif_write32(ab, reg_base + HAL_TCL1_RING_BASE_MSB_OFFSET(ab), val); in ath11k_hal_srng_src_hw_init()
410 ath11k_hif_write32(ab, in ath11k_hal_srng_src_hw_init()
411 reg_base + HAL_TCL1_RING_CONSR_INT_SETUP_IX0_OFFSET(ab), in ath11k_hal_srng_src_hw_init()
419 ath11k_hif_write32(ab, in ath11k_hal_srng_src_hw_init()
420 reg_base + HAL_TCL1_RING_CONSR_INT_SETUP_IX1_OFFSET(ab), in ath11k_hal_srng_src_hw_init()
427 ath11k_hif_write32(ab, in ath11k_hal_srng_src_hw_init()
428 reg_base + HAL_TCL1_RING_TP_ADDR_LSB_OFFSET(ab), in ath11k_hal_srng_src_hw_init()
430 ath11k_hif_write32(ab, in ath11k_hal_srng_src_hw_init()
431 reg_base + HAL_TCL1_RING_TP_ADDR_MSB_OFFSET(ab), in ath11k_hal_srng_src_hw_init()
437 ath11k_hif_write32(ab, reg_base, 0); in ath11k_hal_srng_src_hw_init()
438 ath11k_hif_write32(ab, reg_base + HAL_TCL1_RING_TP_OFFSET, 0); in ath11k_hal_srng_src_hw_init()
455 ath11k_hif_write32(ab, reg_base + HAL_TCL1_RING_MISC_OFFSET(ab), val); in ath11k_hal_srng_src_hw_init()
458 static void ath11k_hal_srng_hw_init(struct ath11k_base *ab, in ath11k_hal_srng_hw_init() argument
462 ath11k_hal_srng_src_hw_init(ab, srng); in ath11k_hal_srng_hw_init()
464 ath11k_hal_srng_dst_hw_init(ab, srng); in ath11k_hal_srng_hw_init()
467 static int ath11k_hal_srng_get_ring_id(struct ath11k_base *ab, in ath11k_hal_srng_get_ring_id() argument
471 struct hal_srng_config *srng_config = &ab->hal.srng_config[type]; in ath11k_hal_srng_get_ring_id()
475 ath11k_warn(ab, "invalid ring number :%d\n", ring_num); in ath11k_hal_srng_get_ring_id()
489 int ath11k_hal_srng_get_entrysize(struct ath11k_base *ab, u32 ring_type) in ath11k_hal_srng_get_entrysize() argument
496 srng_config = &ab->hal.srng_config[ring_type]; in ath11k_hal_srng_get_entrysize()
501 int ath11k_hal_srng_get_max_entries(struct ath11k_base *ab, u32 ring_type) in ath11k_hal_srng_get_max_entries() argument
508 srng_config = &ab->hal.srng_config[ring_type]; in ath11k_hal_srng_get_max_entries()
513 void ath11k_hal_srng_get_params(struct ath11k_base *ab, struct hal_srng *srng, in ath11k_hal_srng_get_params() argument
528 dma_addr_t ath11k_hal_srng_get_hp_addr(struct ath11k_base *ab, in ath11k_hal_srng_get_hp_addr() argument
535 return ab->hal.wrp.paddr + in ath11k_hal_srng_get_hp_addr()
537 (unsigned long)ab->hal.wrp.vaddr); in ath11k_hal_srng_get_hp_addr()
539 return ab->hal.rdp.paddr + in ath11k_hal_srng_get_hp_addr()
541 (unsigned long)ab->hal.rdp.vaddr); in ath11k_hal_srng_get_hp_addr()
544 dma_addr_t ath11k_hal_srng_get_tp_addr(struct ath11k_base *ab, in ath11k_hal_srng_get_tp_addr() argument
551 return ab->hal.rdp.paddr + in ath11k_hal_srng_get_tp_addr()
553 (unsigned long)ab->hal.rdp.vaddr); in ath11k_hal_srng_get_tp_addr()
555 return ab->hal.wrp.paddr + in ath11k_hal_srng_get_tp_addr()
557 (unsigned long)ab->hal.wrp.vaddr); in ath11k_hal_srng_get_tp_addr()
624 u32 *ath11k_hal_srng_dst_peek(struct ath11k_base *ab, struct hal_srng *srng) in ath11k_hal_srng_dst_peek() argument
634 static void ath11k_hal_srng_prefetch_desc(struct ath11k_base *ab, in ath11k_hal_srng_prefetch_desc() argument
640 desc = ath11k_hal_srng_dst_peek(ab, srng); in ath11k_hal_srng_prefetch_desc()
642 dma_sync_single_for_cpu(ab->dev, virt_to_phys(desc), in ath11k_hal_srng_prefetch_desc()
649 u32 *ath11k_hal_srng_dst_get_next_entry(struct ath11k_base *ab, in ath11k_hal_srng_dst_get_next_entry() argument
669 ath11k_hal_srng_prefetch_desc(ab, srng); in ath11k_hal_srng_dst_get_next_entry()
674 int ath11k_hal_srng_dst_num_free(struct ath11k_base *ab, struct hal_srng *srng, in ath11k_hal_srng_dst_num_free() argument
697 int ath11k_hal_srng_src_num_free(struct ath11k_base *ab, struct hal_srng *srng, in ath11k_hal_srng_src_num_free() argument
719 u32 *ath11k_hal_srng_src_get_next_entry(struct ath11k_base *ab, in ath11k_hal_srng_src_get_next_entry() argument
752 u32 *ath11k_hal_srng_src_reap_next(struct ath11k_base *ab, in ath11k_hal_srng_src_reap_next() argument
772 u32 *ath11k_hal_srng_src_get_next_reaped(struct ath11k_base *ab, in ath11k_hal_srng_src_get_next_reaped() argument
789 u32 *ath11k_hal_srng_src_peek(struct ath11k_base *ab, struct hal_srng *srng) in ath11k_hal_srng_src_peek() argument
800 void ath11k_hal_srng_access_begin(struct ath11k_base *ab, struct hal_srng *srng) in ath11k_hal_srng_access_begin() argument
812 ath11k_hal_srng_prefetch_desc(ab, srng); in ath11k_hal_srng_access_begin()
819 void ath11k_hal_srng_access_end(struct ath11k_base *ab, struct hal_srng *srng) in ath11k_hal_srng_access_end() argument
840 ath11k_hif_write32(ab, in ath11k_hal_srng_access_end()
842 (unsigned long)ab->mem, in ath11k_hal_srng_access_end()
846 ath11k_hif_write32(ab, in ath11k_hal_srng_access_end()
848 (unsigned long)ab->mem, in ath11k_hal_srng_access_end()
856 void ath11k_hal_setup_link_idle_list(struct ath11k_base *ab, in ath11k_hal_setup_link_idle_list() argument
889 ath11k_hif_write32(ab, in ath11k_hal_setup_link_idle_list()
893 ath11k_hif_write32(ab, in ath11k_hal_setup_link_idle_list()
897 ath11k_hif_write32(ab, in ath11k_hal_setup_link_idle_list()
902 ath11k_hif_write32(ab, in ath11k_hal_setup_link_idle_list()
913 ath11k_hif_write32(ab, in ath11k_hal_setup_link_idle_list()
918 ath11k_hif_write32(ab, in ath11k_hal_setup_link_idle_list()
927 ath11k_hif_write32(ab, in ath11k_hal_setup_link_idle_list()
933 ath11k_hif_write32(ab, in ath11k_hal_setup_link_idle_list()
938 ath11k_hif_write32(ab, in ath11k_hal_setup_link_idle_list()
946 ath11k_hif_write32(ab, in ath11k_hal_setup_link_idle_list()
952 ath11k_hif_write32(ab, in ath11k_hal_setup_link_idle_list()
954 HAL_WBM_IDLE_LINK_RING_MISC_ADDR(ab), 0x40); in ath11k_hal_setup_link_idle_list()
957 int ath11k_hal_srng_setup(struct ath11k_base *ab, enum hal_ring_type type, in ath11k_hal_srng_setup() argument
961 struct ath11k_hal *hal = &ab->hal; in ath11k_hal_srng_setup()
962 struct hal_srng_config *srng_config = &ab->hal.srng_config[type]; in ath11k_hal_srng_setup()
969 ring_id = ath11k_hal_srng_get_ring_id(ab, type, ring_num, mac_id); in ath11k_hal_srng_setup()
1020 if (!ab->hw_params.supports_shadow_regs) in ath11k_hal_srng_setup()
1022 (u32 *)((unsigned long)ab->mem + reg_base); in ath11k_hal_srng_setup()
1024 ath11k_dbg(ab, ATH11K_DBG_HAL, in ath11k_hal_srng_setup()
1029 (unsigned long)ab->mem); in ath11k_hal_srng_setup()
1053 if (!ab->hw_params.supports_shadow_regs) in ath11k_hal_srng_setup()
1055 (u32 *)((unsigned long)ab->mem + reg_base + in ath11k_hal_srng_setup()
1056 (HAL_REO1_RING_TP(ab) - HAL_REO1_RING_HP(ab))); in ath11k_hal_srng_setup()
1058 ath11k_dbg(ab, ATH11K_DBG_HAL, in ath11k_hal_srng_setup()
1061 reg_base + (HAL_REO1_RING_TP(ab) - in ath11k_hal_srng_setup()
1062 HAL_REO1_RING_HP(ab)), in ath11k_hal_srng_setup()
1064 (unsigned long)ab->mem); in ath11k_hal_srng_setup()
1071 ath11k_hal_srng_hw_init(ab, srng); in ath11k_hal_srng_setup()
1075 ath11k_hal_ce_dst_setup(ab, srng, ring_num); in ath11k_hal_srng_setup()
1081 static void ath11k_hal_srng_update_hp_tp_addr(struct ath11k_base *ab, in ath11k_hal_srng_update_hp_tp_addr() argument
1087 struct ath11k_hal *hal = &ab->hal; in ath11k_hal_srng_update_hp_tp_addr()
1091 ring_id = ath11k_hal_srng_get_ring_id(ab, ring_type, ring_num, 0); in ath11k_hal_srng_update_hp_tp_addr()
1098 srng->u.dst_ring.tp_addr = (u32 *)(HAL_SHADOW_REG(ab, shadow_cfg_idx) + in ath11k_hal_srng_update_hp_tp_addr()
1099 (unsigned long)ab->mem); in ath11k_hal_srng_update_hp_tp_addr()
1101 srng->u.src_ring.hp_addr = (u32 *)(HAL_SHADOW_REG(ab, shadow_cfg_idx) + in ath11k_hal_srng_update_hp_tp_addr()
1102 (unsigned long)ab->mem); in ath11k_hal_srng_update_hp_tp_addr()
1105 int ath11k_hal_srng_update_shadow_config(struct ath11k_base *ab, in ath11k_hal_srng_update_shadow_config() argument
1109 struct ath11k_hal *hal = &ab->hal; in ath11k_hal_srng_update_shadow_config()
1130 ath11k_hal_srng_update_hp_tp_addr(ab, shadow_cfg_idx, ring_type, in ath11k_hal_srng_update_shadow_config()
1133 ath11k_dbg(ab, ATH11K_DBG_HAL, in ath11k_hal_srng_update_shadow_config()
1136 HAL_SHADOW_REG(ab, shadow_cfg_idx), in ath11k_hal_srng_update_shadow_config()
1143 void ath11k_hal_srng_shadow_config(struct ath11k_base *ab) in ath11k_hal_srng_shadow_config() argument
1145 struct ath11k_hal *hal = &ab->hal; in ath11k_hal_srng_shadow_config()
1161 ath11k_hal_srng_update_shadow_config(ab, ring_type, ring_num); in ath11k_hal_srng_shadow_config()
1165 void ath11k_hal_srng_get_shadow_config(struct ath11k_base *ab, in ath11k_hal_srng_get_shadow_config() argument
1168 struct ath11k_hal *hal = &ab->hal; in ath11k_hal_srng_get_shadow_config()
1174 void ath11k_hal_srng_shadow_update_hp_tp(struct ath11k_base *ab, in ath11k_hal_srng_shadow_update_hp_tp() argument
1184 ath11k_hal_srng_access_end(ab, srng); in ath11k_hal_srng_shadow_update_hp_tp()
1187 static int ath11k_hal_srng_create_config(struct ath11k_base *ab) in ath11k_hal_srng_create_config() argument
1189 struct ath11k_hal *hal = &ab->hal; in ath11k_hal_srng_create_config()
1199 s->reg_start[0] = HAL_SEQ_WCSS_UMAC_REO_REG + HAL_REO1_RING_BASE_LSB(ab); in ath11k_hal_srng_create_config()
1200 s->reg_start[1] = HAL_SEQ_WCSS_UMAC_REO_REG + HAL_REO1_RING_HP(ab); in ath11k_hal_srng_create_config()
1201 s->reg_size[0] = HAL_REO2_RING_BASE_LSB(ab) - HAL_REO1_RING_BASE_LSB(ab); in ath11k_hal_srng_create_config()
1202 s->reg_size[1] = HAL_REO2_RING_HP(ab) - HAL_REO1_RING_HP(ab); in ath11k_hal_srng_create_config()
1205 s->reg_start[0] = HAL_SEQ_WCSS_UMAC_REO_REG + HAL_REO_TCL_RING_BASE_LSB(ab); in ath11k_hal_srng_create_config()
1206 s->reg_start[1] = HAL_SEQ_WCSS_UMAC_REO_REG + HAL_REO_TCL_RING_HP(ab); in ath11k_hal_srng_create_config()
1209 s->reg_start[0] = HAL_SEQ_WCSS_UMAC_REO_REG + HAL_SW2REO_RING_BASE_LSB(ab); in ath11k_hal_srng_create_config()
1210 s->reg_start[1] = HAL_SEQ_WCSS_UMAC_REO_REG + HAL_SW2REO_RING_HP(ab); in ath11k_hal_srng_create_config()
1213 s->reg_start[0] = HAL_SEQ_WCSS_UMAC_REO_REG + HAL_REO_CMD_RING_BASE_LSB(ab); in ath11k_hal_srng_create_config()
1214 s->reg_start[1] = HAL_SEQ_WCSS_UMAC_REO_REG + HAL_REO_CMD_HP(ab); in ath11k_hal_srng_create_config()
1217 s->reg_start[0] = HAL_SEQ_WCSS_UMAC_REO_REG + HAL_REO_STATUS_RING_BASE_LSB(ab); in ath11k_hal_srng_create_config()
1218 s->reg_start[1] = HAL_SEQ_WCSS_UMAC_REO_REG + HAL_REO_STATUS_HP(ab); in ath11k_hal_srng_create_config()
1221 s->reg_start[0] = HAL_SEQ_WCSS_UMAC_TCL_REG + HAL_TCL1_RING_BASE_LSB(ab); in ath11k_hal_srng_create_config()
1223 s->reg_size[0] = HAL_TCL2_RING_BASE_LSB(ab) - HAL_TCL1_RING_BASE_LSB(ab); in ath11k_hal_srng_create_config()
1227 s->reg_start[0] = HAL_SEQ_WCSS_UMAC_TCL_REG + HAL_TCL_RING_BASE_LSB(ab); in ath11k_hal_srng_create_config()
1231 s->reg_start[0] = HAL_SEQ_WCSS_UMAC_TCL_REG + HAL_TCL_STATUS_RING_BASE_LSB(ab); in ath11k_hal_srng_create_config()
1235 s->reg_start[0] = HAL_SEQ_WCSS_UMAC_CE0_SRC_REG(ab) + HAL_CE_DST_RING_BASE_LSB + in ath11k_hal_srng_create_config()
1236 ATH11K_CE_OFFSET(ab); in ath11k_hal_srng_create_config()
1237 s->reg_start[1] = HAL_SEQ_WCSS_UMAC_CE0_SRC_REG(ab) + HAL_CE_DST_RING_HP + in ath11k_hal_srng_create_config()
1238 ATH11K_CE_OFFSET(ab); in ath11k_hal_srng_create_config()
1239 s->reg_size[0] = HAL_SEQ_WCSS_UMAC_CE1_SRC_REG(ab) - in ath11k_hal_srng_create_config()
1240 HAL_SEQ_WCSS_UMAC_CE0_SRC_REG(ab); in ath11k_hal_srng_create_config()
1241 s->reg_size[1] = HAL_SEQ_WCSS_UMAC_CE1_SRC_REG(ab) - in ath11k_hal_srng_create_config()
1242 HAL_SEQ_WCSS_UMAC_CE0_SRC_REG(ab); in ath11k_hal_srng_create_config()
1245 s->reg_start[0] = HAL_SEQ_WCSS_UMAC_CE0_DST_REG(ab) + HAL_CE_DST_RING_BASE_LSB + in ath11k_hal_srng_create_config()
1246 ATH11K_CE_OFFSET(ab); in ath11k_hal_srng_create_config()
1247 s->reg_start[1] = HAL_SEQ_WCSS_UMAC_CE0_DST_REG(ab) + HAL_CE_DST_RING_HP + in ath11k_hal_srng_create_config()
1248 ATH11K_CE_OFFSET(ab); in ath11k_hal_srng_create_config()
1249 s->reg_size[0] = HAL_SEQ_WCSS_UMAC_CE1_DST_REG(ab) - in ath11k_hal_srng_create_config()
1250 HAL_SEQ_WCSS_UMAC_CE0_DST_REG(ab); in ath11k_hal_srng_create_config()
1251 s->reg_size[1] = HAL_SEQ_WCSS_UMAC_CE1_DST_REG(ab) - in ath11k_hal_srng_create_config()
1252 HAL_SEQ_WCSS_UMAC_CE0_DST_REG(ab); in ath11k_hal_srng_create_config()
1255 s->reg_start[0] = HAL_SEQ_WCSS_UMAC_CE0_DST_REG(ab) + in ath11k_hal_srng_create_config()
1256 HAL_CE_DST_STATUS_RING_BASE_LSB + ATH11K_CE_OFFSET(ab); in ath11k_hal_srng_create_config()
1257 s->reg_start[1] = HAL_SEQ_WCSS_UMAC_CE0_DST_REG(ab) + HAL_CE_DST_STATUS_RING_HP + in ath11k_hal_srng_create_config()
1258 ATH11K_CE_OFFSET(ab); in ath11k_hal_srng_create_config()
1259 s->reg_size[0] = HAL_SEQ_WCSS_UMAC_CE1_DST_REG(ab) - in ath11k_hal_srng_create_config()
1260 HAL_SEQ_WCSS_UMAC_CE0_DST_REG(ab); in ath11k_hal_srng_create_config()
1261 s->reg_size[1] = HAL_SEQ_WCSS_UMAC_CE1_DST_REG(ab) - in ath11k_hal_srng_create_config()
1262 HAL_SEQ_WCSS_UMAC_CE0_DST_REG(ab); in ath11k_hal_srng_create_config()
1265 s->reg_start[0] = HAL_SEQ_WCSS_UMAC_WBM_REG + HAL_WBM_IDLE_LINK_RING_BASE_LSB(ab); in ath11k_hal_srng_create_config()
1269 s->reg_start[0] = HAL_SEQ_WCSS_UMAC_WBM_REG + HAL_WBM_RELEASE_RING_BASE_LSB(ab); in ath11k_hal_srng_create_config()
1273 s->reg_start[0] = HAL_SEQ_WCSS_UMAC_WBM_REG + HAL_WBM0_RELEASE_RING_BASE_LSB(ab); in ath11k_hal_srng_create_config()
1275 s->reg_size[0] = HAL_WBM1_RELEASE_RING_BASE_LSB(ab) - in ath11k_hal_srng_create_config()
1276 HAL_WBM0_RELEASE_RING_BASE_LSB(ab); in ath11k_hal_srng_create_config()
1282 static void ath11k_hal_register_srng_key(struct ath11k_base *ab) in ath11k_hal_register_srng_key() argument
1285 struct ath11k_hal *hal = &ab->hal; in ath11k_hal_register_srng_key()
1293 static void ath11k_hal_unregister_srng_key(struct ath11k_base *ab) in ath11k_hal_unregister_srng_key() argument
1296 struct ath11k_hal *hal = &ab->hal; in ath11k_hal_unregister_srng_key()
1304 int ath11k_hal_srng_init(struct ath11k_base *ab) in ath11k_hal_srng_init() argument
1306 struct ath11k_hal *hal = &ab->hal; in ath11k_hal_srng_init()
1311 ret = ath11k_hal_srng_create_config(ab); in ath11k_hal_srng_init()
1315 ret = ath11k_hal_alloc_cont_rdp(ab); in ath11k_hal_srng_init()
1319 ret = ath11k_hal_alloc_cont_wrp(ab); in ath11k_hal_srng_init()
1323 ath11k_hal_register_srng_key(ab); in ath11k_hal_srng_init()
1328 ath11k_hal_free_cont_rdp(ab); in ath11k_hal_srng_init()
1335 void ath11k_hal_srng_deinit(struct ath11k_base *ab) in ath11k_hal_srng_deinit() argument
1337 struct ath11k_hal *hal = &ab->hal; in ath11k_hal_srng_deinit()
1339 ath11k_hal_unregister_srng_key(ab); in ath11k_hal_srng_deinit()
1340 ath11k_hal_free_cont_rdp(ab); in ath11k_hal_srng_deinit()
1341 ath11k_hal_free_cont_wrp(ab); in ath11k_hal_srng_deinit()
1346 void ath11k_hal_dump_srng_stats(struct ath11k_base *ab) in ath11k_hal_dump_srng_stats() argument
1353 ath11k_err(ab, "Last interrupt received for each CE:\n"); in ath11k_hal_dump_srng_stats()
1354 for (i = 0; i < ab->hw_params.ce_count; i++) { in ath11k_hal_dump_srng_stats()
1355 ce_pipe = &ab->ce.ce_pipe[i]; in ath11k_hal_dump_srng_stats()
1357 if (ath11k_ce_get_attr_flags(ab, i) & CE_ATTR_DIS_INTR) in ath11k_hal_dump_srng_stats()
1361 ath11k_err(ab, "CE_id %d pipe_num %d %ums before\n", in ath11k_hal_dump_srng_stats()
1365 ath11k_err(ab, "CE_id %d pipe_num %d %jums before\n", in ath11k_hal_dump_srng_stats()
1371 ath11k_err(ab, "\nLast interrupt received for each group:\n"); in ath11k_hal_dump_srng_stats()
1373 irq_grp = &ab->ext_irq_grp[i]; in ath11k_hal_dump_srng_stats()
1375 ath11k_err(ab, "group_id %d %ums before\n", in ath11k_hal_dump_srng_stats()
1379 ath11k_err(ab, "group_id %d %jums before\n", in ath11k_hal_dump_srng_stats()
1386 srng = &ab->hal.srng_list[i]; in ath11k_hal_dump_srng_stats()
1392 ath11k_err(ab, in ath11k_hal_dump_srng_stats()
1408 ath11k_err(ab, in ath11k_hal_dump_srng_stats()