All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jakub Sitnicki <jsitnicki@gmail.com>
To: Dan Carpenter <dan.carpenter@oracle.com>
Cc: Larry.Finger@lwfinger.net, linux-wireless@vger.kernel.org
Subject: Re: rtlwifi: rtl8723be: Add new driver
Date: Mon, 19 Oct 2015 20:26:44 +0200	[thread overview]
Message-ID: <87eggqemu3.fsf@frog.home> (raw)
In-Reply-To: <20151019151045.GA12293@mwanda>

Hi Dan,

On Mon, Oct 19, 2015 at 05:10 PM CEST, Dan Carpenter <dan.carpenter@oracle.com> wrote:
> The patch a619d1abe20c: "rtlwifi: rtl8723be: Add new driver" from Feb
> 28, 2014, leads to the following static checker warning:
>
> 	drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c:1802 _rtl8723be_read_power_value_fromprom()
> 	warn: why is the last element skipped?
>
> drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c

[snip]

>   1794          for (path = 0; path < MAX_RF_PATH; path++) {
>   1795                  /*2.4G default value*/
>   1796                  for (group = 0; group < MAX_CHNL_GROUP_24G; group++) {
>                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
> Here we go to the end.
>
>   1797                          pw2g->index_cck_base[path][group] = hwinfo[addr++];
>   1798                          if (pw2g->index_cck_base[path][group] == 0xFF)
>   1799                                  pw2g->index_cck_base[path][group] = 0x2D;
>   1800  
>   1801                  }
>   1802                  for (group = 0; group < MAX_CHNL_GROUP_24G - 1; group++) {
>                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> Here we skip the last element.  So far as I can see this looks like a
> mistake but I don't know the code well.
>
>   1803                          pw2g->index_bw40_base[path][group] = hwinfo[addr++];
>   1804                          if (pw2g->index_bw40_base[path][group] == 0xFF)
>   1805                                  pw2g->index_bw40_base[path][group] = 0x2D;
>   1806                  }

I have seen the same thing in rtlwifi/rtl8188ee and staging/rtl8188eu
drivers (see read_power_value_fromprom() and
Hal_ReadPowerValueFromPROM_8188E(), respectively), and I've asked myself
exactly the same question before so I'll share my thoughts.

Please take it all with a grain of salt, I'm new at this.

The rtl8188e[eu] drivers divide 2.4 GHz channels into six sets
(MAX_CHNL_GROUP_24G == 6) as far as the TX power goes (see
_rtl88e_get_chnl_group(), Hal_GetChnlGroup88E()):

group 0: 1-2
group 1: 3-5
group 2: 6-8
group 3: 9-11
group 4: 12-13
group 5: 14

As you see the last group is special, it's only channel 14, which
applies only to 802.11b in Japan, AFAIK.  The loop in question
initializes the index_bw40_base[] array, which name suggests that it is
related to 40 MHz channel bandwidth - 802.11n only then.  That would
explain the `MAX_CHNL_GROUP_24G - 1' expression.

This is the case for rtl8188e[eu].  However, rtl8723be driver divides
2.4 GHz channels into just three groups - 0: 1-3, 1: 4-9, and 2: 10-14
(_rtl8723be_get_chnl_group()).  In that regard it is similar to
rtlwifi/rtl8192cu and staging/rtl8723au (rtl92c_get_chnl_group(),
Hal_GetChnlGroup()).

That would mean that the index_bw40_base[3..5] range in this
one-size-fits all array is never accessed by the rtl8723be driver.

That's all I know, beyond that point I tell myself that it's a driver
for a chip with no datasheet so questions without answers are part of
the deal ;-)

Cheers,
Jakub

  reply	other threads:[~2015-10-19 18:26 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-19 15:10 rtlwifi: rtl8723be: Add new driver Dan Carpenter
2015-10-19 18:26 ` Jakub Sitnicki [this message]
  -- strict thread matches above, loose matches on Subject: below --
2014-03-06 21:54 Dan Carpenter
2014-03-09  6:00 ` Larry Finger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87eggqemu3.fsf@frog.home \
    --to=jsitnicki@gmail.com \
    --cc=Larry.Finger@lwfinger.net \
    --cc=dan.carpenter@oracle.com \
    --cc=linux-wireless@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.