|
@@ -1033,71 +1033,6 @@ static void iwl_trans_pcie_set_bits_mask(struct iwl_trans *trans, u32 reg,
|
|
|
spin_unlock_irqrestore(&trans_pcie->reg_lock, flags);
|
|
|
}
|
|
|
|
|
|
-static const char *get_fh_string(int cmd)
|
|
|
-{
|
|
|
-#define IWL_CMD(x) case x: return #x
|
|
|
- switch (cmd) {
|
|
|
- IWL_CMD(FH_RSCSR_CHNL0_STTS_WPTR_REG);
|
|
|
- IWL_CMD(FH_RSCSR_CHNL0_RBDCB_BASE_REG);
|
|
|
- IWL_CMD(FH_RSCSR_CHNL0_WPTR);
|
|
|
- IWL_CMD(FH_MEM_RCSR_CHNL0_CONFIG_REG);
|
|
|
- IWL_CMD(FH_MEM_RSSR_SHARED_CTRL_REG);
|
|
|
- IWL_CMD(FH_MEM_RSSR_RX_STATUS_REG);
|
|
|
- IWL_CMD(FH_MEM_RSSR_RX_ENABLE_ERR_IRQ2DRV);
|
|
|
- IWL_CMD(FH_TSSR_TX_STATUS_REG);
|
|
|
- IWL_CMD(FH_TSSR_TX_ERROR_REG);
|
|
|
- default:
|
|
|
- return "UNKNOWN";
|
|
|
- }
|
|
|
-#undef IWL_CMD
|
|
|
-}
|
|
|
-
|
|
|
-int iwl_pcie_dump_fh(struct iwl_trans *trans, char **buf)
|
|
|
-{
|
|
|
- int i;
|
|
|
- static const u32 fh_tbl[] = {
|
|
|
- FH_RSCSR_CHNL0_STTS_WPTR_REG,
|
|
|
- FH_RSCSR_CHNL0_RBDCB_BASE_REG,
|
|
|
- FH_RSCSR_CHNL0_WPTR,
|
|
|
- FH_MEM_RCSR_CHNL0_CONFIG_REG,
|
|
|
- FH_MEM_RSSR_SHARED_CTRL_REG,
|
|
|
- FH_MEM_RSSR_RX_STATUS_REG,
|
|
|
- FH_MEM_RSSR_RX_ENABLE_ERR_IRQ2DRV,
|
|
|
- FH_TSSR_TX_STATUS_REG,
|
|
|
- FH_TSSR_TX_ERROR_REG
|
|
|
- };
|
|
|
-
|
|
|
-#ifdef CONFIG_IWLWIFI_DEBUGFS
|
|
|
- if (buf) {
|
|
|
- int pos = 0;
|
|
|
- size_t bufsz = ARRAY_SIZE(fh_tbl) * 48 + 40;
|
|
|
-
|
|
|
- *buf = kmalloc(bufsz, GFP_KERNEL);
|
|
|
- if (!*buf)
|
|
|
- return -ENOMEM;
|
|
|
-
|
|
|
- pos += scnprintf(*buf + pos, bufsz - pos,
|
|
|
- "FH register values:\n");
|
|
|
-
|
|
|
- for (i = 0; i < ARRAY_SIZE(fh_tbl); i++)
|
|
|
- pos += scnprintf(*buf + pos, bufsz - pos,
|
|
|
- " %34s: 0X%08x\n",
|
|
|
- get_fh_string(fh_tbl[i]),
|
|
|
- iwl_read_direct32(trans, fh_tbl[i]));
|
|
|
-
|
|
|
- return pos;
|
|
|
- }
|
|
|
-#endif
|
|
|
-
|
|
|
- IWL_ERR(trans, "FH register values:\n");
|
|
|
- for (i = 0; i < ARRAY_SIZE(fh_tbl); i++)
|
|
|
- IWL_ERR(trans, " %34s: 0X%08x\n",
|
|
|
- get_fh_string(fh_tbl[i]),
|
|
|
- iwl_read_direct32(trans, fh_tbl[i]));
|
|
|
-
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
static const char *get_csr_string(int cmd)
|
|
|
{
|
|
|
#define IWL_CMD(x) case x: return #x
|
|
@@ -1390,7 +1325,7 @@ static ssize_t iwl_dbgfs_fh_reg_read(struct file *file,
|
|
|
int pos = 0;
|
|
|
ssize_t ret = -EFAULT;
|
|
|
|
|
|
- ret = pos = iwl_pcie_dump_fh(trans, &buf);
|
|
|
+ ret = pos = iwl_dump_fh(trans, &buf);
|
|
|
if (buf) {
|
|
|
ret = simple_read_from_buffer(user_buf,
|
|
|
count, ppos, buf, pos);
|