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

Commit 1230b16b authored by Avraham Stern's avatar Avraham Stern Committed by Emmanuel Grumbach
Browse files

iwlwifi: mvm: add wide firmware command infrastructure for RX



Add support for extended firmware event header that contains
a group id as well as the command id.

Signed-off-by: default avatarAvraham Stern <avraham.stern@intel.com>
Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
parent 6eb031d2
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -201,13 +201,15 @@ static void iwl_mvm_nic_config(struct iwl_op_mode *op_mode)
}

struct iwl_rx_handlers {
	u8 cmd_id;
	u16 cmd_id;
	bool async;
	void (*fn)(struct iwl_mvm *mvm, struct iwl_rx_cmd_buffer *rxb);
};

#define RX_HANDLER(_cmd_id, _fn, _async)	\
	{ .cmd_id = _cmd_id , .fn = _fn , .async = _async }
#define RX_HANDLER_GRP(_grp, _cmd, _fn, _async)	\
	{ .cmd_id = WIDE_ID(_grp, _cmd), .fn = _fn, .async = _async }

/*
 * Handlers for fw notifications
@@ -263,6 +265,7 @@ static const struct iwl_rx_handlers iwl_mvm_rx_handlers[] = {

};
#undef RX_HANDLER
#undef RX_HANDLER_GRP
#define CMD(x) [x] = #x

static const char *const iwl_mvm_cmd_strings[REPLY_MAX] = {
@@ -735,7 +738,7 @@ static void iwl_mvm_rx_dispatch(struct iwl_op_mode *op_mode,
		const struct iwl_rx_handlers *rx_h = &iwl_mvm_rx_handlers[i];
		struct iwl_async_handler_entry *entry;

		if (rx_h->cmd_id != pkt->hdr.cmd)
		if (rx_h->cmd_id != WIDE_ID(pkt->hdr.group_id, pkt->hdr.cmd))
			continue;

		if (!rx_h->async) {