Re: [PATCH 2/3] staging: rtl8188eu: bugfix: correct channels range is set in Hal_ReadTxPowerInfo88E

From: Ivan Safonov
Date: Tue Oct 13 2015 - 11:31:09 EST


On 10/13/2015 10:47 AM, Greg Kroah-Hartman wrote:
On Sat, Oct 10, 2015 at 01:27:00PM +0700, Ivan Safonov wrote:
Correct channels range is 1..14 (numbering from 1) but not 0..13.

Have you tested this?

I have not tested it.

Why?

From condition

if (chnl <= 14) {
bIn24G = true;

it shows that the highest number of channels at a frequency of 2.4 GHz is 14.
And first comment tells us that only 2 channels has the numbers <3, which means that the numbering starts from 1:

static u8 Hal_GetChnlGroup88E(u8 chnl, u8 *pGroup)
{
u8 bIn24G = true;

if (chnl <= 14) {
bIn24G = true;

if (chnl < 3) /* Channel 1-2 */
*pGroup = 0;
else if (chnl < 6) /* Channel 3-5 */
*pGroup = 1;
else if (chnl < 9) /* Channel 6-8 */
*pGroup = 2;
else if (chnl < 12) /* Channel 9-11 */
*pGroup = 3;
else if (chnl < 14) /* Channel 12-13 */
*pGroup = 4;
else if (chnl == 14) /* Channel 14 */
*pGroup = 5;
} else {
... // 5 GHz groups


Hal_ReadTxPowerInfo88E function raises questions in this location(->):

if (bIn24G) {
pHalData->Index24G_CCK_Base[rfPath][ch] = pwrInfo24G.IndexCCK_Base[rfPath][group];
-> if (ch == 14)
-> pHalData->Index24G_BW40_Base[rfPath][ch] = pwrInfo24G.IndexBW40_Base[rfPath][4];
-> else
-> pHalData->Index24G_BW40_Base[rfPath][ch] = pwrInfo24G.IndexBW40_Base[rfPath][group];
}


If channel range is 0..(CHANNEL_MAX_NUMBER - 1) code is dead (CHANNEL_MAX_NUMBER = 14):

But if channel range is 1..14 will the right to remove branching if (ch == 14) in Hal_ReadTxPowerInfo88E, changing Hal_GetChnlGroup88E so that when chnl == 14 itreturned 4?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/