Lines Matching refs:fwrt
108 struct iwl_fw_runtime *fwrt; member
513 static int iwl_dbg_tlv_alloc_fragment(struct iwl_fw_runtime *fwrt, in iwl_dbg_tlv_alloc_fragment() argument
530 block = dma_alloc_coherent(fwrt->dev, pages * PAGE_SIZE, in iwl_dbg_tlv_alloc_fragment()
536 IWL_WARN(fwrt, "WRT: Failed to allocate fragment size %lu\n", in iwl_dbg_tlv_alloc_fragment()
552 static int iwl_dbg_tlv_alloc_fragments(struct iwl_fw_runtime *fwrt, in iwl_dbg_tlv_alloc_fragments() argument
564 fw_mon_cfg = &fwrt->trans->dbg.fw_mon_cfg[alloc_id]; in iwl_dbg_tlv_alloc_fragments()
565 fw_mon = &fwrt->trans->dbg.fw_mon_ini[alloc_id]; in iwl_dbg_tlv_alloc_fragments()
573 if (!fw_has_capa(&fwrt->fw->ucode_capa, in iwl_dbg_tlv_alloc_fragments()
593 IWL_DEBUG_FW(fwrt, in iwl_dbg_tlv_alloc_fragments()
597 pages = iwl_dbg_tlv_alloc_fragment(fwrt, &fw_mon->frags[i], in iwl_dbg_tlv_alloc_fragments()
604 iwl_dbg_tlv_fragments_free(fwrt->trans, in iwl_dbg_tlv_alloc_fragments()
618 static int iwl_dbg_tlv_apply_buffer(struct iwl_fw_runtime *fwrt, in iwl_dbg_tlv_apply_buffer() argument
625 if (!fw_has_capa(&fwrt->fw->ucode_capa, in iwl_dbg_tlv_apply_buffer()
633 if (le32_to_cpu(fwrt->trans->dbg.fw_mon_cfg[alloc_id].buf_location) != in iwl_dbg_tlv_apply_buffer()
637 fw_mon = &fwrt->trans->dbg.fw_mon_ini[alloc_id]; in iwl_dbg_tlv_apply_buffer()
651 IWL_DEBUG_FW(fwrt, "WRT: Applying DRAM destination (alloc_id=%u)\n", in iwl_dbg_tlv_apply_buffer()
678 ret = iwl_trans_send_cmd(fwrt->trans, &hcmd); in iwl_dbg_tlv_apply_buffer()
688 static void iwl_dbg_tlv_apply_buffers(struct iwl_fw_runtime *fwrt) in iwl_dbg_tlv_apply_buffers() argument
693 ret = iwl_dbg_tlv_apply_buffer(fwrt, i); in iwl_dbg_tlv_apply_buffers()
695 IWL_WARN(fwrt, in iwl_dbg_tlv_apply_buffers()
701 static void iwl_dbg_tlv_send_hcmds(struct iwl_fw_runtime *fwrt, in iwl_dbg_tlv_send_hcmds() argument
716 iwl_trans_send_cmd(fwrt->trans, &cmd); in iwl_dbg_tlv_send_hcmds()
729 ret = iwl_fw_dbg_ini_collect(timer_node->fwrt, &dump_data); in iwl_dbg_tlv_periodic_trig_handler()
741 static void iwl_dbg_tlv_set_periodic_trigs(struct iwl_fw_runtime *fwrt) in iwl_dbg_tlv_set_periodic_trigs() argument
745 &fwrt->trans->dbg.time_point[IWL_FW_INI_TIME_POINT_PERIODIC].active_trig_list; in iwl_dbg_tlv_set_periodic_trigs()
761 IWL_ERR(fwrt, in iwl_dbg_tlv_set_periodic_trigs()
767 IWL_WARN(fwrt, in iwl_dbg_tlv_set_periodic_trigs()
777 IWL_ERR(fwrt, in iwl_dbg_tlv_set_periodic_trigs()
782 timer_node->fwrt = fwrt; in iwl_dbg_tlv_set_periodic_trigs()
788 &fwrt->trans->dbg.periodic_trig_list); in iwl_dbg_tlv_set_periodic_trigs()
790 IWL_DEBUG_FW(fwrt, "WRT: Enabling periodic trigger\n"); in iwl_dbg_tlv_set_periodic_trigs()
823 static int iwl_dbg_tlv_override_trig_node(struct iwl_fw_runtime *fwrt, in iwl_dbg_tlv_override_trig_node() argument
839 IWL_DEBUG_FW(fwrt, in iwl_dbg_tlv_override_trig_node()
846 IWL_DEBUG_FW(fwrt, in iwl_dbg_tlv_override_trig_node()
859 IWL_WARN(fwrt, in iwl_dbg_tlv_override_trig_node()
877 IWL_DEBUG_FW(fwrt, in iwl_dbg_tlv_override_trig_node()
886 IWL_DEBUG_FW(fwrt, in iwl_dbg_tlv_override_trig_node()
892 IWL_DEBUG_FW(fwrt, in iwl_dbg_tlv_override_trig_node()
903 iwl_dbg_tlv_add_active_trigger(struct iwl_fw_runtime *fwrt, in iwl_dbg_tlv_add_active_trigger() argument
923 IWL_DEBUG_FW(fwrt, "WRT: Enabling trigger (time point %u)\n", in iwl_dbg_tlv_add_active_trigger()
928 return iwl_dbg_tlv_override_trig_node(fwrt, trig_tlv, match); in iwl_dbg_tlv_add_active_trigger()
932 iwl_dbg_tlv_gen_active_trig_list(struct iwl_fw_runtime *fwrt, in iwl_dbg_tlv_gen_active_trig_list() argument
942 iwl_dbg_tlv_add_active_trigger(fwrt, active_trig_list, tlv); in iwl_dbg_tlv_gen_active_trig_list()
946 static bool iwl_dbg_tlv_check_fw_pkt(struct iwl_fw_runtime *fwrt, in iwl_dbg_tlv_check_fw_pkt() argument
973 iwl_dbg_tlv_tp_trigger(struct iwl_fw_runtime *fwrt, in iwl_dbg_tlv_tp_trigger() argument
976 bool (*data_check)(struct iwl_fw_runtime *fwrt, in iwl_dbg_tlv_tp_trigger() argument
992 ret = iwl_fw_dbg_ini_collect(fwrt, &dump_data); in iwl_dbg_tlv_tp_trigger()
999 data_check(fwrt, &dump_data, tp_data, in iwl_dbg_tlv_tp_trigger()
1001 ret = iwl_fw_dbg_ini_collect(fwrt, &dump_data); in iwl_dbg_tlv_tp_trigger()
1013 static void iwl_dbg_tlv_init_cfg(struct iwl_fw_runtime *fwrt) in iwl_dbg_tlv_init_cfg() argument
1015 enum iwl_fw_ini_buffer_location *ini_dest = &fwrt->trans->dbg.ini_dest; in iwl_dbg_tlv_init_cfg()
1021 IWL_DEBUG_FW(fwrt, in iwl_dbg_tlv_init_cfg()
1023 fwrt->trans->dbg.domains_bitmap); in iwl_dbg_tlv_init_cfg()
1025 for (i = 0; i < ARRAY_SIZE(fwrt->trans->dbg.time_point); i++) { in iwl_dbg_tlv_init_cfg()
1027 &fwrt->trans->dbg.time_point[i]; in iwl_dbg_tlv_init_cfg()
1029 iwl_dbg_tlv_gen_active_trig_list(fwrt, tp); in iwl_dbg_tlv_init_cfg()
1035 &fwrt->trans->dbg.fw_mon_cfg[i]; in iwl_dbg_tlv_init_cfg()
1047 ret = iwl_dbg_tlv_alloc_fragments(fwrt, i); in iwl_dbg_tlv_init_cfg()
1049 IWL_WARN(fwrt, in iwl_dbg_tlv_init_cfg()
1055 void iwl_dbg_tlv_time_point(struct iwl_fw_runtime *fwrt, in iwl_dbg_tlv_time_point() argument
1061 if (!iwl_trans_dbg_ini_valid(fwrt->trans) || in iwl_dbg_tlv_time_point()
1066 hcmd_list = &fwrt->trans->dbg.time_point[tp_id].hcmd_list; in iwl_dbg_tlv_time_point()
1067 trig_list = &fwrt->trans->dbg.time_point[tp_id].active_trig_list; in iwl_dbg_tlv_time_point()
1071 iwl_dbg_tlv_init_cfg(fwrt); in iwl_dbg_tlv_time_point()
1072 iwl_dbg_tlv_tp_trigger(fwrt, trig_list, tp_data, NULL); in iwl_dbg_tlv_time_point()
1075 iwl_dbg_tlv_apply_buffers(fwrt); in iwl_dbg_tlv_time_point()
1076 iwl_dbg_tlv_send_hcmds(fwrt, hcmd_list); in iwl_dbg_tlv_time_point()
1077 iwl_dbg_tlv_tp_trigger(fwrt, trig_list, tp_data, NULL); in iwl_dbg_tlv_time_point()
1080 iwl_dbg_tlv_set_periodic_trigs(fwrt); in iwl_dbg_tlv_time_point()
1081 iwl_dbg_tlv_send_hcmds(fwrt, hcmd_list); in iwl_dbg_tlv_time_point()
1086 iwl_dbg_tlv_send_hcmds(fwrt, hcmd_list); in iwl_dbg_tlv_time_point()
1087 iwl_dbg_tlv_tp_trigger(fwrt, trig_list, tp_data, in iwl_dbg_tlv_time_point()
1091 iwl_dbg_tlv_send_hcmds(fwrt, hcmd_list); in iwl_dbg_tlv_time_point()
1092 iwl_dbg_tlv_tp_trigger(fwrt, trig_list, tp_data, NULL); in iwl_dbg_tlv_time_point()