Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 39bdb17e authored by Sharon Dvir's avatar Sharon Dvir Committed by Emmanuel Grumbach
Browse files

iwlwifi: update host command messages to new format



Host commands now have a group id, express this in printed messages.

Signed-off-by: default avatarSharon Dvir <sharon.dvir@intel.com>
Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
parent 92fe8343
Loading
Loading
Loading
Loading
+0 −9
Original line number Diff line number Diff line
@@ -473,13 +473,4 @@ do { \
} while (0)
#endif				/* CONFIG_IWLWIFI_DEBUG */

extern const char *const iwl_dvm_cmd_strings[REPLY_MAX + 1];

static inline const char *iwl_dvm_get_cmd_string(u8 cmd)
{
	const char *s = iwl_dvm_cmd_strings[cmd];
	if (s)
		return s;
	return "UNKNOWN";
}
#endif /* __iwl_agn_h__ */
+3 −1
Original line number Diff line number Diff line
@@ -32,7 +32,9 @@
#include <linux/debugfs.h>
#include <linux/ieee80211.h>
#include <net/mac80211.h>

#include "iwl-debug.h"
#include "iwl-trans.h"
#include "iwl-io.h"
#include "dev.h"
#include "agn.h"
@@ -438,7 +440,7 @@ static ssize_t iwl_dbgfs_rx_handlers_read(struct file *file,
		if (priv->rx_handlers_stats[cnt] > 0)
			pos += scnprintf(buf + pos, bufsz - pos,
				"\tRx handler[%36s]:\t\t %u\n",
				iwl_dvm_get_cmd_string(cnt),
				iwl_get_cmd_string(priv->trans, (u32)cnt),
				priv->rx_handlers_stats[cnt]);
	}

+1 −1
Original line number Diff line number Diff line
@@ -1262,7 +1262,7 @@ int iwl_dvm_send_cmd(struct iwl_priv *priv, struct iwl_host_cmd *cmd)

	if (test_bit(STATUS_FW_ERROR, &priv->status)) {
		IWL_ERR(priv, "Command %s failed: FW Error\n",
			iwl_dvm_get_cmd_string(cmd->id));
			iwl_get_cmd_string(priv->trans, cmd->id));
		return -EIO;
	}

+93 −1
Original line number Diff line number Diff line
/******************************************************************************
 *
 * Copyright(c) 2003 - 2014 Intel Corporation. All rights reserved.
 * Copyright(c) 2015 Intel Deutschland GmbH
 *
 * Portions of this file are derived from the ipw3945 project, as well
 * as portions of the ieee80211 subsystem header files.
@@ -69,6 +70,93 @@ MODULE_DESCRIPTION(DRV_DESCRIPTION);
MODULE_AUTHOR(DRV_COPYRIGHT " " DRV_AUTHOR);
MODULE_LICENSE("GPL");

/* Please keep this array *SORTED* by hex value.
 * Access is done through binary search.
 * A warning will be triggered on violation.
 */
