|
@@ -2351,69 +2351,6 @@ void iwl_update_stats(struct iwl_priv *priv, bool is_tx, __le16 fc, u16 len)
|
|
|
EXPORT_SYMBOL(iwl_update_stats);
|
|
|
#endif
|
|
|
|
|
|
-static const char *get_fh_string(int cmd)
|
|
|
-{
|
|
|
- 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";
|
|
|
-
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-int iwl_dump_fh(struct iwl_priv *priv, char **buf, bool display)
|
|
|
-{
|
|
|
- int i;
|
|
|
-#ifdef CONFIG_IWLWIFI_DEBUG
|
|
|
- int pos = 0;
|
|
|
- size_t bufsz = 0;
|
|
|
-#endif
|
|
|
- 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_DEBUG
|
|
|
- if (display) {
|
|
|
- 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(priv, fh_tbl[i]));
|
|
|
- }
|
|
|
- return pos;
|
|
|
- }
|
|
|
-#endif
|
|
|
- IWL_ERR(priv, "FH register values:\n");
|
|
|
- for (i = 0; i < ARRAY_SIZE(fh_tbl); i++) {
|
|
|
- IWL_ERR(priv, " %34s: 0X%08x\n",
|
|
|
- get_fh_string(fh_tbl[i]),
|
|
|
- iwl_read_direct32(priv, fh_tbl[i]));
|
|
|
- }
|
|
|
- return 0;
|
|
|
-}
|
|
|
-EXPORT_SYMBOL(iwl_dump_fh);
|
|
|
-
|
|
|
static void iwl_force_rf_reset(struct iwl_priv *priv)
|
|
|
{
|
|
|
if (test_bit(STATUS_EXIT_PENDING, &priv->status))
|