Skip to content

Commit

Permalink
eliminate byteswapping in struct ieee80211_qos_parameters
Browse files Browse the repository at this point in the history
Make it match the on-the-wire endianness, eliminate byteswapping.
The only driver that used this sucker (ipw2200) updated.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Al Viro authored and David S. Miller committed Jan 28, 2008
1 parent c0ddd04 commit 8fffc15
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 57 deletions.
13 changes: 2 additions & 11 deletions drivers/net/wireless/ipw2200.c
Original file line number Diff line number Diff line change
Expand Up @@ -6904,7 +6904,7 @@ static int ipw_qos_activate(struct ipw_priv *priv,
burst_duration = ipw_qos_get_burst_duration(priv);
for (i = 0; i < QOS_QUEUE_NUM; i++)
qos_parameters[QOS_PARAM_SET_ACTIVE].tx_op_limit[i] =
(u16)burst_duration;
cpu_to_le16(burst_duration);
} else if (priv->ieee->iw_mode == IW_MODE_ADHOC) {
if (type == IEEE_B) {
IPW_DEBUG_QOS("QoS activate IBSS nework mode %d\n",
Expand Down Expand Up @@ -6936,20 +6936,11 @@ static int ipw_qos_activate(struct ipw_priv *priv,
burst_duration = ipw_qos_get_burst_duration(priv);
for (i = 0; i < QOS_QUEUE_NUM; i++)
qos_parameters[QOS_PARAM_SET_ACTIVE].
tx_op_limit[i] = (u16)burst_duration;
tx_op_limit[i] = cpu_to_le16(burst_duration);
}
}

IPW_DEBUG_QOS("QoS sending IPW_CMD_QOS_PARAMETERS\n");
for (i = 0; i < 3; i++) {
int j;
for (j = 0; j < QOS_QUEUE_NUM; j++) {
qos_parameters[i].cw_min[j] = cpu_to_le16(qos_parameters[i].cw_min[j]);
qos_parameters[i].cw_max[j] = cpu_to_le16(qos_parameters[i].cw_max[j]);
qos_parameters[i].tx_op_limit[j] = cpu_to_le16(qos_parameters[i].tx_op_limit[j]);
}
}

err = ipw_send_qos_params_command(priv,
(struct ieee80211_qos_parameters *)
&(qos_parameters[0]));
Expand Down
86 changes: 43 additions & 43 deletions drivers/net/wireless/ipw2200.h
Original file line number Diff line number Diff line change
Expand Up @@ -267,25 +267,25 @@ enum connection_manager_assoc_states {
#define CW_MIN_CCK 31
#define CW_MAX_CCK 1023

#define QOS_TX0_CW_MIN_OFDM CW_MIN_OFDM
#define QOS_TX1_CW_MIN_OFDM CW_MIN_OFDM
#define QOS_TX2_CW_MIN_OFDM ( (CW_MIN_OFDM + 1) / 2 - 1 )
#define QOS_TX3_CW_MIN_OFDM ( (CW_MIN_OFDM + 1) / 4 - 1 )

#define QOS_TX0_CW_MIN_CCK CW_MIN_CCK
#define QOS_TX1_CW_MIN_CCK CW_MIN_CCK
#define QOS_TX2_CW_MIN_CCK ( (CW_MIN_CCK + 1) / 2 - 1 )
#define QOS_TX3_CW_MIN_CCK ( (CW_MIN_CCK + 1) / 4 - 1 )

#define QOS_TX0_CW_MAX_OFDM CW_MAX_OFDM
#define QOS_TX1_CW_MAX_OFDM CW_MAX_OFDM
#define QOS_TX2_CW_MAX_OFDM CW_MIN_OFDM
#define QOS_TX3_CW_MAX_OFDM ( (CW_MIN_OFDM + 1) / 2 - 1 )

#define QOS_TX0_CW_MAX_CCK CW_MAX_CCK
#define QOS_TX1_CW_MAX_CCK CW_MAX_CCK
#define QOS_TX2_CW_MAX_CCK CW_MIN_CCK
#define QOS_TX3_CW_MAX_CCK ( (CW_MIN_CCK + 1) / 2 - 1 )
#define QOS_TX0_CW_MIN_OFDM cpu_to_le16(CW_MIN_OFDM)
#define QOS_TX1_CW_MIN_OFDM cpu_to_le16(CW_MIN_OFDM)
#define QOS_TX2_CW_MIN_OFDM cpu_to_le16((CW_MIN_OFDM + 1)/2 - 1)
#define QOS_TX3_CW_MIN_OFDM cpu_to_le16((CW_MIN_OFDM + 1)/4 - 1)

#define QOS_TX0_CW_MIN_CCK cpu_to_le16(CW_MIN_CCK)
#define QOS_TX1_CW_MIN_CCK cpu_to_le16(CW_MIN_CCK)
#define QOS_TX2_CW_MIN_CCK cpu_to_le16((CW_MIN_CCK + 1)/2 - 1)
#define QOS_TX3_CW_MIN_CCK cpu_to_le16((CW_MIN_CCK + 1)/4 - 1)

#define QOS_TX0_CW_MAX_OFDM cpu_to_le16(CW_MAX_OFDM)
#define QOS_TX1_CW_MAX_OFDM cpu_to_le16(CW_MAX_OFDM)
#define QOS_TX2_CW_MAX_OFDM cpu_to_le16(CW_MIN_OFDM)
#define QOS_TX3_CW_MAX_OFDM cpu_to_le16((CW_MIN_OFDM + 1)/2 - 1)

#define QOS_TX0_CW_MAX_CCK cpu_to_le16(CW_MAX_CCK)
#define QOS_TX1_CW_MAX_CCK cpu_to_le16(CW_MAX_CCK)
#define QOS_TX2_CW_MAX_CCK cpu_to_le16(CW_MIN_CCK)
#define QOS_TX3_CW_MAX_CCK cpu_to_le16((CW_MIN_CCK + 1)/2 - 1)

#define QOS_TX0_AIFS (3 - QOS_AIFSN_MIN_VALUE)
#define QOS_TX1_AIFS (7 - QOS_AIFSN_MIN_VALUE)
Expand All @@ -299,33 +299,33 @@ enum connection_manager_assoc_states {

#define QOS_TX0_TXOP_LIMIT_CCK 0
#define QOS_TX1_TXOP_LIMIT_CCK 0
#define QOS_TX2_TXOP_LIMIT_CCK 6016
#define QOS_TX3_TXOP_LIMIT_CCK 3264
#define QOS_TX2_TXOP_LIMIT_CCK cpu_to_le16(6016)
#define QOS_TX3_TXOP_LIMIT_CCK cpu_to_le16(3264)

#define QOS_TX0_TXOP_LIMIT_OFDM 0
#define QOS_TX1_TXOP_LIMIT_OFDM 0
#define QOS_TX2_TXOP_LIMIT_OFDM 3008
#define QOS_TX3_TXOP_LIMIT_OFDM 1504

#define DEF_TX0_CW_MIN_OFDM CW_MIN_OFDM
#define DEF_TX1_CW_MIN_OFDM CW_MIN_OFDM
#define DEF_TX2_CW_MIN_OFDM CW_MIN_OFDM
#define DEF_TX3_CW_MIN_OFDM CW_MIN_OFDM

#define DEF_TX0_CW_MIN_CCK CW_MIN_CCK
#define DEF_TX1_CW_MIN_CCK CW_MIN_CCK
#define DEF_TX2_CW_MIN_CCK CW_MIN_CCK
#define DEF_TX3_CW_MIN_CCK CW_MIN_CCK

#define DEF_TX0_CW_MAX_OFDM CW_MAX_OFDM
#define DEF_TX1_CW_MAX_OFDM CW_MAX_OFDM
#define DEF_TX2_CW_MAX_OFDM CW_MAX_OFDM
#define DEF_TX3_CW_MAX_OFDM CW_MAX_OFDM

#define DEF_TX0_CW_MAX_CCK CW_MAX_CCK
#define DEF_TX1_CW_MAX_CCK CW_MAX_CCK
#define DEF_TX2_CW_MAX_CCK CW_MAX_CCK
#define DEF_TX3_CW_MAX_CCK CW_MAX_CCK
#define QOS_TX2_TXOP_LIMIT_OFDM cpu_to_le16(3008)
#define QOS_TX3_TXOP_LIMIT_OFDM cpu_to_le16(1504)

#define DEF_TX0_CW_MIN_OFDM cpu_to_le16(CW_MIN_OFDM)
#define DEF_TX1_CW_MIN_OFDM cpu_to_le16(CW_MIN_OFDM)
#define DEF_TX2_CW_MIN_OFDM cpu_to_le16(CW_MIN_OFDM)
#define DEF_TX3_CW_MIN_OFDM cpu_to_le16(CW_MIN_OFDM)

#define DEF_TX0_CW_MIN_CCK cpu_to_le16(CW_MIN_CCK)
#define DEF_TX1_CW_MIN_CCK cpu_to_le16(CW_MIN_CCK)
#define DEF_TX2_CW_MIN_CCK cpu_to_le16(CW_MIN_CCK)
#define DEF_TX3_CW_MIN_CCK cpu_to_le16(CW_MIN_CCK)

#define DEF_TX0_CW_MAX_OFDM cpu_to_le16(CW_MAX_OFDM)
#define DEF_TX1_CW_MAX_OFDM cpu_to_le16(CW_MAX_OFDM)
#define DEF_TX2_CW_MAX_OFDM cpu_to_le16(CW_MAX_OFDM)
#define DEF_TX3_CW_MAX_OFDM cpu_to_le16(CW_MAX_OFDM)

#define DEF_TX0_CW_MAX_CCK cpu_to_le16(CW_MAX_CCK)
#define DEF_TX1_CW_MAX_CCK cpu_to_le16(CW_MAX_CCK)
#define DEF_TX2_CW_MAX_CCK cpu_to_le16(CW_MAX_CCK)
#define DEF_TX3_CW_MAX_CCK cpu_to_le16(CW_MAX_CCK)

#define DEF_TX0_AIFS 0
#define DEF_TX1_AIFS 0
Expand Down
6 changes: 3 additions & 3 deletions net/ieee80211/ieee80211_rx.c
Original file line number Diff line number Diff line change
Expand Up @@ -1032,16 +1032,16 @@ static int ieee80211_qos_convert_ac_to_parameters(struct
qos_param->aifs[i] -= (qos_param->aifs[i] < 2) ? 0 : 2;

cw_min = ac_params->ecw_min_max & 0x0F;
qos_param->cw_min[i] = (u16) ((1 << cw_min) - 1);
qos_param->cw_min[i] = cpu_to_le16((1 << cw_min) - 1);

cw_max = (ac_params->ecw_min_max & 0xF0) >> 4;
qos_param->cw_max[i] = (u16) ((1 << cw_max) - 1);
qos_param->cw_max[i] = cpu_to_le16((1 << cw_max) - 1);

qos_param->flag[i] =
(ac_params->aci_aifsn & 0x10) ? 0x01 : 0x00;

txop = le16_to_cpu(ac_params->tx_op_limit) * 32;
qos_param->tx_op_limit[i] = (u16) txop;
qos_param->tx_op_limit[i] = cpu_to_le16(txop);
}
return rc;
}
Expand Down

0 comments on commit 8fffc15

Please sign in to comment.