static const struct iwl_hcmd_names iwl_dvm_cmd_names[] = {
	HCMD_NAME(REPLY_ALIVE),
	HCMD_NAME(REPLY_ERROR),
	HCMD_NAME(REPLY_ECHO),
	HCMD_NAME(REPLY_RXON),
	HCMD_NAME(REPLY_RXON_ASSOC),
	HCMD_NAME(REPLY_QOS_PARAM),
	HCMD_NAME(REPLY_RXON_TIMING),
	HCMD_NAME(REPLY_ADD_STA),
	HCMD_NAME(REPLY_REMOVE_STA),
	HCMD_NAME(REPLY_REMOVE_ALL_STA),
	HCMD_NAME(REPLY_TX),
	HCMD_NAME(REPLY_TXFIFO_FLUSH),
	HCMD_NAME(REPLY_WEPKEY),
	HCMD_NAME(REPLY_LEDS_CMD),
	HCMD_NAME(REPLY_TX_LINK_QUALITY_CMD),
	HCMD_NAME(COEX_PRIORITY_TABLE_CMD),
	HCMD_NAME(COEX_MEDIUM_NOTIFICATION),
	HCMD_NAME(COEX_EVENT_CMD),
	HCMD_NAME(TEMPERATURE_NOTIFICATION),
	HCMD_NAME(CALIBRATION_CFG_CMD),
	HCMD_NAME(CALIBRATION_RES_NOTIFICATION),
	HCMD_NAME(CALIBRATION_COMPLETE_NOTIFICATION),
	HCMD_NAME(REPLY_QUIET_CMD),
	HCMD_NAME(REPLY_CHANNEL_SWITCH),
	HCMD_NAME(CHANNEL_SWITCH_NOTIFICATION),
	HCMD_NAME(REPLY_SPECTRUM_MEASUREMENT_CMD),
	HCMD_NAME(SPECTRUM_MEASURE_NOTIFICATION),
	HCMD_NAME(POWER_TABLE_CMD),
	HCMD_NAME(PM_SLEEP_NOTIFICATION),
	HCMD_NAME(PM_DEBUG_STATISTIC_NOTIFIC),
	HCMD_NAME(REPLY_SCAN_CMD),
	HCMD_NAME(REPLY_SCAN_ABORT_CMD),
	HCMD_NAME(SCAN_START_NOTIFICATION),
	HCMD_NAME(SCAN_RESULTS_NOTIFICATION),
	HCMD_NAME(SCAN_COMPLETE_NOTIFICATION),
	HCMD_NAME(BEACON_NOTIFICATION),
	HCMD_NAME(REPLY_TX_BEACON),
	HCMD_NAME(WHO_IS_AWAKE_NOTIFICATION),
	HCMD_NAME(REPLY_TX_POWER_DBM_CMD),
	HCMD_NAME(QUIET_NOTIFICATION),
	HCMD_NAME(REPLY_TX_PWR_TABLE_CMD),
	HCMD_NAME(REPLY_TX_POWER_DBM_CMD_V1),
	HCMD_NAME(TX_ANT_CONFIGURATION_CMD),
	HCMD_NAME(MEASURE_ABORT_NOTIFICATION),
	HCMD_NAME(REPLY_BT_CONFIG),
	HCMD_NAME(REPLY_STATISTICS_CMD),
	HCMD_NAME(STATISTICS_NOTIFICATION),
	HCMD_NAME(REPLY_CARD_STATE_CMD),
	HCMD_NAME(CARD_STATE_NOTIFICATION),
	HCMD_NAME(MISSED_BEACONS_NOTIFICATION),
	HCMD_NAME(REPLY_CT_KILL_CONFIG_CMD),
	HCMD_NAME(SENSITIVITY_CMD),
	HCMD_NAME(REPLY_PHY_CALIBRATION_CMD),
	HCMD_NAME(REPLY_WIPAN_PARAMS),
	HCMD_NAME(REPLY_WIPAN_RXON),
	HCMD_NAME(REPLY_WIPAN_RXON_TIMING),
	HCMD_NAME(REPLY_WIPAN_RXON_ASSOC),
	HCMD_NAME(REPLY_WIPAN_QOS_PARAM),
	HCMD_NAME(REPLY_WIPAN_WEPKEY),
	HCMD_NAME(REPLY_WIPAN_P2P_CHANNEL_SWITCH),
	HCMD_NAME(REPLY_WIPAN_NOA_NOTIFICATION),
	HCMD_NAME(REPLY_WIPAN_DEACTIVATION_COMPLETE),
	HCMD_NAME(REPLY_RX_PHY_CMD),
	HCMD_NAME(REPLY_RX_MPDU_CMD),
	HCMD_NAME(REPLY_RX),
	HCMD_NAME(REPLY_COMPRESSED_BA),
	HCMD_NAME(REPLY_BT_COEX_PRIO_TABLE),
	HCMD_NAME(REPLY_BT_COEX_PROT_ENV),
	HCMD_NAME(REPLY_BT_COEX_PROFILE_NOTIF),
	HCMD_NAME(REPLY_D3_CONFIG),
	HCMD_NAME(REPLY_WOWLAN_PATTERNS),
	HCMD_NAME(REPLY_WOWLAN_WAKEUP_FILTER),
	HCMD_NAME(REPLY_WOWLAN_TSC_RSC_PARAMS),
	HCMD_NAME(REPLY_WOWLAN_TKIP_PARAMS),
	HCMD_NAME(REPLY_WOWLAN_KEK_KCK_MATERIAL),
	HCMD_NAME(REPLY_WOWLAN_GET_STATUS),
};

static const struct iwl_hcmd_arr iwl_dvm_groups[] = {
	[0x0] = HCMD_ARR(iwl_dvm_cmd_names),
};

static const struct iwl_op_mode_ops iwl_dvm_ops;

