|
@@ -90,7 +90,7 @@ static struct vnt_usb_send_context
|
|
if (!context->in_use) {
|
|
if (!context->in_use) {
|
|
context->in_use = true;
|
|
context->in_use = true;
|
|
memset(context->data, 0,
|
|
memset(context->data, 0,
|
|
- MAX_TOTAL_SIZE_WITH_ALL_HEADERS);
|
|
|
|
|
|
+ MAX_TOTAL_SIZE_WITH_ALL_HEADERS);
|
|
|
|
|
|
context->hdr = NULL;
|
|
context->hdr = NULL;
|
|
|
|
|
|
@@ -114,19 +114,19 @@ static __le16 vnt_time_stamp_off(struct vnt_private *priv, u16 rate)
|
|
}
|
|
}
|
|
|
|
|
|
static u32 vnt_get_rsvtime(struct vnt_private *priv, u8 pkt_type,
|
|
static u32 vnt_get_rsvtime(struct vnt_private *priv, u8 pkt_type,
|
|
- u32 frame_length, u16 rate, int need_ack)
|
|
|
|
|
|
+ u32 frame_length, u16 rate, int need_ack)
|
|
{
|
|
{
|
|
u32 data_time, ack_time;
|
|
u32 data_time, ack_time;
|
|
|
|
|
|
data_time = vnt_get_frame_time(priv->preamble_type, pkt_type,
|
|
data_time = vnt_get_frame_time(priv->preamble_type, pkt_type,
|
|
- frame_length, rate);
|
|
|
|
|
|
+ frame_length, rate);
|
|
|
|
|
|
if (pkt_type == PK_TYPE_11B)
|
|
if (pkt_type == PK_TYPE_11B)
|
|
ack_time = vnt_get_frame_time(priv->preamble_type, pkt_type,
|
|
ack_time = vnt_get_frame_time(priv->preamble_type, pkt_type,
|
|
- 14, (u16)priv->top_cck_basic_rate);
|
|
|
|
|
|
+ 14, (u16)priv->top_cck_basic_rate);
|
|
else
|
|
else
|
|
ack_time = vnt_get_frame_time(priv->preamble_type, pkt_type,
|
|
ack_time = vnt_get_frame_time(priv->preamble_type, pkt_type,
|
|
- 14, (u16)priv->top_ofdm_basic_rate);
|
|
|
|
|
|
+ 14, (u16)priv->top_ofdm_basic_rate);
|
|
|
|
|
|
if (need_ack)
|
|
if (need_ack)
|
|
return data_time + priv->sifs + ack_time;
|
|
return data_time + priv->sifs + ack_time;
|
|
@@ -135,21 +135,21 @@ static u32 vnt_get_rsvtime(struct vnt_private *priv, u8 pkt_type,
|
|
}
|
|
}
|
|
|
|
|
|
static __le16 vnt_rxtx_rsvtime_le16(struct vnt_private *priv, u8 pkt_type,
|
|
static __le16 vnt_rxtx_rsvtime_le16(struct vnt_private *priv, u8 pkt_type,
|
|
- u32 frame_length, u16 rate, int need_ack)
|
|
|
|
|
|
+ u32 frame_length, u16 rate, int need_ack)
|
|
{
|
|
{
|
|
return cpu_to_le16((u16)vnt_get_rsvtime(priv, pkt_type,
|
|
return cpu_to_le16((u16)vnt_get_rsvtime(priv, pkt_type,
|
|
frame_length, rate, need_ack));
|
|
frame_length, rate, need_ack));
|
|
}
|
|
}
|
|
|
|
|
|
static __le16 vnt_get_rtscts_rsvtime_le(struct vnt_private *priv,
|
|
static __le16 vnt_get_rtscts_rsvtime_le(struct vnt_private *priv,
|
|
- u8 rsv_type, u8 pkt_type, u32 frame_length, u16 current_rate)
|
|
|
|
|
|
+ u8 rsv_type, u8 pkt_type, u32 frame_length, u16 current_rate)
|
|
{
|
|
{
|
|
u32 rrv_time, rts_time, cts_time, ack_time, data_time;
|
|
u32 rrv_time, rts_time, cts_time, ack_time, data_time;
|
|
|
|
|
|
rrv_time = rts_time = cts_time = ack_time = data_time = 0;
|
|
rrv_time = rts_time = cts_time = ack_time = data_time = 0;
|
|
|
|
|
|
data_time = vnt_get_frame_time(priv->preamble_type, pkt_type,
|
|
data_time = vnt_get_frame_time(priv->preamble_type, pkt_type,
|
|
- frame_length, current_rate);
|
|
|
|
|
|
+ frame_length, current_rate);
|
|
|
|
|
|
if (rsv_type == 0) {
|
|
if (rsv_type == 0) {
|
|
rts_time = vnt_get_frame_time(priv->preamble_type,
|
|
rts_time = vnt_get_frame_time(priv->preamble_type,
|
|
@@ -160,19 +160,19 @@ static __le16 vnt_get_rtscts_rsvtime_le(struct vnt_private *priv,
|
|
rts_time = vnt_get_frame_time(priv->preamble_type,
|
|
rts_time = vnt_get_frame_time(priv->preamble_type,
|
|
pkt_type, 20, priv->top_cck_basic_rate);
|
|
pkt_type, 20, priv->top_cck_basic_rate);
|
|
cts_time = vnt_get_frame_time(priv->preamble_type, pkt_type,
|
|
cts_time = vnt_get_frame_time(priv->preamble_type, pkt_type,
|
|
- 14, priv->top_cck_basic_rate);
|
|
|
|
|
|
+ 14, priv->top_cck_basic_rate);
|
|
ack_time = vnt_get_frame_time(priv->preamble_type, pkt_type,
|
|
ack_time = vnt_get_frame_time(priv->preamble_type, pkt_type,
|
|
- 14, priv->top_ofdm_basic_rate);
|
|
|
|
|
|
+ 14, priv->top_ofdm_basic_rate);
|
|
} else if (rsv_type == 2) {
|
|
} else if (rsv_type == 2) {
|
|
rts_time = vnt_get_frame_time(priv->preamble_type, pkt_type,
|
|
rts_time = vnt_get_frame_time(priv->preamble_type, pkt_type,
|
|
- 20, priv->top_ofdm_basic_rate);
|
|
|
|
|
|
+ 20, priv->top_ofdm_basic_rate);
|
|
cts_time = ack_time = vnt_get_frame_time(priv->preamble_type,
|
|
cts_time = ack_time = vnt_get_frame_time(priv->preamble_type,
|
|
pkt_type, 14, priv->top_ofdm_basic_rate);
|
|
pkt_type, 14, priv->top_ofdm_basic_rate);
|
|
} else if (rsv_type == 3) {
|
|
} else if (rsv_type == 3) {
|
|
cts_time = vnt_get_frame_time(priv->preamble_type, pkt_type,
|
|
cts_time = vnt_get_frame_time(priv->preamble_type, pkt_type,
|
|
- 14, priv->top_cck_basic_rate);
|
|
|
|
|
|
+ 14, priv->top_cck_basic_rate);
|
|
ack_time = vnt_get_frame_time(priv->preamble_type, pkt_type,
|
|
ack_time = vnt_get_frame_time(priv->preamble_type, pkt_type,
|
|
- 14, priv->top_ofdm_basic_rate);
|
|
|
|
|
|
+ 14, priv->top_ofdm_basic_rate);
|
|
|
|
|
|
rrv_time = cts_time + ack_time + data_time + 2 * priv->sifs;
|
|
rrv_time = cts_time + ack_time + data_time + 2 * priv->sifs;
|
|
|
|
|
|
@@ -185,7 +185,7 @@ static __le16 vnt_get_rtscts_rsvtime_le(struct vnt_private *priv,
|
|
}
|
|
}
|
|
|
|
|
|
static __le16 vnt_get_duration_le(struct vnt_private *priv,
|
|
static __le16 vnt_get_duration_le(struct vnt_private *priv,
|
|
- u8 pkt_type, int need_ack)
|
|
|
|
|
|
+ u8 pkt_type, int need_ack)
|
|
{
|
|
{
|
|
u32 ack_time = 0;
|
|
u32 ack_time = 0;
|
|
|
|
|
|
@@ -220,17 +220,17 @@ static __le16 vnt_get_rtscts_duration_le(struct vnt_usb_send_context *context,
|
|
pkt_type, 14, priv->top_cck_basic_rate);
|
|
pkt_type, 14, priv->top_cck_basic_rate);
|
|
dur_time = cts_time + 2 * priv->sifs +
|
|
dur_time = cts_time + 2 * priv->sifs +
|
|
vnt_get_rsvtime(priv, pkt_type,
|
|
vnt_get_rsvtime(priv, pkt_type,
|
|
- frame_length, rate, need_ack);
|
|
|
|
|
|
+ frame_length, rate, need_ack);
|
|
break;
|
|
break;
|
|
|
|
|
|
case RTSDUR_AA:
|
|
case RTSDUR_AA:
|
|
case RTSDUR_AA_F0:
|
|
case RTSDUR_AA_F0:
|
|
case RTSDUR_AA_F1:
|
|
case RTSDUR_AA_F1:
|
|
cts_time = vnt_get_frame_time(priv->preamble_type,
|
|
cts_time = vnt_get_frame_time(priv->preamble_type,
|
|
- pkt_type, 14, priv->top_ofdm_basic_rate);
|
|
|
|
|
|
+ pkt_type, 14, priv->top_ofdm_basic_rate);
|
|
dur_time = cts_time + 2 * priv->sifs +
|
|
dur_time = cts_time + 2 * priv->sifs +
|
|
vnt_get_rsvtime(priv, pkt_type,
|
|
vnt_get_rsvtime(priv, pkt_type,
|
|
- frame_length, rate, need_ack);
|
|
|
|
|
|
+ frame_length, rate, need_ack);
|
|
break;
|
|
break;
|
|
|
|
|
|
case CTSDUR_BA:
|
|
case CTSDUR_BA:
|
|
@@ -410,7 +410,7 @@ static u16 vnt_rxtx_rts_g_head(struct vnt_usb_send_context *tx_context,
|
|
u16 current_rate = tx_context->tx_rate;
|
|
u16 current_rate = tx_context->tx_rate;
|
|
|
|
|
|
vnt_get_phy_field(priv, rts_frame_len, priv->top_cck_basic_rate,
|
|
vnt_get_phy_field(priv, rts_frame_len, priv->top_cck_basic_rate,
|
|
- PK_TYPE_11B, &buf->b);
|
|
|
|
|
|
+ PK_TYPE_11B, &buf->b);
|
|
vnt_get_phy_field(priv, rts_frame_len, priv->top_ofdm_basic_rate,
|
|
vnt_get_phy_field(priv, rts_frame_len, priv->top_ofdm_basic_rate,
|
|
tx_context->pkt_type, &buf->a);
|
|
tx_context->pkt_type, &buf->a);
|
|
|
|
|
|
@@ -437,7 +437,7 @@ static u16 vnt_rxtx_rts_g_fb_head(struct vnt_usb_send_context *tx_context,
|
|
u16 rts_frame_len = 20;
|
|
u16 rts_frame_len = 20;
|
|
|
|
|
|
vnt_get_phy_field(priv, rts_frame_len, priv->top_cck_basic_rate,
|
|
vnt_get_phy_field(priv, rts_frame_len, priv->top_cck_basic_rate,
|
|
- PK_TYPE_11B, &buf->b);
|
|
|
|
|
|
+ PK_TYPE_11B, &buf->b);
|
|
vnt_get_phy_field(priv, rts_frame_len, priv->top_ofdm_basic_rate,
|
|
vnt_get_phy_field(priv, rts_frame_len, priv->top_ofdm_basic_rate,
|
|
tx_context->pkt_type, &buf->a);
|
|
tx_context->pkt_type, &buf->a);
|
|
|
|
|
|
@@ -683,9 +683,9 @@ static u16 vnt_rxtx_ab(struct vnt_usb_send_context *tx_context,
|
|
}
|
|
}
|
|
|
|
|
|
static u16 vnt_generate_tx_parameter(struct vnt_usb_send_context *tx_context,
|
|
static u16 vnt_generate_tx_parameter(struct vnt_usb_send_context *tx_context,
|
|
- struct vnt_tx_buffer *tx_buffer,
|
|
|
|
- struct vnt_mic_hdr **mic_hdr, u32 need_mic,
|
|
|
|
- bool need_rts)
|
|
|
|
|
|
+ struct vnt_tx_buffer *tx_buffer,
|
|
|
|
+ struct vnt_mic_hdr **mic_hdr, u32 need_mic,
|
|
|
|
+ bool need_rts)
|
|
{
|
|
{
|
|
|
|
|
|
if (tx_context->pkt_type == PK_TYPE_11GB ||
|
|
if (tx_context->pkt_type == PK_TYPE_11GB ||
|
|
@@ -732,7 +732,7 @@ static void vnt_fill_txkey(struct vnt_usb_send_context *tx_context,
|
|
if (tx_key->keylen == WLAN_KEY_LEN_WEP40) {
|
|
if (tx_key->keylen == WLAN_KEY_LEN_WEP40) {
|
|
memcpy(key_buffer + 8, iv, 3);
|
|
memcpy(key_buffer + 8, iv, 3);
|
|
memcpy(key_buffer + 11,
|
|
memcpy(key_buffer + 11,
|
|
- tx_key->key, WLAN_KEY_LEN_WEP40);
|
|
|
|
|
|
+ tx_key->key, WLAN_KEY_LEN_WEP40);
|
|
}
|
|
}
|
|
|
|
|
|
break;
|
|
break;
|
|
@@ -1024,11 +1024,11 @@ static int vnt_beacon_xmit(struct vnt_private *priv,
|
|
|
|
|
|
/* Get SignalField,ServiceField,Length */
|
|
/* Get SignalField,ServiceField,Length */
|
|
vnt_get_phy_field(priv, frame_size, current_rate,
|
|
vnt_get_phy_field(priv, frame_size, current_rate,
|
|
- PK_TYPE_11A, &short_head->ab);
|
|
|
|
|
|
+ PK_TYPE_11A, &short_head->ab);
|
|
|
|
|
|
/* Get Duration and TimeStampOff */
|
|
/* Get Duration and TimeStampOff */
|
|
short_head->duration = vnt_get_duration_le(priv,
|
|
short_head->duration = vnt_get_duration_le(priv,
|
|
- PK_TYPE_11A, false);
|
|
|
|
|
|
+ PK_TYPE_11A, false);
|
|
short_head->time_stamp_off =
|
|
short_head->time_stamp_off =
|
|
vnt_time_stamp_off(priv, current_rate);
|
|
vnt_time_stamp_off(priv, current_rate);
|
|
} else {
|
|
} else {
|
|
@@ -1037,7 +1037,7 @@ static int vnt_beacon_xmit(struct vnt_private *priv,
|
|
|
|
|
|
/* Get SignalField,ServiceField,Length */
|
|
/* Get SignalField,ServiceField,Length */
|
|
vnt_get_phy_field(priv, frame_size, current_rate,
|
|
vnt_get_phy_field(priv, frame_size, current_rate,
|
|
- PK_TYPE_11B, &short_head->ab);
|
|
|
|
|
|
+ PK_TYPE_11B, &short_head->ab);
|
|
|
|
|
|
/* Get Duration and TimeStampOff */
|
|
/* Get Duration and TimeStampOff */
|
|
short_head->duration = vnt_get_duration_le(priv,
|
|
short_head->duration = vnt_get_duration_le(priv,
|
|
@@ -1101,7 +1101,7 @@ int vnt_beacon_make(struct vnt_private *priv, struct ieee80211_vif *vif)
|
|
}
|
|
}
|
|
|
|
|
|
int vnt_beacon_enable(struct vnt_private *priv, struct ieee80211_vif *vif,
|
|
int vnt_beacon_enable(struct vnt_private *priv, struct ieee80211_vif *vif,
|
|
- struct ieee80211_bss_conf *conf)
|
|
|
|
|
|
+ struct ieee80211_bss_conf *conf)
|
|
{
|
|
{
|
|
vnt_mac_reg_bits_off(priv, MAC_REG_TCR, TCR_AUTOBCNTX);
|
|
vnt_mac_reg_bits_off(priv, MAC_REG_TCR, TCR_AUTOBCNTX);
|
|
|
|
|