📄 cmm_info.c
字号:
DBGPRINT(RT_DEBUG_TRACE, ("Set_HtOpMode_Proc::(HtOpMode=%d)\n",pAd->CommonCfg.RegTransmitSetting.field.HTMODE)); return TRUE;} INT Set_HtStbc_Proc( IN PRTMP_ADAPTER pAd, IN PUCHAR arg){ ULONG Value; Value = simple_strtol(arg, 0, 10); if (Value == STBC_USE) pAd->CommonCfg.RegTransmitSetting.field.STBC = STBC_USE; else if ( Value == STBC_NONE ) pAd->CommonCfg.RegTransmitSetting.field.STBC = STBC_NONE; else return FALSE; //Invalid argument SetCommonHT(pAd); DBGPRINT(RT_DEBUG_TRACE, ("Set_Stbc_Proc::(HtStbc=%d)\n",pAd->CommonCfg.RegTransmitSetting.field.STBC)); return TRUE; }INT Set_HtHtc_Proc( IN PRTMP_ADAPTER pAd, IN PUCHAR arg){ ULONG Value; Value = simple_strtol(arg, 0, 10); if (Value == 0) pAd->HTCEnable = FALSE; else if ( Value ==1 ) pAd->HTCEnable = TRUE; else return FALSE; //Invalid argument DBGPRINT(RT_DEBUG_TRACE, ("Set_HtHtc_Proc::(HtHtc=%d)\n",pAd->HTCEnable)); return TRUE; } INT Set_HtExtcha_Proc( IN PRTMP_ADAPTER pAd, IN PUCHAR arg){ ULONG Value; Value = simple_strtol(arg, 0, 10); if (Value == 0) pAd->CommonCfg.RegTransmitSetting.field.EXTCHA = EXTCHA_BELOW; else if ( Value ==1 ) pAd->CommonCfg.RegTransmitSetting.field.EXTCHA = EXTCHA_ABOVE; else return FALSE; //Invalid argument SetCommonHT(pAd); DBGPRINT(RT_DEBUG_TRACE, ("Set_HtExtcha_Proc::(HtExtcha=%d)\n",pAd->CommonCfg.RegTransmitSetting.field.EXTCHA)); return TRUE; }INT Set_HtMpduDensity_Proc( IN PRTMP_ADAPTER pAd, IN PUCHAR arg){ ULONG Value; Value = simple_strtol(arg, 0, 10); if (Value <=7 && Value >= 0) pAd->CommonCfg.BACapability.field.MpduDensity = Value; else pAd->CommonCfg.BACapability.field.MpduDensity = 4; SetCommonHT(pAd); DBGPRINT(RT_DEBUG_TRACE, ("Set_HtMpduDensity_Proc::(HtMpduDensity=%d)\n",pAd->CommonCfg.BACapability.field.MpduDensity)); return TRUE; }INT Set_HtBaWinSize_Proc( IN PRTMP_ADAPTER pAd, IN PUCHAR arg){ ULONG Value; Value = simple_strtol(arg, 0, 10); Value = 64; if (Value >=1 && Value <= 64) { pAd->CommonCfg.REGBACapability.field.RxBAWinLimit = Value; pAd->CommonCfg.BACapability.field.RxBAWinLimit = Value; } else { pAd->CommonCfg.REGBACapability.field.RxBAWinLimit = 64; pAd->CommonCfg.BACapability.field.RxBAWinLimit = 64; } SetCommonHT(pAd); DBGPRINT(RT_DEBUG_TRACE, ("Set_HtBaWinSize_Proc::(HtBaWinSize=%d)\n",pAd->CommonCfg.BACapability.field.RxBAWinLimit)); return TRUE; } INT Set_HtRdg_Proc( IN PRTMP_ADAPTER pAd, IN PUCHAR arg){ ULONG Value; Value = simple_strtol(arg, 0, 10); if (Value == 0) pAd->CommonCfg.bRdg = FALSE; else if ( Value ==1 ) { pAd->HTCEnable = TRUE; pAd->CommonCfg.bRdg = TRUE; } else return FALSE; //Invalid argument SetCommonHT(pAd); DBGPRINT(RT_DEBUG_TRACE, ("Set_HtRdg_Proc::(HtRdg=%d)\n",pAd->CommonCfg.bRdg)); return TRUE; } INT Set_HtLinkAdapt_Proc( IN PRTMP_ADAPTER pAd, IN PUCHAR arg){ ULONG Value; Value = simple_strtol(arg, 0, 10); if (Value == 0) pAd->bLinkAdapt = FALSE; else if ( Value ==1 ) { pAd->HTCEnable = TRUE; pAd->bLinkAdapt = TRUE; } else return FALSE; //Invalid argument DBGPRINT(RT_DEBUG_TRACE, ("Set_HtLinkAdapt_Proc::(HtLinkAdapt=%d)\n",pAd->bLinkAdapt)); return TRUE; } INT Set_HtAmsdu_Proc( IN PRTMP_ADAPTER pAd, IN PUCHAR arg){ ULONG Value; Value = simple_strtol(arg, 0, 10); if (Value == 0) pAd->CommonCfg.BACapability.field.AmsduEnable = FALSE; else if ( Value == 1 ) pAd->CommonCfg.BACapability.field.AmsduEnable = TRUE; else return FALSE; //Invalid argument SetCommonHT(pAd); DBGPRINT(RT_DEBUG_TRACE, ("Set_HtAmsdu_Proc::(HtAmsdu=%d)\n",pAd->CommonCfg.BACapability.field.AmsduEnable)); return TRUE; } INT Set_HtAutoBa_Proc( IN PRTMP_ADAPTER pAd, IN PUCHAR arg){ ULONG Value; Value = simple_strtol(arg, 0, 10); if (Value == 0) pAd->CommonCfg.BACapability.field.AutoBA = FALSE; else if (Value == 1) pAd->CommonCfg.BACapability.field.AutoBA = TRUE; else return FALSE; //Invalid argument pAd->CommonCfg.REGBACapability.field.AutoBA = pAd->CommonCfg.BACapability.field.AutoBA; SetCommonHT(pAd); DBGPRINT(RT_DEBUG_TRACE, ("Set_HtAutoBa_Proc::(HtAutoBa=%d)\n",pAd->CommonCfg.BACapability.field.AutoBA)); return TRUE; } INT Set_HtProtect_Proc( IN PRTMP_ADAPTER pAd, IN PUCHAR arg){ ULONG Value; Value = simple_strtol(arg, 0, 10); if (Value == 0) pAd->CommonCfg.bHTProtect = FALSE; else if (Value == 1) pAd->CommonCfg.bHTProtect = TRUE; else return FALSE; //Invalid argument DBGPRINT(RT_DEBUG_TRACE, ("Set_HtProtect_Proc::(HtProtect=%d)\n",pAd->CommonCfg.bHTProtect)); return TRUE;}INT Set_SendPSMPAction_Proc( IN PRTMP_ADAPTER pAd, IN PUCHAR arg){ UCHAR mac[6], mode; char *token, sepValue[] = ":", DASH = '-'; INT i; MAC_TABLE_ENTRY *pEntry; //printk("\n%s\n", arg);/* The BARecTearDown inupt string format should be xx:xx:xx:xx:xx:xx-d, =>The six 2 digit hex-decimal number previous are the Mac address, =>The seventh decimal number is the mode value.*/ if(strlen(arg) < 19) //Mac address acceptable format 01:02:03:04:05:06 length 17 plus the "-" and mode value in decimal format. return FALSE; token = strchr(arg, DASH); if ((token != NULL) && (strlen(token)>1)) { mode = simple_strtol((token+1), 0, 10); if (mode > MMPS_ENABLE) return FALSE; *token = '\0'; for (i = 0, token = rstrtok(arg, &sepValue[0]); token; token = rstrtok(NULL, &sepValue[0]), i++) { if((strlen(token) != 2) || (!isxdigit(*token)) || (!isxdigit(*(token+1)))) return FALSE; AtoH(token, (PUCHAR)(&mac[i]), 1); } if(i != 6) return FALSE; printk("\n%02x:%02x:%02x:%02x:%02x:%02x-%02x", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5], mode); pEntry = MacTableLookup(pAd, mac); if (pEntry) { printk("\nSendPSMPAction MIPS mode = %d\n", mode); SendPSMPAction(pAd, pEntry->Aid, mode); } return TRUE; } return FALSE;}INT Set_HtMIMOPSmode_Proc( IN PRTMP_ADAPTER pAd, IN PUCHAR arg){ ULONG Value; Value = simple_strtol(arg, 0, 10); if (Value <=3 && Value >= 0) pAd->CommonCfg.BACapability.field.MMPSmode = Value; else pAd->CommonCfg.BACapability.field.MMPSmode = 3; SetCommonHT(pAd); DBGPRINT(RT_DEBUG_TRACE, ("Set_HtMIMOPSmode_Proc::(MIMOPS mode=%d)\n",pAd->CommonCfg.BACapability.field.MMPSmode)); return TRUE; }INT Set_ForceShortGI_Proc( IN PRTMP_ADAPTER pAd, IN PUCHAR arg){ ULONG Value; Value = simple_strtol(arg, 0, 10); if (Value == 0) pAd->WIFItestbed.bShortGI = FALSE; else if (Value == 1) pAd->WIFItestbed.bShortGI = TRUE; else return FALSE; //Invalid argument SetCommonHT(pAd); DBGPRINT(RT_DEBUG_TRACE, ("Set_ForceShortGI_Proc::(ForceShortGI=%d)\n", pAd->WIFItestbed.bShortGI)); return TRUE;}INT Set_ForceGF_Proc( IN PRTMP_ADAPTER pAd, IN PUCHAR arg){ ULONG Value; Value = simple_strtol(arg, 0, 10); if (Value == 0) pAd->WIFItestbed.bGreenField = FALSE; else if (Value == 1) pAd->WIFItestbed.bGreenField = TRUE; else return FALSE; //Invalid argument SetCommonHT(pAd); DBGPRINT(RT_DEBUG_TRACE, ("Set_ForceGF_Proc::(ForceGF=%d)\n", pAd->WIFItestbed.bGreenField)); return TRUE;}INT Set_HtMimoPs_Proc( IN PRTMP_ADAPTER pAd, IN PUCHAR arg){ ULONG Value; Value = simple_strtol(arg, 0, 10); if (Value == 0) pAd->CommonCfg.bMIMOPSEnable = FALSE; else if (Value == 1) pAd->CommonCfg.bMIMOPSEnable = TRUE; else return FALSE; //Invalid argument DBGPRINT(RT_DEBUG_TRACE, ("Set_HtMimoPs_Proc::(HtMimoPs=%d)\n",pAd->CommonCfg.bMIMOPSEnable)); return TRUE;}#endif // UCOS //INT SetCommonHT( IN PRTMP_ADAPTER pAd){ OID_SET_HT_PHYMODE SetHT; SetHT.PhyMode = pAd->CommonCfg.PhyMode; SetHT.TransmitNo = ((UCHAR)pAd->Antenna.field.TxPath); SetHT.HtMode = (UCHAR)pAd->CommonCfg.RegTransmitSetting.field.HTMODE; SetHT.ExtOffset = (UCHAR)pAd->CommonCfg.RegTransmitSetting.field.EXTCHA; SetHT.MCS = (UCHAR)pAd->CommonCfg.RegTransmitSetting.field.MCS; SetHT.BW = (UCHAR)pAd->CommonCfg.RegTransmitSetting.field.BW; SetHT.STBC = (UCHAR)pAd->CommonCfg.RegTransmitSetting.field.STBC; SetHT.SHORTGI = (UCHAR)pAd->CommonCfg.RegTransmitSetting.field.ShortGI; if ((pAd->CommonCfg.PhyMode >= PHY_11ABGN_MIXED)) { // Check the MCS validity in 1S if ((SetHT.TransmitNo == 1) && ((SetHT.MCS >= MCS_8) && (SetHT.MCS <= MCS_15))) { DBGPRINT(RT_DEBUG_TRACE, ("SetCommonHT: MCS(%d) is invalid in 1S, reset it as MCS_7\n", SetHT.MCS)); pAd->CommonCfg.RegTransmitSetting.field.MCS = MCS_7; SetHT.MCS = (UCHAR)pAd->CommonCfg.RegTransmitSetting.field.MCS; } if ((SetHT.BW == BW_40) && (SetHT.MCS == MCS_32)) { DBGPRINT(RT_DEBUG_TRACE, ("SetCommonHT: MCS_32 is only supported in 40-MHz, reset it as MCS_0\n")); pAd->CommonCfg.RegTransmitSetting.field.MCS = MCS_0; SetHT.MCS = (UCHAR)pAd->CommonCfg.RegTransmitSetting.field.MCS; } RTMPSetHT(pAd, &SetHT); } return TRUE;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -