Lines Matching full:ab
193 static int ath11k_hal_alloc_cont_rdp(struct ath11k_base *ab) in ath11k_hal_alloc_cont_rdp() argument
195 struct ath11k_hal *hal = &ab->hal; in ath11k_hal_alloc_cont_rdp()
199 hal->rdp.vaddr = dma_alloc_coherent(ab->dev, size, &hal->rdp.paddr, in ath11k_hal_alloc_cont_rdp()
207 static void ath11k_hal_free_cont_rdp(struct ath11k_base *ab) in ath11k_hal_free_cont_rdp() argument
209 struct ath11k_hal *hal = &ab->hal; in ath11k_hal_free_cont_rdp()
216 dma_free_coherent(ab->dev, size, in ath11k_hal_free_cont_rdp()
221 static int ath11k_hal_alloc_cont_wrp(struct ath11k_base *ab) in ath11k_hal_alloc_cont_wrp() argument
223 struct ath11k_hal *hal = &ab->hal; in ath11k_hal_alloc_cont_wrp()
227 hal->wrp.vaddr = dma_alloc_coherent(ab->dev, size, &hal->wrp.paddr, in ath11k_hal_alloc_cont_wrp()
235 static void ath11k_hal_free_cont_wrp(struct ath11k_base *ab) in ath11k_hal_free_cont_wrp() argument
237 struct ath11k_hal *hal = &ab->hal; in ath11k_hal_free_cont_wrp()
244 dma_free_coherent(ab->dev, size, in ath11k_hal_free_cont_wrp()
249 static void ath11k_hal_ce_dst_setup(struct ath11k_base *ab, in ath11k_hal_ce_dst_setup() argument
252 struct hal_srng_config *srng_config = &ab->hal.srng_config[HAL_CE_DST]; in ath11k_hal_ce_dst_setup()
260 val = ath11k_hif_read32(ab, addr); in ath11k_hal_ce_dst_setup()
264 ath11k_hif_write32(ab, addr, val); in ath11k_hal_ce_dst_setup()
267 static void ath11k_hal_srng_dst_hw_init(struct ath11k_base *ab, in ath11k_hal_srng_dst_hw_init() argument
270 struct ath11k_hal *hal = &ab->hal; in ath11k_hal_srng_dst_hw_init()
278 ath11k_hif_write32(ab, reg_base + in ath11k_hal_srng_dst_hw_init()
279 HAL_REO1_RING_MSI1_BASE_LSB_OFFSET(ab), in ath11k_hal_srng_dst_hw_init()
286 ath11k_hif_write32(ab, reg_base + in ath11k_hal_srng_dst_hw_init()
287 HAL_REO1_RING_MSI1_BASE_MSB_OFFSET(ab), val); in ath11k_hal_srng_dst_hw_init()
289 ath11k_hif_write32(ab, in ath11k_hal_srng_dst_hw_init()
290 reg_base + HAL_REO1_RING_MSI1_DATA_OFFSET(ab), in ath11k_hal_srng_dst_hw_init()
294 ath11k_hif_write32(ab, reg_base, srng->ring_base_paddr); in ath11k_hal_srng_dst_hw_init()
301 ath11k_hif_write32(ab, reg_base + HAL_REO1_RING_BASE_MSB_OFFSET(ab), val); in ath11k_hal_srng_dst_hw_init()
305 ath11k_hif_write32(ab, reg_base + HAL_REO1_RING_ID_OFFSET(ab), val); in ath11k_hal_srng_dst_hw_init()
315 ath11k_hif_write32(ab, in ath11k_hal_srng_dst_hw_init()
316 reg_base + HAL_REO1_RING_PRODUCER_INT_SETUP_OFFSET(ab), in ath11k_hal_srng_dst_hw_init()
322 ath11k_hif_write32(ab, reg_base + HAL_REO1_RING_HP_ADDR_LSB_OFFSET(ab), in ath11k_hal_srng_dst_hw_init()
324 ath11k_hif_write32(ab, reg_base + HAL_REO1_RING_HP_ADDR_MSB_OFFSET(ab), in ath11k_hal_srng_dst_hw_init()
329 ath11k_hif_write32(ab, reg_base, 0); in ath11k_hal_srng_dst_hw_init()
330 ath11k_hif_write32(ab, reg_base + HAL_REO1_RING_TP_OFFSET(ab), 0); in ath11k_hal_srng_dst_hw_init()
343 ath11k_hif_write32(ab, reg_base + HAL_REO1_RING_MISC_OFFSET(ab), val); in ath11k_hal_srng_dst_hw_init()
346 static void ath11k_hal_srng_src_hw_init(struct ath11k_base *ab, in ath11k_hal_srng_src_hw_init() argument
349 struct ath11k_hal *hal = &ab->hal; in ath11k_hal_srng_src_hw_init()
357 ath11k_hif_write32(ab, reg_base + in ath11k_hal_srng_src_hw_init()
358 HAL_TCL1_RING_MSI1_BASE_LSB_OFFSET(ab), in ath11k_hal_srng_src_hw_init()
365 ath11k_hif_write32(ab, reg_base + in ath11k_hal_srng_src_hw_init()
366 HAL_TCL1_RING_MSI1_BASE_MSB_OFFSET(ab), in ath11k_hal_srng_src_hw_init()
369 ath11k_hif_write32(ab, reg_base + in ath11k_hal_srng_src_hw_init()
370 HAL_TCL1_RING_MSI1_DATA_OFFSET(ab), in ath11k_hal_srng_src_hw_init()
374 ath11k_hif_write32(ab, reg_base, srng->ring_base_paddr); in ath11k_hal_srng_src_hw_init()
381 ath11k_hif_write32(ab, reg_base + HAL_TCL1_RING_BASE_MSB_OFFSET(ab), val); in ath11k_hal_srng_src_hw_init()
384 ath11k_hif_write32(ab, reg_base + HAL_TCL1_RING_ID_OFFSET(ab), val); in ath11k_hal_srng_src_hw_init()
387 ath11k_hif_write32(ab, reg_base, (u32)srng->ring_base_paddr); in ath11k_hal_srng_src_hw_init()
393 ath11k_hif_write32(ab, reg_base + HAL_TCL1_RING_BASE_MSB_OFFSET(ab), val); in ath11k_hal_srng_src_hw_init()
407 ath11k_hif_write32(ab, in ath11k_hal_srng_src_hw_init()
408 reg_base + HAL_TCL1_RING_CONSR_INT_SETUP_IX0_OFFSET(ab), in ath11k_hal_srng_src_hw_init()
416 ath11k_hif_write32(ab, in ath11k_hal_srng_src_hw_init()
417 reg_base + HAL_TCL1_RING_CONSR_INT_SETUP_IX1_OFFSET(ab), in ath11k_hal_srng_src_hw_init()
424 ath11k_hif_write32(ab, in ath11k_hal_srng_src_hw_init()
425 reg_base + HAL_TCL1_RING_TP_ADDR_LSB_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_MSB_OFFSET(ab), in ath11k_hal_srng_src_hw_init()
434 ath11k_hif_write32(ab, reg_base, 0); in ath11k_hal_srng_src_hw_init()
435 ath11k_hif_write32(ab, reg_base + HAL_TCL1_RING_TP_OFFSET, 0); in ath11k_hal_srng_src_hw_init()
452 ath11k_hif_write32(ab, reg_base + HAL_TCL1_RING_MISC_OFFSET(ab), val); in ath11k_hal_srng_src_hw_init()
455 static void ath11k_hal_srng_hw_init(struct ath11k_base *ab, in ath11k_hal_srng_hw_init() argument
459 ath11k_hal_srng_src_hw_init(ab, srng); in ath11k_hal_srng_hw_init()
461 ath11k_hal_srng_dst_hw_init(ab, srng); in ath11k_hal_srng_hw_init()
464 static int ath11k_hal_srng_get_ring_id(struct ath11k_base *ab, in ath11k_hal_srng_get_ring_id() argument
468 struct hal_srng_config *srng_config = &ab->hal.srng_config[type]; in ath11k_hal_srng_get_ring_id()
472 ath11k_warn(ab, "invalid ring number :%d\n", ring_num); in ath11k_hal_srng_get_ring_id()
486 int ath11k_hal_srng_get_entrysize(struct ath11k_base *ab, u32 ring_type) in ath11k_hal_srng_get_entrysize() argument
493 srng_config = &ab->hal.srng_config[ring_type]; in ath11k_hal_srng_get_entrysize()
498 int ath11k_hal_srng_get_max_entries(struct ath11k_base *ab, u32 ring_type) in ath11k_hal_srng_get_max_entries() argument
505 srng_config = &ab->hal.srng_config[ring_type]; in ath11k_hal_srng_get_max_entries()
510 void ath11k_hal_srng_get_params(struct ath11k_base *ab, struct hal_srng *srng, in ath11k_hal_srng_get_params() argument
525 dma_addr_t ath11k_hal_srng_get_hp_addr(struct ath11k_base *ab, in ath11k_hal_srng_get_hp_addr() argument
532 return ab->hal.wrp.paddr + in ath11k_hal_srng_get_hp_addr()
534 (unsigned long)ab->hal.wrp.vaddr); in ath11k_hal_srng_get_hp_addr()
536 return ab->hal.rdp.paddr + in ath11k_hal_srng_get_hp_addr()
538 (unsigned long)ab->hal.rdp.vaddr); in ath11k_hal_srng_get_hp_addr()
541 dma_addr_t ath11k_hal_srng_get_tp_addr(struct ath11k_base *ab, in ath11k_hal_srng_get_tp_addr() argument
548 return ab->hal.rdp.paddr + in ath11k_hal_srng_get_tp_addr()
550 (unsigned long)ab->hal.rdp.vaddr); in ath11k_hal_srng_get_tp_addr()
552 return ab->hal.wrp.paddr + in ath11k_hal_srng_get_tp_addr()
554 (unsigned long)ab->hal.wrp.vaddr); in ath11k_hal_srng_get_tp_addr()
621 u32 *ath11k_hal_srng_dst_peek(struct ath11k_base *ab, struct hal_srng *srng) in ath11k_hal_srng_dst_peek() argument
631 static void ath11k_hal_srng_prefetch_desc(struct ath11k_base *ab, in ath11k_hal_srng_prefetch_desc() argument
637 desc = ath11k_hal_srng_dst_peek(ab, srng); in ath11k_hal_srng_prefetch_desc()
639 dma_sync_single_for_cpu(ab->dev, virt_to_phys(desc), in ath11k_hal_srng_prefetch_desc()
646 u32 *ath11k_hal_srng_dst_get_next_entry(struct ath11k_base *ab, in ath11k_hal_srng_dst_get_next_entry() argument
666 ath11k_hal_srng_prefetch_desc(ab, srng); in ath11k_hal_srng_dst_get_next_entry()
671 int ath11k_hal_srng_dst_num_free(struct ath11k_base *ab, struct hal_srng *srng, in ath11k_hal_srng_dst_num_free() argument
694 int ath11k_hal_srng_src_num_free(struct ath11k_base *ab, struct hal_srng *srng, in ath11k_hal_srng_src_num_free() argument
716 u32 *ath11k_hal_srng_src_get_next_entry(struct ath11k_base *ab, in ath11k_hal_srng_src_get_next_entry() argument
749 u32 *ath11k_hal_srng_src_reap_next(struct ath11k_base *ab, in ath11k_hal_srng_src_reap_next() argument
769 u32 *ath11k_hal_srng_src_get_next_reaped(struct ath11k_base *ab, in ath11k_hal_srng_src_get_next_reaped() argument
786 u32 *ath11k_hal_srng_src_peek(struct ath11k_base *ab, struct hal_srng *srng) in ath11k_hal_srng_src_peek() argument
797 void ath11k_hal_srng_access_begin(struct ath11k_base *ab, struct hal_srng *srng) in ath11k_hal_srng_access_begin() argument
809 ath11k_hal_srng_prefetch_desc(ab, srng); in ath11k_hal_srng_access_begin()
816 void ath11k_hal_srng_access_end(struct ath11k_base *ab, struct hal_srng *srng) in ath11k_hal_srng_access_end() argument
837 ath11k_hif_write32(ab, in ath11k_hal_srng_access_end()
839 (unsigned long)ab->mem, in ath11k_hal_srng_access_end()
843 ath11k_hif_write32(ab, in ath11k_hal_srng_access_end()
845 (unsigned long)ab->mem, in ath11k_hal_srng_access_end()
853 void ath11k_hal_setup_link_idle_list(struct ath11k_base *ab, in ath11k_hal_setup_link_idle_list() argument
877 ath11k_hif_write32(ab, in ath11k_hal_setup_link_idle_list()
881 ath11k_hif_write32(ab, in ath11k_hal_setup_link_idle_list()
885 ath11k_hif_write32(ab, in ath11k_hal_setup_link_idle_list()
890 ath11k_hif_write32(ab, in ath11k_hal_setup_link_idle_list()
901 ath11k_hif_write32(ab, in ath11k_hal_setup_link_idle_list()
906 ath11k_hif_write32(ab, in ath11k_hal_setup_link_idle_list()
915 ath11k_hif_write32(ab, in ath11k_hal_setup_link_idle_list()
921 ath11k_hif_write32(ab, in ath11k_hal_setup_link_idle_list()
926 ath11k_hif_write32(ab, in ath11k_hal_setup_link_idle_list()
934 ath11k_hif_write32(ab, in ath11k_hal_setup_link_idle_list()
940 ath11k_hif_write32(ab, in ath11k_hal_setup_link_idle_list()
942 HAL_WBM_IDLE_LINK_RING_MISC_ADDR(ab), 0x40); in ath11k_hal_setup_link_idle_list()
945 int ath11k_hal_srng_setup(struct ath11k_base *ab, enum hal_ring_type type, in ath11k_hal_srng_setup() argument
949 struct ath11k_hal *hal = &ab->hal; in ath11k_hal_srng_setup()
950 struct hal_srng_config *srng_config = &ab->hal.srng_config[type]; in ath11k_hal_srng_setup()
957 ring_id = ath11k_hal_srng_get_ring_id(ab, type, ring_num, mac_id); in ath11k_hal_srng_setup()
1008 if (!ab->hw_params.supports_shadow_regs) in ath11k_hal_srng_setup()
1010 (u32 *)((unsigned long)ab->mem + reg_base); in ath11k_hal_srng_setup()
1012 ath11k_dbg(ab, ATH11k_DBG_HAL, in ath11k_hal_srng_setup()
1017 (unsigned long)ab->mem); in ath11k_hal_srng_setup()
1041 if (!ab->hw_params.supports_shadow_regs) in ath11k_hal_srng_setup()
1043 (u32 *)((unsigned long)ab->mem + reg_base + in ath11k_hal_srng_setup()
1044 (HAL_REO1_RING_TP(ab) - HAL_REO1_RING_HP(ab))); in ath11k_hal_srng_setup()
1046 ath11k_dbg(ab, ATH11k_DBG_HAL, in ath11k_hal_srng_setup()
1049 reg_base + (HAL_REO1_RING_TP(ab) - in ath11k_hal_srng_setup()
1050 HAL_REO1_RING_HP(ab)), in ath11k_hal_srng_setup()
1052 (unsigned long)ab->mem); in ath11k_hal_srng_setup()
1059 ath11k_hal_srng_hw_init(ab, srng); in ath11k_hal_srng_setup()
1063 ath11k_hal_ce_dst_setup(ab, srng, ring_num); in ath11k_hal_srng_setup()
1069 static void ath11k_hal_srng_update_hp_tp_addr(struct ath11k_base *ab, in ath11k_hal_srng_update_hp_tp_addr() argument
1075 struct ath11k_hal *hal = &ab->hal; in ath11k_hal_srng_update_hp_tp_addr()
1079 ring_id = ath11k_hal_srng_get_ring_id(ab, ring_type, ring_num, 0); in ath11k_hal_srng_update_hp_tp_addr()
1086 srng->u.dst_ring.tp_addr = (u32 *)(HAL_SHADOW_REG(ab, shadow_cfg_idx) + in ath11k_hal_srng_update_hp_tp_addr()
1087 (unsigned long)ab->mem); in ath11k_hal_srng_update_hp_tp_addr()
1089 srng->u.src_ring.hp_addr = (u32 *)(HAL_SHADOW_REG(ab, shadow_cfg_idx) + in ath11k_hal_srng_update_hp_tp_addr()
1090 (unsigned long)ab->mem); in ath11k_hal_srng_update_hp_tp_addr()
1093 int ath11k_hal_srng_update_shadow_config(struct ath11k_base *ab, in ath11k_hal_srng_update_shadow_config() argument
1097 struct ath11k_hal *hal = &ab->hal; in ath11k_hal_srng_update_shadow_config()
1118 ath11k_hal_srng_update_hp_tp_addr(ab, shadow_cfg_idx, ring_type, in ath11k_hal_srng_update_shadow_config()
1121 ath11k_dbg(ab, ATH11k_DBG_HAL, in ath11k_hal_srng_update_shadow_config()
1124 HAL_SHADOW_REG(ab, shadow_cfg_idx), in ath11k_hal_srng_update_shadow_config()
1131 void ath11k_hal_srng_shadow_config(struct ath11k_base *ab) in ath11k_hal_srng_shadow_config() argument
1133 struct ath11k_hal *hal = &ab->hal; in ath11k_hal_srng_shadow_config()
1149 ath11k_hal_srng_update_shadow_config(ab, ring_type, ring_num); in ath11k_hal_srng_shadow_config()
1153 void ath11k_hal_srng_get_shadow_config(struct ath11k_base *ab, in ath11k_hal_srng_get_shadow_config() argument
1156 struct ath11k_hal *hal = &ab->hal; in ath11k_hal_srng_get_shadow_config()
1162 void ath11k_hal_srng_shadow_update_hp_tp(struct ath11k_base *ab, in ath11k_hal_srng_shadow_update_hp_tp() argument
1172 ath11k_hal_srng_access_end(ab, srng); in ath11k_hal_srng_shadow_update_hp_tp()
1175 static int ath11k_hal_srng_create_config(struct ath11k_base *ab) in ath11k_hal_srng_create_config() argument
1177 struct ath11k_hal *hal = &ab->hal; in ath11k_hal_srng_create_config()
1187 s->reg_start[0] = HAL_SEQ_WCSS_UMAC_REO_REG + HAL_REO1_RING_BASE_LSB(ab); in ath11k_hal_srng_create_config()
1188 s->reg_start[1] = HAL_SEQ_WCSS_UMAC_REO_REG + HAL_REO1_RING_HP(ab); in ath11k_hal_srng_create_config()
1189 s->reg_size[0] = HAL_REO2_RING_BASE_LSB(ab) - HAL_REO1_RING_BASE_LSB(ab); in ath11k_hal_srng_create_config()
1190 s->reg_size[1] = HAL_REO2_RING_HP(ab) - HAL_REO1_RING_HP(ab); in ath11k_hal_srng_create_config()
1193 s->reg_start[0] = HAL_SEQ_WCSS_UMAC_REO_REG + HAL_REO_TCL_RING_BASE_LSB(ab); in ath11k_hal_srng_create_config()
1194 s->reg_start[1] = HAL_SEQ_WCSS_UMAC_REO_REG + HAL_REO_TCL_RING_HP(ab); in ath11k_hal_srng_create_config()
1197 s->reg_start[0] = HAL_SEQ_WCSS_UMAC_REO_REG + HAL_SW2REO_RING_BASE_LSB(ab); in ath11k_hal_srng_create_config()
1198 s->reg_start[1] = HAL_SEQ_WCSS_UMAC_REO_REG + HAL_SW2REO_RING_HP(ab); in ath11k_hal_srng_create_config()
1201 s->reg_start[0] = HAL_SEQ_WCSS_UMAC_REO_REG + HAL_REO_CMD_RING_BASE_LSB(ab); in ath11k_hal_srng_create_config()
1202 s->reg_start[1] = HAL_SEQ_WCSS_UMAC_REO_REG + HAL_REO_CMD_HP(ab); in ath11k_hal_srng_create_config()
1205 s->reg_start[0] = HAL_SEQ_WCSS_UMAC_REO_REG + HAL_REO_STATUS_RING_BASE_LSB(ab); in ath11k_hal_srng_create_config()
1206 s->reg_start[1] = HAL_SEQ_WCSS_UMAC_REO_REG + HAL_REO_STATUS_HP(ab); in ath11k_hal_srng_create_config()
1209 s->reg_start[0] = HAL_SEQ_WCSS_UMAC_TCL_REG + HAL_TCL1_RING_BASE_LSB(ab); in ath11k_hal_srng_create_config()
1211 s->reg_size[0] = HAL_TCL2_RING_BASE_LSB(ab) - HAL_TCL1_RING_BASE_LSB(ab); in ath11k_hal_srng_create_config()
1215 s->reg_start[0] = HAL_SEQ_WCSS_UMAC_TCL_REG + HAL_TCL_RING_BASE_LSB(ab); in ath11k_hal_srng_create_config()
1219 s->reg_start[0] = HAL_SEQ_WCSS_UMAC_TCL_REG + HAL_TCL_STATUS_RING_BASE_LSB(ab); in ath11k_hal_srng_create_config()
1223 s->reg_start[0] = HAL_SEQ_WCSS_UMAC_CE0_SRC_REG(ab) + HAL_CE_DST_RING_BASE_LSB; in ath11k_hal_srng_create_config()
1224 s->reg_start[1] = HAL_SEQ_WCSS_UMAC_CE0_SRC_REG(ab) + HAL_CE_DST_RING_HP; in ath11k_hal_srng_create_config()
1225 s->reg_size[0] = HAL_SEQ_WCSS_UMAC_CE1_SRC_REG(ab) - in ath11k_hal_srng_create_config()
1226 HAL_SEQ_WCSS_UMAC_CE0_SRC_REG(ab); in ath11k_hal_srng_create_config()
1227 s->reg_size[1] = HAL_SEQ_WCSS_UMAC_CE1_SRC_REG(ab) - in ath11k_hal_srng_create_config()
1228 HAL_SEQ_WCSS_UMAC_CE0_SRC_REG(ab); in ath11k_hal_srng_create_config()
1231 s->reg_start[0] = HAL_SEQ_WCSS_UMAC_CE0_DST_REG(ab) + HAL_CE_DST_RING_BASE_LSB; in ath11k_hal_srng_create_config()
1232 s->reg_start[1] = HAL_SEQ_WCSS_UMAC_CE0_DST_REG(ab) + HAL_CE_DST_RING_HP; in ath11k_hal_srng_create_config()
1233 s->reg_size[0] = HAL_SEQ_WCSS_UMAC_CE1_DST_REG(ab) - in ath11k_hal_srng_create_config()
1234 HAL_SEQ_WCSS_UMAC_CE0_DST_REG(ab); in ath11k_hal_srng_create_config()
1235 s->reg_size[1] = HAL_SEQ_WCSS_UMAC_CE1_DST_REG(ab) - in ath11k_hal_srng_create_config()
1236 HAL_SEQ_WCSS_UMAC_CE0_DST_REG(ab); in ath11k_hal_srng_create_config()
1239 s->reg_start[0] = HAL_SEQ_WCSS_UMAC_CE0_DST_REG(ab) + in ath11k_hal_srng_create_config()
1241 s->reg_start[1] = HAL_SEQ_WCSS_UMAC_CE0_DST_REG(ab) + HAL_CE_DST_STATUS_RING_HP; in ath11k_hal_srng_create_config()
1242 s->reg_size[0] = HAL_SEQ_WCSS_UMAC_CE1_DST_REG(ab) - in ath11k_hal_srng_create_config()
1243 HAL_SEQ_WCSS_UMAC_CE0_DST_REG(ab); in ath11k_hal_srng_create_config()
1244 s->reg_size[1] = HAL_SEQ_WCSS_UMAC_CE1_DST_REG(ab) - in ath11k_hal_srng_create_config()
1245 HAL_SEQ_WCSS_UMAC_CE0_DST_REG(ab); in ath11k_hal_srng_create_config()
1248 s->reg_start[0] = HAL_SEQ_WCSS_UMAC_WBM_REG + HAL_WBM_IDLE_LINK_RING_BASE_LSB(ab); in ath11k_hal_srng_create_config()
1252 s->reg_start[0] = HAL_SEQ_WCSS_UMAC_WBM_REG + HAL_WBM_RELEASE_RING_BASE_LSB(ab); in ath11k_hal_srng_create_config()
1256 s->reg_start[0] = HAL_SEQ_WCSS_UMAC_WBM_REG + HAL_WBM0_RELEASE_RING_BASE_LSB(ab); in ath11k_hal_srng_create_config()
1258 s->reg_size[0] = HAL_WBM1_RELEASE_RING_BASE_LSB(ab) - in ath11k_hal_srng_create_config()
1259 HAL_WBM0_RELEASE_RING_BASE_LSB(ab); in ath11k_hal_srng_create_config()
1265 static void ath11k_hal_register_srng_key(struct ath11k_base *ab) in ath11k_hal_register_srng_key() argument
1267 struct ath11k_hal *hal = &ab->hal; in ath11k_hal_register_srng_key()
1274 static void ath11k_hal_unregister_srng_key(struct ath11k_base *ab) in ath11k_hal_unregister_srng_key() argument
1276 struct ath11k_hal *hal = &ab->hal; in ath11k_hal_unregister_srng_key()
1283 int ath11k_hal_srng_init(struct ath11k_base *ab) in ath11k_hal_srng_init() argument
1285 struct ath11k_hal *hal = &ab->hal; in ath11k_hal_srng_init()
1290 ret = ath11k_hal_srng_create_config(ab); in ath11k_hal_srng_init()
1294 ret = ath11k_hal_alloc_cont_rdp(ab); in ath11k_hal_srng_init()
1298 ret = ath11k_hal_alloc_cont_wrp(ab); in ath11k_hal_srng_init()
1302 ath11k_hal_register_srng_key(ab); in ath11k_hal_srng_init()
1307 ath11k_hal_free_cont_rdp(ab); in ath11k_hal_srng_init()
1314 void ath11k_hal_srng_deinit(struct ath11k_base *ab) in ath11k_hal_srng_deinit() argument
1316 struct ath11k_hal *hal = &ab->hal; in ath11k_hal_srng_deinit()
1318 ath11k_hal_unregister_srng_key(ab); in ath11k_hal_srng_deinit()
1319 ath11k_hal_free_cont_rdp(ab); in ath11k_hal_srng_deinit()
1320 ath11k_hal_free_cont_wrp(ab); in ath11k_hal_srng_deinit()
1325 void ath11k_hal_dump_srng_stats(struct ath11k_base *ab) in ath11k_hal_dump_srng_stats() argument
1332 ath11k_err(ab, "Last interrupt received for each CE:\n"); in ath11k_hal_dump_srng_stats()
1333 for (i = 0; i < ab->hw_params.ce_count; i++) { in ath11k_hal_dump_srng_stats()
1334 ce_pipe = &ab->ce.ce_pipe[i]; in ath11k_hal_dump_srng_stats()
1336 if (ath11k_ce_get_attr_flags(ab, i) & CE_ATTR_DIS_INTR) in ath11k_hal_dump_srng_stats()
1339 ath11k_err(ab, "CE_id %d pipe_num %d %ums before\n", in ath11k_hal_dump_srng_stats()
1344 ath11k_err(ab, "\nLast interrupt received for each group:\n"); in ath11k_hal_dump_srng_stats()
1346 irq_grp = &ab->ext_irq_grp[i]; in ath11k_hal_dump_srng_stats()
1347 ath11k_err(ab, "group_id %d %ums before\n", in ath11k_hal_dump_srng_stats()
1353 srng = &ab->hal.srng_list[i]; in ath11k_hal_dump_srng_stats()
1359 ath11k_err(ab, in ath11k_hal_dump_srng_stats()
1367 ath11k_err(ab, in ath11k_hal_dump_srng_stats()