!ops->fill_mem_hdr || !ops->fill_range))
                return;
 
+       IWL_DEBUG_FW(fwrt, "WRT: collecting region: id=%d, type=%d\n",
+                    le32_to_cpu(reg->region_id), type);
+
        num_of_ranges = ops->get_num_of_ranges(fwrt, reg);
 
        (*data)->type = cpu_to_le32(type | INI_DUMP_BIT);
 
        range = ops->fill_mem_hdr(fwrt, reg, header);
        if (!range) {
-               IWL_ERR(fwrt, "Failed to fill region header: id=%d, type=%d\n",
+               IWL_ERR(fwrt,
+                       "WRT: failed to fill region header: id=%d, type=%d\n",
                        le32_to_cpu(reg->region_id), type);
                memset(*data, 0, le32_to_cpu((*data)->len));
                return;
                int range_size = ops->fill_range(fwrt, reg, range, i);
 
                if (range_size < 0) {
-                       IWL_ERR(fwrt, "Failed to dump region: id=%d, type=%d\n",
+                       IWL_ERR(fwrt,
+                               "WRT: failed to dump region: id=%d, type=%d\n",
                                le32_to_cpu(reg->region_id), type);
                        memset(*data, 0, le32_to_cpu((*data)->len));
                        return;
                        continue;
 
                reg = fwrt->dump.active_regs[reg_id];
-               if (WARN(!reg, "Unassigned region %d\n", reg_id))
+               if (!reg) {
+                       IWL_WARN(fwrt,
+                                "WRT: unassigned region id %d, skipping\n",
+                                reg_id);
                        continue;
+               }
 
                switch (le32_to_cpu(reg->region_type)) {
                case IWL_FW_INI_REGION_DEVICE_MEMORY:
        if (test_and_set_bit(IWL_FWRT_STATUS_DUMPING, &fwrt->status))
                return -EBUSY;
 
+       if (!iwl_fw_ini_trigger_on(fwrt, id)) {
+               IWL_WARN(fwrt, "WRT: Trigger %d is not active, aborting dump\n",
+                        id);
+               return -EINVAL;
+       }
+
        active = &fwrt->dump.active_trigs[id];
        delay = le32_to_cpu(active->trig->dump_delay);
        occur = le32_to_cpu(active->trig->occurrences);
        active->trig->occurrences = cpu_to_le32(--occur);
 
        if (le32_to_cpu(active->trig->force_restart)) {
-               IWL_WARN(fwrt, "Force restart: trigger %d fired.\n", id);
+               IWL_WARN(fwrt, "WRT: force restart: trigger %d fired.\n", id);
                iwl_force_nmi(fwrt->trans);
                return 0;
        }
 
        fwrt->dump.ini_trig_id = id;
 
-       IWL_WARN(fwrt, "Collecting data: ini trigger %d fired.\n", id);
+       IWL_WARN(fwrt, "WRT: collecting data: ini trigger %d fired.\n", id);
 
        schedule_delayed_work(&fwrt->dump.wk, usecs_to_jiffies(delay));
 
 
        iwl_fw_dbg_stop_recording(fwrt, ¶ms);
 
-       IWL_DEBUG_INFO(fwrt, "WRT dump start\n");
+       IWL_DEBUG_FW_INFO(fwrt, "WRT: data collection start\n");
        if (fwrt->trans->ini_valid)
                iwl_fw_error_ini_dump(fwrt);
        else
                iwl_fw_error_dump(fwrt);
-       IWL_DEBUG_INFO(fwrt, "WRT dump done\n");
+       IWL_DEBUG_FW_INFO(fwrt, "WRT: data collection done\n");
 
        /* start recording again if the firmware is not crashed */
        if (!test_bit(STATUS_FW_ERROR, &fwrt->trans->status) &&
        if (!virtual_addr)
                IWL_ERR(fwrt, "Failed to allocate debug memory\n");
 
+       IWL_DEBUG_FW(trans,
+                    "Allocated DRAM buffer[%d], size=0x%x\n",
+                    trans->num_blocks, size);
+
        trans->fw_mon[trans->num_blocks].block = virtual_addr;
        trans->fw_mon[trans->num_blocks].physical = phys_addr;
        trans->fw_mon[trans->num_blocks].size = size;
        trans->num_blocks++;
-
-       IWL_DEBUG_FW(trans, "Allocated debug block of size %d\n", size);
 }
 
 static void iwl_fw_dbg_buffer_apply(struct iwl_fw_runtime *fwrt,
 
        if (buf_location == IWL_FW_INI_LOCATION_SRAM_PATH) {
                if (!WARN(pnt != IWL_FW_INI_APPLY_EARLY,
-                         "Invalid apply point %d for SMEM buffer allocation",
-                         pnt))
+                         "WRT: Invalid apply point %d for SMEM buffer allocation, aborting\n",
+                         pnt)) {
+                       IWL_DEBUG_FW(trans,
+                                    "WRT: applying SMEM buffer destination\n");
+
                        /* set sram monitor by enabling bit 7 */
                        iwl_set_bit(fwrt->trans, CSR_HW_IF_CONFIG_REG,
                                    CSR_HW_IF_CONFIG_REG_BIT_MONITOR_SRAM);
+               }
                return;
        }
 
        if (trans->num_blocks == 1)
                return;
 
+       IWL_DEBUG_FW(trans,
+                    "WRT: applying DRAM buffer[%d] destination\n", block_idx);
+
        cmd->num_frags = cpu_to_le32(1);
        cmd->fragments[0].address =
                cpu_to_le64(trans->fw_mon[block_idx].physical);
 }
 
 static void iwl_fw_dbg_send_hcmd(struct iwl_fw_runtime *fwrt,
-                                struct iwl_ucode_tlv *tlv)
+                                struct iwl_ucode_tlv *tlv,
+                                bool ext)
 {
        struct iwl_fw_ini_hcmd_tlv *hcmd_tlv = (void *)&tlv->data[0];
        struct iwl_fw_ini_hcmd *data = &hcmd_tlv->hcmd;
        if (le32_to_cpu(hcmd_tlv->domain) != IWL_FW_INI_DBG_DOMAIN_ALWAYS_ON)
                return;
 
+       IWL_DEBUG_FW(fwrt,
+                    "WRT: ext=%d. Sending host command id=0x%x, group=0x%x\n",
+                    ext, data->id, data->group);
+
        iwl_trans_send_cmd(fwrt->trans, &hcmd);
 }
 
                u32 type = le32_to_cpu(reg->region_type);
 
                if (WARN(id >= ARRAY_SIZE(fwrt->dump.active_regs),
-                        "Invalid region id %d for apply point %d\n", id, pnt))
+                        "WRT: ext=%d. Invalid region id %d for apply point %d\n",
+                        ext, id, pnt))
                        break;
 
                active = &fwrt->dump.active_regs[id];
 
                if (*active)
