Commit 893ce939 authored by John Whitmore's avatar John Whitmore Committed by Greg Kroah-Hartman

staging:rtl8192u: Remove union from qos_tsinfo - Style

The union is never used as a union but only as a bitfield struct.
One side of the union (u8 charData[3];) Only seems to be present to
ensure that the structures size is 3 bytes in length. That length, of
the structure is dictated by the largest element of the union, so the
byte array only dictates size if it's the largest element of the union.
The byte array and union add nothing.

The union has therefore been removed and the structure and access to
the structure simplified.

Additionally since one of the bitfield variables (ucAccessPolicy)
spans a byte boundary the base type of the bitfield has been changed
from u8 to u16. Compilers have probably moved on from having an issue
with this, call it OCD.

The changes are coding style in nature and should not impact runtime
code execution.
Signed-off-by: default avatarJohn Whitmore <johnfwhitmore@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent ab9a0665
...@@ -626,7 +626,7 @@ TsInitAddBA( ...@@ -626,7 +626,7 @@ TsInitAddBA(
pBA->DialogToken++; // DialogToken: Only keep the latest dialog token pBA->DialogToken++; // DialogToken: Only keep the latest dialog token
pBA->BaParamSet.field.AMSDU_Support = 0; // Do not support A-MSDU with A-MPDU now!! pBA->BaParamSet.field.AMSDU_Support = 0; // Do not support A-MSDU with A-MPDU now!!
pBA->BaParamSet.field.BAPolicy = Policy; // Policy: Delayed or Immediate pBA->BaParamSet.field.BAPolicy = Policy; // Policy: Delayed or Immediate
pBA->BaParamSet.field.TID = pTS->ts_common_info.t_spec.f.TSInfo.field.ucTSID; // TID pBA->BaParamSet.field.TID = pTS->ts_common_info.t_spec.f.TSInfo.ucTSID; // TID
// BufferSize: This need to be set according to A-MPDU vector // BufferSize: This need to be set according to A-MPDU vector
pBA->BaParamSet.field.BufferSize = 32; // BufferSize: This need to be set according to A-MPDU vector pBA->BaParamSet.field.BufferSize = 32; // BufferSize: This need to be set according to A-MPDU vector
pBA->BaTimeoutValue = 0; // Timeout value: Set 0 to disable Timer pBA->BaTimeoutValue = 0; // Timeout value: Set 0 to disable Timer
......
...@@ -26,26 +26,24 @@ enum direction_value { ...@@ -26,26 +26,24 @@ enum direction_value {
}; };
// /*
// TS Info field in WMM TSPEC Element. * TS Info field in WMM TSPEC Element.
// Ref: * Ref:
// 1. WMM spec 2.2.11: WME TSPEC Element, p.18. * 1. WMM spec 2.2.11: WME TSPEC Element, p.18.
// 2. 8185 QoS code: QOS_TSINFO [def. in QoS_mp.h] * 2. 8185 QoS code: QOS_TSINFO [def. in QoS_mp.h]
// * Note: sizeof 3 Bytes
union qos_tsinfo { */
u8 charData[3]; struct qos_tsinfo {
struct { u16 ucTrafficType:1; //WMM is reserved
u8 ucTrafficType:1; //WMM is reserved u16 ucTSID:4;
u8 ucTSID:4; u16 ucDirection:2;
u8 ucDirection:2; u16 ucAccessPolicy:2; //WMM: bit8=0, bit7=1
u8 ucAccessPolicy:2; //WMM: bit8=0, bit7=1 u16 ucAggregation:1; //WMM is reserved
u8 ucAggregation:1; //WMM is reserved u16 ucPSB:1; //WMMSA is APSD
u8 ucPSB:1; //WMMSA is APSD u16 ucUP:3;
u8 ucUP:3; u16 ucTSInfoAckPolicy:2; //WMM is reserved
u8 ucTSInfoAckPolicy:2; //WMM is reserved
u8 ucSchedule:1; //WMM is reserved u8 ucSchedule:1; //WMM is reserved
u8 ucReserved:7; u8 ucReserved:7;
} field;
}; };
// //
...@@ -56,7 +54,7 @@ typedef union _TSPEC_BODY { ...@@ -56,7 +54,7 @@ typedef union _TSPEC_BODY {
u8 charData[55]; u8 charData[55];
struct { struct {
union qos_tsinfo TSInfo; //u8 TSInfo[3]; struct qos_tsinfo TSInfo; //u8 TSInfo[3];
u16 NominalMSDUsize; u16 NominalMSDUsize;
u16 MaxMSDUsize; u16 MaxMSDUsize;
u32 MinServiceItv; u32 MinServiceItv;
......
...@@ -246,10 +246,10 @@ static struct ts_common_info *SearchAdmitTRStream(struct ieee80211_device *ieee, ...@@ -246,10 +246,10 @@ static struct ts_common_info *SearchAdmitTRStream(struct ieee80211_device *ieee,
if (!search_dir[dir]) if (!search_dir[dir])
continue; continue;
list_for_each_entry(pRet, psearch_list, list){ list_for_each_entry(pRet, psearch_list, list){
// IEEE80211_DEBUG(IEEE80211_DL_TS, "ADD:%pM, TID:%d, dir:%d\n", pRet->Addr, pRet->TSpec.f.TSInfo.field.ucTSID, pRet->TSpec.f.TSInfo.field.ucDirection); // IEEE80211_DEBUG(IEEE80211_DL_TS, "ADD:%pM, TID:%d, dir:%d\n", pRet->Addr, pRet->TSpec.f.TSInfo.ucTSID, pRet->TSpec.f.TSInfo.ucDirection);
if (memcmp(pRet->addr, Addr, 6) == 0) if (memcmp(pRet->addr, Addr, 6) == 0)
if (pRet->t_spec.f.TSInfo.field.ucTSID == TID) if (pRet->t_spec.f.TSInfo.ucTSID == TID)
if(pRet->t_spec.f.TSInfo.field.ucDirection == dir) { if(pRet->t_spec.f.TSInfo.ucDirection == dir) {
// printk("Bingo! got it\n"); // printk("Bingo! got it\n");
break; break;
} }
...@@ -355,7 +355,7 @@ bool GetTs( ...@@ -355,7 +355,7 @@ bool GetTs(
// For HCCA or WMMSA, TS cannot be addmit without negotiation. // For HCCA or WMMSA, TS cannot be addmit without negotiation.
// //
TSPEC_BODY TSpec; TSPEC_BODY TSpec;
union qos_tsinfo *pTSInfo = &TSpec.f.TSInfo; struct qos_tsinfo *pTSInfo = &TSpec.f.TSInfo;
struct list_head *pUnusedList = struct list_head *pUnusedList =
(TxRxSelect == TX_DIR)? (TxRxSelect == TX_DIR)?
(&ieee->Tx_TS_Unused_List): (&ieee->Tx_TS_Unused_List):
...@@ -383,15 +383,15 @@ bool GetTs( ...@@ -383,15 +383,15 @@ bool GetTs(
IEEE80211_DEBUG(IEEE80211_DL_TS, "to init current TS, UP:%d, Dir:%d, addr:%pM\n", UP, Dir, Addr); IEEE80211_DEBUG(IEEE80211_DL_TS, "to init current TS, UP:%d, Dir:%d, addr:%pM\n", UP, Dir, Addr);
// Prepare TS Info releated field // Prepare TS Info releated field
pTSInfo->field.ucTrafficType = 0; // Traffic type: WMM is reserved in this field pTSInfo->ucTrafficType = 0; // Traffic type: WMM is reserved in this field
pTSInfo->field.ucTSID = UP; // TSID pTSInfo->ucTSID = UP; // TSID
pTSInfo->field.ucDirection = Dir; // Direction: if there is DirectLink, this need additional consideration. pTSInfo->ucDirection = Dir; // Direction: if there is DirectLink, this need additional consideration.
pTSInfo->field.ucAccessPolicy = 1; // Access policy pTSInfo->ucAccessPolicy = 1; // Access policy
pTSInfo->field.ucAggregation = 0; // Aggregation pTSInfo->ucAggregation = 0; // Aggregation
pTSInfo->field.ucPSB = 0; // Aggregation pTSInfo->ucPSB = 0; // Aggregation
pTSInfo->field.ucUP = UP; // User priority pTSInfo->ucUP = UP; // User priority
pTSInfo->field.ucTSInfoAckPolicy = 0; // Ack policy pTSInfo->ucTSInfoAckPolicy = 0; // Ack policy
pTSInfo->field.ucSchedule = 0; // Schedule pTSInfo->ucSchedule = 0; // Schedule
MakeTSEntry(*ppTS, Addr, &TSpec, NULL, 0, 0); MakeTSEntry(*ppTS, Addr, &TSpec, NULL, 0, 0);
AdmitTS(ieee, *ppTS, 0); AdmitTS(ieee, *ppTS, 0);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment