On Mon, Mar 29, 2010 at 04:32:25PM -0700, [email protected] wrote:
> On Mon, Mar 29, 2010 at 6:36 PM, Luis R. Rodriguez
> <[email protected]> wrote:
> > On Mon, Mar 29, 2010 at 03:58:37AM -0700, selvam wrote:
> >> Hi all,
> >> I have some queries in ath9k.
> >>
> >> In xmit.c, the variable 'bits_per_symbol' is used to store the number of 
> >> bits per OFDM symbol for various data rates.
> >>
> >> static u32 bits_per_symbol[][2] = {
> >>         /* 20MHz 40MHz */
> >>         {    26,   54 },     /*  0: BPSK */
> >>         {    52,  108 },     /*  1: QPSK 1/2 */
> >>         {    78,  162 },     /*  2: QPSK 3/4 */
> >>         {   104,  216 },     /*  3: 16-QAM 1/2 */
> >>         {   156,  324 },     /*  4: 16-QAM 3/4 */
> >>         {   208,  432 },     /*  5: 64-QAM 2/3 */
> >>         {   234,  486 },     /*  6: 64-QAM 3/4 */
> >>         {   260,  540 },     /*  7: 64-QAM 5/6 */
> >>         {    52,  108 },     /*  8: BPSK */
> >>         {   104,  216 },     /*  9: QPSK 1/2 */
> >>         {   156,  324 },     /* 10: QPSK 3/4 */
> >>         {   208,  432 },     /* 11: 16-QAM 1/2 */
> >>         {   312,  648 },     /* 12: 16-QAM 3/4 */
> >>         {   416,  864 },     /* 13: 64-QAM 2/3 */
> >>         {   468,  972 },     /* 14: 64-QAM 3/4 */
> >>         {   520, 1080 },     /* 15: 64-QAM 5/6 */
> >>
> >>
> >> 1) Is it possible to keep only the values of MCS 0 to MCS 7 and calculate 
> >> the rest on run time. so that we can save some amount of memory.
> >>
> >> For example, if MCS index is 8, then multiply the MCS 0 by 2, for MCS 9 
> >> mutiply MCS 1 by 2..
> >>
> >> Can we use in that way?. Is there any performance tradeoff in terms of 
> >> faster execution due to comparison?
> >>
> >>
> >> 2) Why don't we use static u16 instead of static u32 to declare this 
> >> variable? Is there any specific reason for using as u32?
> >>
> >> If my approach is improper, please excuse me.
> >
> > Try the patch and send it once tested and proved to work :)
> >
> >  Luis
> > _______________________________________________
> > ath9k-devel mailing list
> > [email protected]
> > https://lists.ath9k.org/mailman/listinfo/ath9k-devel
> >
> 
> The following patch works for me:
> Index: linux-2.6.33.1/drivers/net/wireless/ath/ath9k/xmit.c
> ===================================================================
> --- linux-2.6.33.1.orig/drivers/net/wireless/ath/ath9k/xmit.c 2010-03-30
> 01:24:25.906770962 +0200
> +++ linux-2.6.33.1/drivers/net/wireless/ath/ath9k/xmit.c      2010-03-30
> 01:29:11.602996328 +0200
> @@ -33,7 +33,7 @@
> 
>  #define OFDM_SIFS_TIME           16
> 
> -static u32 bits_per_symbol[][2] = {
> +static u16 bits_per_symbol[][2] = {
>       /* 20MHz 40MHz */
>       {    26,   54 },     /*  0: BPSK */
>       {    52,  108 },     /*  1: QPSK 1/2 */
> @@ -43,14 +43,6 @@
>       {   208,  432 },     /*  5: 64-QAM 2/3 */
>       {   234,  486 },     /*  6: 64-QAM 3/4 */
>       {   260,  540 },     /*  7: 64-QAM 5/6 */
> -     {    52,  108 },     /*  8: BPSK */
> -     {   104,  216 },     /*  9: QPSK 1/2 */
> -     {   156,  324 },     /* 10: QPSK 3/4 */
> -     {   208,  432 },     /* 11: 16-QAM 1/2 */
> -     {   312,  648 },     /* 12: 16-QAM 3/4 */
> -     {   416,  864 },     /* 13: 64-QAM 2/3 */
> -     {   468,  972 },     /* 14: 64-QAM 3/4 */
> -     {   520, 1080 },     /* 15: 64-QAM 5/6 */
>  };
> 
>  #define IS_HT_RATE(_rate)     ((_rate) & 0x80)
> @@ -598,7 +590,7 @@
>       if (nsymbols == 0)
>               nsymbols = 1;
> 
> -     nsymbits = bits_per_symbol[rix][width];
> +     nsymbits = bits_per_symbol[rix & 3][width] * ((rix >> 3) + 1);
>       minlen = (nsymbols * nsymbits) / BITS_PER_BYTE;
> 
>       if (frmlen < minlen) {
> @@ -1452,7 +1444,7 @@
> 
>       /* find number of symbols: PLCP + data */
>       nbits = (pktlen << 3) + OFDM_PLCP_BITS;
> -     nsymbits = bits_per_symbol[rix][width];
> +     nsymbits = bits_per_symbol[rix & 3][width] * ((rix >> 3) + 1);
>       nsymbols = (nbits + nsymbits - 1) / nsymbits;

What's the ko file size differene?

  Luis
_______________________________________________
ath9k-devel mailing list
[email protected]
https://lists.ath9k.org/mailman/listinfo/ath9k-devel

Reply via email to