void iwl_update_chain_flags(struct iwl_priv *priv)
@@ -1244,7 +1332,9 @@ static struct iwl_op_mode *iwl_op_mode_dvm_start(struct iwl_trans *trans,

	trans_cfg.cmd_q_wdg_timeout = IWL_WATCHDOG_DISABLED;

	trans_cfg.command_names = iwl_dvm_cmd_strings;
	trans_cfg.command_groups = iwl_dvm_groups;
	trans_cfg.command_groups_size = ARRAY_SIZE(iwl_dvm_groups);

	trans_cfg.cmd_fifo = IWLAGN_CMD_FIFO_NUM;

	WARN_ON(sizeof(priv->transport_queue_stop) * BITS_PER_BYTE <
@@ -1265,6 +1355,8 @@ static struct iwl_op_mode *iwl_op_mode_dvm_start(struct iwl_trans *trans,

	trans->rx_mpdu_cmd = REPLY_RX_MPDU_CMD;
	trans->rx_mpdu_cmd_hdr_size = sizeof(struct iwl_rx_mpdu_res_start);
	trans->command_groups = trans_cfg.command_groups;
	trans->command_groups_size = trans_cfg.command_groups_size;

	/* At this point both hw and priv are allocated. */

+6 −81
Original line number Diff line number Diff line
/******************************************************************************
 *
 * Copyright(c) 2003 - 2014 Intel Corporation. All rights reserved.
 * Copyright(c) 2015 Intel Deutschland GmbH
 *
 * Portions of this file are derived from the ipw3945 project, as well
 * as portionhelp of the ieee80211 subsystem header files.
@@ -32,91 +33,13 @@
#include <linux/sched.h>
#include <net/mac80211.h>
#include <asm/unaligned.h>

#include "iwl-trans.h"
#include "iwl-io.h"
#include "dev.h"
#include "calib.h"
#include "agn.h"

#define IWL_CMD_ENTRY(x) [x] = #x

const char *const iwl_dvm_cmd_strings[REPLY_MAX + 1] = {
	IWL_CMD_ENTRY(REPLY_ALIVE),
	IWL_CMD_ENTRY(REPLY_ERROR),
	IWL_CMD_ENTRY(REPLY_ECHO),
	IWL_CMD_ENTRY(REPLY_RXON),
	IWL_CMD_ENTRY(REPLY_RXON_ASSOC),
	IWL_CMD_ENTRY(REPLY_QOS_PARAM),
	IWL_CMD_ENTRY(REPLY_RXON_TIMING),
	IWL_CMD_ENTRY(REPLY_ADD_STA),
	IWL_CMD_ENTRY(REPLY_REMOVE_STA),
	IWL_CMD_ENTRY(REPLY_REMOVE_ALL_STA),
	IWL_CMD_ENTRY(REPLY_TXFIFO_FLUSH),
	IWL_CMD_ENTRY(REPLY_WEPKEY),
	IWL_CMD_ENTRY(REPLY_TX),
	IWL_CMD_ENTRY(REPLY_LEDS_CMD),
	IWL_CMD_ENTRY(REPLY_TX_LINK_QUALITY_CMD),
	IWL_CMD_ENTRY(COEX_PRIORITY_TABLE_CMD),
	IWL_CMD_ENTRY(COEX_MEDIUM_NOTIFICATION),
	IWL_CMD_ENTRY(COEX_EVENT_CMD),
	IWL_CMD_ENTRY(REPLY_QUIET_CMD),
	IWL_CMD_ENTRY(REPLY_CHANNEL_SWITCH),
	IWL_CMD_ENTRY(CHANNEL_SWITCH_NOTIFICATION),
	IWL_CMD_ENTRY(REPLY_SPECTRUM_MEASUREMENT_CMD),
	IWL_CMD_ENTRY(SPECTRUM_MEASURE_NOTIFICATION),
	IWL_CMD_ENTRY(POWER_TABLE_CMD),
	IWL_CMD_ENTRY(PM_SLEEP_NOTIFICATION),
	IWL_CMD_ENTRY(PM_DEBUG_STATISTIC_NOTIFIC),
	IWL_CMD_ENTRY(REPLY_SCAN_CMD),
	IWL_CMD_ENTRY(REPLY_SCAN_ABORT_CMD),
	IWL_CMD_ENTRY(SCAN_START_NOTIFICATION),
	IWL_CMD_ENTRY(SCAN_RESULTS_NOTIFICATION),
	IWL_CMD_ENTRY(SCAN_COMPLETE_NOTIFICATION),
	IWL_CMD_ENTRY(BEACON_NOTIFICATION),
	IWL_CMD_ENTRY(REPLY_TX_BEACON),
	IWL_CMD_ENTRY(WHO_IS_AWAKE_NOTIFICATION),
	IWL_CMD_ENTRY(QUIET_NOTIFICATION),
	IWL_CMD_ENTRY(REPLY_TX_PWR_TABLE_CMD),
	IWL_CMD_ENTRY(MEASURE_ABORT_NOTIFICATION),
	IWL_CMD_ENTRY(REPLY_BT_CONFIG),
	IWL_CMD_ENTRY(REPLY_STATISTICS_CMD),
	IWL_CMD_ENTRY(STATISTICS_NOTIFICATION),
	IWL_CMD_ENTRY(REPLY_CARD_STATE_CMD),
	IWL_CMD_ENTRY(CARD_STATE_NOTIFICATION),
	IWL_CMD_ENTRY(MISSED_BEACONS_NOTIFICATION),
	IWL_CMD_ENTRY(REPLY_CT_KILL_CONFIG_CMD),
	IWL_CMD_ENTRY(SENSITIVITY_CMD),
	IWL_CMD_ENTRY(REPLY_PHY_CALIBRATION_CMD),
	IWL_CMD_ENTRY(REPLY_RX_PHY_CMD),
	IWL_CMD_ENTRY(REPLY_RX_MPDU_CMD),
	IWL_CMD_ENTRY(REPLY_COMPRESSED_BA),
	IWL_CMD_ENTRY(CALIBRATION_CFG_CMD),
	IWL_CMD_ENTRY(CALIBRATION_RES_NOTIFICATION),
	IWL_CMD_ENTRY(CALIBRATION_COMPLETE_NOTIFICATION),
	IWL_CMD_ENTRY(REPLY_TX_POWER_DBM_CMD),
	IWL_CMD_ENTRY(TEMPERATURE_NOTIFICATION),
	IWL_CMD_ENTRY(TX_ANT_CONFIGURATION_CMD),
	IWL_CMD_ENTRY(REPLY_BT_COEX_PROFILE_NOTIF),
	IWL_CMD_ENTRY(REPLY_BT_COEX_PRIO_TABLE),
	IWL_CMD_ENTRY(REPLY_BT_COEX_PROT_ENV),
	IWL_CMD_ENTRY(REPLY_WIPAN_PARAMS),
	IWL_CMD_ENTRY(REPLY_WIPAN_RXON),
	IWL_CMD_ENTRY(REPLY_WIPAN_RXON_TIMING),
	IWL_CMD_ENTRY(REPLY_WIPAN_RXON_ASSOC),
	IWL_CMD_ENTRY(REPLY_WIPAN_QOS_PARAM),
	IWL_CMD_ENTRY(REPLY_WIPAN_WEPKEY),
	IWL_CMD_ENTRY(REPLY_WIPAN_P2P_CHANNEL_SWITCH),
	IWL_CMD_ENTRY(REPLY_WIPAN_NOA_NOTIFICATION),
	IWL_CMD_ENTRY(REPLY_WIPAN_DEACTIVATION_COMPLETE),
	IWL_CMD_ENTRY(REPLY_WOWLAN_PATTERNS),
	IWL_CMD_ENTRY(REPLY_WOWLAN_WAKEUP_FILTER),
	IWL_CMD_ENTRY(REPLY_WOWLAN_TSC_RSC_PARAMS),
	IWL_CMD_ENTRY(REPLY_WOWLAN_TKIP_PARAMS),
	IWL_CMD_ENTRY(REPLY_WOWLAN_KEK_KCK_MATERIAL),
	IWL_CMD_ENTRY(REPLY_WOWLAN_GET_STATUS),
	IWL_CMD_ENTRY(REPLY_D3_CONFIG),
};
#undef IWL_CMD_ENTRY

/******************************************************************************
 *
 * Generic RX handler implementations
@@ -1095,7 +1018,9 @@ void iwl_rx_dispatch(struct iwl_op_mode *op_mode, struct napi_struct *napi,
	} else {
		/* No handling needed */
		IWL_DEBUG_RX(priv, "No handler needed for %s, 0x%02x\n",
			     iwl_dvm_get_cmd_string(pkt->hdr.cmd),
			     iwl_get_cmd_string(priv->trans,
						iwl_cmd_id(pkt->hdr.cmd,
							   0, 0)),
			     pkt->hdr.cmd);
	}
}
Loading