FAILED: patch "[PATCH] iwlwifi: yoyo: fix DBGI_SRAM ini dump header." failed to apply to 5.15-stable tree
Subsystems (2)
[email protected]
maintainerThe patch below does not apply to the 5.15-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 34bc27783a31a05d2fb987d8fa0f4f702efd0359 Mon Sep 17 00:00:00 2001
From: Rotem Saado <[email protected]>
Date: Sat, 29 Jan 2022 13:16:12 +0200
Subject: [PATCH] iwlwifi: yoyo: fix DBGI_SRAM ini dump header.
DBGI SRAM is new type of monitor, therefore it should be dump as monitor type with ini dump monitor header.
Signed-off-by Rotem Saado <[email protected]>
Fixes 89639e06d0f3 ("iwlwifi: yoyo: support for new DBGI_SRAM region")
Signed-off-by Luca Coelho <[email protected]>
Link https://lore.kernel.org/r/iwlwifi.20220129105618.6c31f6a2dcfc.If311c1d548bc5f7157a449e848ea01f71f5592eb@changeid open here
Signed-off-by Luca Coelho <[email protected]>
drivers/net/wireless/intel/iwlwifi/cfg/22000.c +6 -0
@@ -300,6 +300,12 @@ static const struct iwl_ht_params iwl_22000_ht_params = { .addr = DBGC_CUR_DBGBUF_STATUS, \ .mask = DBGC_CUR_DBGBUF_STATUS_IDX_MSK, \ }, \ + }, \ + .mon_dbgi_regs = { \ + .write_ptr = { \ + .addr = DBGI_SRAM_FIFO_POINTERS, \ + .mask = DBGI_SRAM_FIFO_POINTERS_WR_PTR_MSK, \ + }, \ }const struct iwl_cfg_trans_params iwl_qnj_trans_cfg = {
drivers/net/wireless/intel/iwlwifi/fw/dbg.c +27 -2
@@ -1696,6 +1696,17 @@ iwl_dump_ini_mon_smem_fill_header(struct iwl_fw_runtime *fwrt, &fwrt->trans->cfg->mon_smem_regs); } +static void * +iwl_dump_ini_mon_dbgi_fill_header (struct iwl_fw_runtime *fwrt, +struct iwl_dump_ini_region_data *reg_data, +void *data,u32 data_len) +{ +struct iwl_fw_ini_monitor_dump *mon_dump = (void *)data; + +return iwl_dump_ini_mon_fill_header (fwrt, reg_data, mon_dump, + &fwrt->trans->cfg->mon_dbgi_regs); +} +static void * iwl_dump_ini_err_table_fill_header(struct iwl_fw_runtime *fwrt, struct iwl_dump_ini_region_data *reg_data,
@@ -1861,6 +1872,20 @@ iwl_dump_ini_mon_smem_get_size(struct iwl_fw_runtime *fwrt,return size; } +static u32 iwl_dump_ini_mon_dbgi_get_size (struct iwl_fw_runtime *fwrt, +struct iwl_dump_ini_region_data *reg_data) +{ +struct iwl_fw_ini_region_tlv *reg = (void *)reg_data->reg_tlv->data; +u32 size =le32_to_cpu (reg->dev_addr.size); +u32 ranges =iwl_dump_ini_mem_ranges (fwrt, reg_data); + +if (!size || !ranges) +return 0 ; + +return sizeof (struct iwl_fw_ini_monitor_dump ) + ranges * + (size +sizeof (struct iwl_fw_ini_error_dump_range )); +} +static u32 iwl_dump_ini_txf_get_size (struct iwl_fw_runtime *fwrt,struct iwl_dump_ini_region_data *reg_data) {
@@ -2285,8 +2310,8 @@ static const struct iwl_dump_ini_mem_ops iwl_dump_ini_region_ops[] = { }, [IWL_FW_INI_REGION_DBGI_SRAM ] = { .get_num_of_ranges = iwl_dump_ini_mem_ranges, - .get_size = iwl_dump_ini_mem_get_size, - .fill_mem_hdr = iwl_dump_ini_mem_fill_header, + .get_size = iwl_dump_ini_mon_dbgi_get_size, + .fill_mem_hdr = iwl_dump_ini_mon_dbgi_fill_header, .fill_range = iwl_dump_ini_dbgi_sram_iter, }, };
drivers/net/wireless/intel/iwlwifi/iwl-config.h +1 -0
@@ -408,6 +408,7 @@ struct iwl_cfg {u32 min_ba_txq_size;const struct iwl_fw_mon_regs mon_dram_regs;const struct iwl_fw_mon_regs mon_smem_regs; +const struct iwl_fw_mon_regs mon_dbgi_regs; };#define IWL_CFG_ANY (~0)
drivers/net/wireless/intel/iwlwifi/iwl-prph.h +2 -0
@@ -358,6 +358,8 @@#define DBGI_SRAM_TARGET_ACCESS_CFG_RESET_ADDRESS_MSK 0x10000#define DBGI_SRAM_TARGET_ACCESS_RDATA_LSB 0x00A2E154#define DBGI_SRAM_TARGET_ACCESS_RDATA_MSB 0x00A2E158 +#define DBGI_SRAM_FIFO_POINTERS 0x00A2E148 +#define DBGI_SRAM_FIFO_POINTERS_WR_PTR_MSK 0x00000FFFenum {ENABLE_WFPM =BIT (31 ),