-                       IWL_WARN(fwrt->trans, "region TLV %d override\n", id);
+                       IWL_WARN(fwrt->trans,
+                                "WRT: ext=%d. Region id %d override\n",
+                                ext, id);
 
                IWL_DEBUG_FW(fwrt,
-                            "%s: apply point %d, activating region ID %d\n",
-                            __func__, pnt, id);
+                            "WRT: ext=%d. Activating region id %d\n",
+                            ext, id);
 
                *active = reg;
 
 
        ptr = krealloc(active->trig, size, GFP_KERNEL);
        if (!ptr) {
-               IWL_ERR(fwrt, "Failed to allocate memory for trigger %d\n", id);
+               IWL_ERR(fwrt, "WRT: Failed to allocate memory for trigger %d\n",
+                       id);
                return -ENOMEM;
        }
        active->trig = ptr;
                u32 trig_regs_size = le32_to_cpu(trig->num_regions) *
                        sizeof(__le32);
 
-               if (WARN_ON(id >= ARRAY_SIZE(fwrt->dump.active_trigs)))
+               if (WARN(id >= ARRAY_SIZE(fwrt->dump.active_trigs),
+                        "WRT: ext=%d. Invalid trigger id %d for apply point %d\n",
+                        ext, id, apply_point))
                        break;
 
                active = &fwrt->dump.active_trigs[id];
                if (!active->active) {
                        size_t trig_size = sizeof(*trig) + trig_regs_size;
 
+                       IWL_DEBUG_FW(fwrt,
+                                    "WRT: ext=%d. Activating trigger %d\n",
+                                    ext, id);
+
                        if (iwl_fw_dbg_trig_realloc(fwrt, active, id,
                                                    trig_size))
                                goto next;
                        int mem_to_add = trig_regs_size;
 
                        if (region_override) {
+                               IWL_DEBUG_FW(fwrt,
+                                            "WRT: ext=%d. Trigger %d regions override\n",
+                                            ext, id);
+
                                mem_to_add -= active_regs * sizeof(__le32);
                        } else {
+                               IWL_DEBUG_FW(fwrt,
+                                            "WRT: ext=%d. Trigger %d regions appending\n",
+                                            ext, id);
+
                                offset += active_regs;
                                new_regs += active_regs;
                        }
                                                    active->size + mem_to_add))
                                goto next;
 
-                       if (conf_override)
+                       if (conf_override) {
+                               IWL_DEBUG_FW(fwrt,
+                                            "WRT: ext=%d. Trigger %d configuration override\n",
+                                            ext, id);
+
                                memcpy(active->trig, trig, sizeof(*trig));
+                       }
 
                        memcpy(active->trig->data + offset, trig->data,
                               trig_regs_size);
                case IWL_UCODE_TLV_TYPE_HCMD:
                        if (pnt < IWL_FW_INI_APPLY_AFTER_ALIVE) {
                                IWL_ERR(fwrt,
-                                       "Invalid apply point %x for host command\n",
-                                       pnt);
+                                       "WRT: ext=%d. Invalid apply point %d for host command\n",
+                                       ext, pnt);
                                goto next;
                        }
-                       iwl_fw_dbg_send_hcmd(fwrt, tlv);
+                       iwl_fw_dbg_send_hcmd(fwrt, tlv, ext);
                        break;
                case IWL_UCODE_TLV_TYPE_REGIONS:
                        iwl_fw_dbg_update_regions(fwrt, ini_tlv, ext, pnt);
                case IWL_UCODE_TLV_TYPE_DEBUG_FLOW:
                        break;
                default:
-                       WARN_ONCE(1, "Invalid TLV %x for apply point\n", type);
+                       WARN_ONCE(1,
+                                 "WRT: ext=%d. Invalid TLV 0x%x for apply point\n",
+                                 ext, type);
                        break;
                }
 next:
        void *data = &fwrt->trans->apply_points[apply_point];
        int i;
 
+       IWL_DEBUG_FW(fwrt, "WRT: enabling apply point %d\n", apply_point);
+
        if (apply_point == IWL_FW_INI_APPLY_EARLY) {
                for (i = 0; i < IWL_FW_INI_MAX_REGION_ID; i++)
                        fwrt->dump.active_regs[i] = NULL;