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

Commit f7c692de authored by Liad Kaufman's avatar Liad Kaufman Committed by Luca Coelho
Browse files

iwlwifi: mvm: use defines for SCD_CONFIG_CMD enablement



Due to the addition of another option in the SCD_CONFIG_CMD's
%enable field, change the assignment of this field to use
defines rather than hard-code the value itself.

Signed-off-by: default avatarLiad Kaufman <liad.kaufman@intel.com>
Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
parent 8d98ae6e
Loading
Loading
Loading
Loading
+10 −2
Original line number Original line Diff line number Diff line
@@ -675,13 +675,21 @@ static inline u32 iwl_mvm_get_scd_ssn(struct iwl_mvm_tx_resp *tx_resp)
			    tx_resp->frame_count) & 0xfff;
			    tx_resp->frame_count) & 0xfff;
}
}


/* Available options for the SCD_QUEUE_CFG HCMD */
enum iwl_scd_cfg_actions {
	SCD_CFG_DISABLE_QUEUE		= 0x0,
	SCD_CFG_ENABLE_QUEUE		= 0x1,
	SCD_CFG_UPDATE_QUEUE_TID	= 0x2,
};

/**
/**
 * struct iwl_scd_txq_cfg_cmd - New txq hw scheduler config command
 * struct iwl_scd_txq_cfg_cmd - New txq hw scheduler config command
 * @token:
 * @token:
 * @sta_id: station id
 * @sta_id: station id
 * @tid:
 * @tid:
 * @scd_queue: scheduler queue to confiug
 * @scd_queue: scheduler queue to confiug
 * @enable: 1 queue enable, 0 queue disable
 * @action: 1 queue enable, 0 queue disable, 2 change txq's tid owner
 *	Value is one of %iwl_scd_cfg_actions options
 * @aggregate: 1 aggregated queue, 0 otherwise
 * @aggregate: 1 aggregated queue, 0 otherwise
 * @tx_fifo: %enum iwl_mvm_tx_fifo
 * @tx_fifo: %enum iwl_mvm_tx_fifo
 * @window: BA window size
 * @window: BA window size
@@ -692,7 +700,7 @@ struct iwl_scd_txq_cfg_cmd {
	u8 sta_id;
	u8 sta_id;
	u8 tid;
	u8 tid;
	u8 scd_queue;
	u8 scd_queue;
	u8 enable;
	u8 action;
	u8 aggregate;
	u8 aggregate;
	u8 tx_fifo;
	u8 tx_fifo;
	u8 window;
	u8 window;
+2 −2
Original line number Original line Diff line number Diff line
@@ -536,7 +536,7 @@ int iwl_mvm_scd_queue_redirect(struct iwl_mvm *mvm, int queue, int tid,
{
{
	struct iwl_scd_txq_cfg_cmd cmd = {
	struct iwl_scd_txq_cfg_cmd cmd = {
		.scd_queue = queue,
		.scd_queue = queue,
		.enable = 0,
		.action = SCD_CFG_DISABLE_QUEUE,
	};
	};
	bool shared_queue;
	bool shared_queue;
	unsigned long mq;
	unsigned long mq;
@@ -745,7 +745,7 @@ static int iwl_mvm_sta_alloc_queue(struct iwl_mvm *mvm,
	if (using_inactive_queue) {
	if (using_inactive_queue) {
		struct iwl_scd_txq_cfg_cmd cmd = {
		struct iwl_scd_txq_cfg_cmd cmd = {
			.scd_queue = queue,
			.scd_queue = queue,
			.enable = 0,
			.action = SCD_CFG_DISABLE_QUEUE,
		};
		};
		u8 ac;
		u8 ac;


+7 −6
Original line number Original line Diff line number Diff line
@@ -610,7 +610,7 @@ int iwl_mvm_reconfig_scd(struct iwl_mvm *mvm, int queue, int fifo, int sta_id,
{
{
	struct iwl_scd_txq_cfg_cmd cmd = {
	struct iwl_scd_txq_cfg_cmd cmd = {
		.scd_queue = queue,
		.scd_queue = queue,
		.enable = 1,
		.action = SCD_CFG_ENABLE_QUEUE,
		.window = frame_limit,
		.window = frame_limit,
		.sta_id = sta_id,
		.sta_id = sta_id,
		.ssn = cpu_to_le16(ssn),
		.ssn = cpu_to_le16(ssn),
@@ -684,7 +684,7 @@ void iwl_mvm_enable_txq(struct iwl_mvm *mvm, int queue, int mac80211_queue,
	if (enable_queue) {
	if (enable_queue) {
		struct iwl_scd_txq_cfg_cmd cmd = {
		struct iwl_scd_txq_cfg_cmd cmd = {
			.scd_queue = queue,
			.scd_queue = queue,
			.enable = 1,
			.action = SCD_CFG_ENABLE_QUEUE,
			.window = cfg->frame_limit,
			.window = cfg->frame_limit,
			.sta_id = cfg->sta_id,
			.sta_id = cfg->sta_id,
			.ssn = cpu_to_le16(ssn),
			.ssn = cpu_to_le16(ssn),
@@ -711,7 +711,7 @@ void iwl_mvm_disable_txq(struct iwl_mvm *mvm, int queue, int mac80211_queue,
{
{
	struct iwl_scd_txq_cfg_cmd cmd = {
	struct iwl_scd_txq_cfg_cmd cmd = {
		.scd_queue = queue,
		.scd_queue = queue,
		.enable = 0,
		.action = SCD_CFG_DISABLE_QUEUE,
	};
	};
	bool remove_mac_queue = true;
	bool remove_mac_queue = true;
	int ret;
	int ret;
@@ -746,8 +746,9 @@ void iwl_mvm_disable_txq(struct iwl_mvm *mvm, int queue, int mac80211_queue,
			~BIT(mac80211_queue);
			~BIT(mac80211_queue);
	mvm->queue_info[queue].hw_queue_refcount--;
	mvm->queue_info[queue].hw_queue_refcount--;


	cmd.enable = mvm->queue_info[queue].hw_queue_refcount ? 1 : 0;
	cmd.action = mvm->queue_info[queue].hw_queue_refcount ?
	if (!cmd.enable)
		SCD_CFG_ENABLE_QUEUE : SCD_CFG_DISABLE_QUEUE;
	if (cmd.action == SCD_CFG_DISABLE_QUEUE)
		mvm->queue_info[queue].status = IWL_MVM_QUEUE_FREE;
		mvm->queue_info[queue].status = IWL_MVM_QUEUE_FREE;


	IWL_DEBUG_TX_QUEUES(mvm,
	IWL_DEBUG_TX_QUEUES(mvm,
@@ -757,7 +758,7 @@ void iwl_mvm_disable_txq(struct iwl_mvm *mvm, int queue, int mac80211_queue,
			    mvm->queue_info[queue].hw_queue_to_mac80211);
			    mvm->queue_info[queue].hw_queue_to_mac80211);


	/* If the queue is still enabled - nothing left to do in this func */
	/* If the queue is still enabled - nothing left to do in this func */
	if (cmd.enable) {
	if (cmd.action == SCD_CFG_ENABLE_QUEUE) {
		spin_unlock_bh(&mvm->queue_info_lock);
		spin_unlock_bh(&mvm->queue_info_lock);
		return;
		return;
	}
	}