From: Jes Sorensen <Jes.Sorensen@redhat.com>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: linux-wireless@vger.kernel.org, kvalo@codeaurora.org,
Larry.Finger@lwfinger.net
Subject: Re: [PATCH 1/1] New driver: rtl8xxxu (mac80211)
Date: Mon, 31 Aug 2015 19:42:02 -0400 [thread overview]
Message-ID: <wrfjmvx73u0l.fsf@redhat.com> (raw)
In-Reply-To: <1441032517.13980.21.camel@sipsolutions.net> (Johannes Berg's message of "Mon, 31 Aug 2015 16:48:37 +0200")
Johannes Berg <johannes@sipsolutions.net> writes:
>> + * This driver was written as a replacement for the vendor provided
>> + * rtl8723au driver. As the Realtek 8xxx chips are very similar in
>> + * their programming interface, I have started adding support for
>> + * additional 8xxx chips like the 8192cu, 8188cus, etc.
>
> That last sentence here seems like it might be more suitable in the
> commit message then here - you'll surely forget to update it ;)
>
>> +> > /*
>> +> > * MBOX ready?
>> +> > */
>> +> > retry = 100;
>> +> > do {
>> +> > > val8 = rtl8xxxu_read8(priv, REG_HMTFR);
>> +> > > if (!(val8 & BIT(mbox_nr)))
>> +> > > > break;
>> +> > } while (retry--);
>
> Seems fishy without any delay in the loop?
The access to USB registers introduces a delay automatically.
>> +> > val32 = rtl8xxxu_read32(priv, REG_OFDM0_TRX_PATH_ENABLE);
>> +> > val32 &= ~OFDM_RF_PATH_TX_MASK;
>> +> > if (priv->tx_paths == 2)
>
> "TX path" is very uncommon language for this... I'd suggest changing
> all that to "TX stream" or "TX chain"?
>
>> +> > if (priv->rf_paths == 2)
>
> Similar here - and should that be RX not RF?
I stuck with the naming from the vendor driver. The chip has antennas
and internal paths or streams and if I understand it right, granted not
having any specs whatsoever, I may have gotten some of it wrong, you can
wire path B to antenna A and vice versa. So it may only have one antenna
but uses path B to communicate.
>> +static int rtl8723a_channel_to_group(int channel)
>> +{
>> +> > int group;
>> +
>> +> > if (channel < 4)
>> +> > > group = 0;
>> +> > else if (channel < 10)
>> +> > > group = 1;
>> +> > else
>> +> > > group = 2;
>> +
>> +> > return group;
>> +}
>
> Could remove the group variable, it's kinda pointless - just return
> immediately?
>
> if (channel < 4)
> return 0;
> if (channel < 10)
> return 1;
> return 2;
I dislike returns in the middle of the function, but granted thats a
style preference.
>> +> > /* Poll for data read */
>> +> > val32 = rtl8xxxu_read32(priv, REG_EFUSE_CTRL);
>> +> > for (i = 0; i < RTL8XXXU_MAX_REG_POLL; i++) {
>> +> > > val32 = rtl8xxxu_read32(priv, REG_EFUSE_CTRL);
>> +> > > if (val32 & BIT(31))
>> +> > > > break;
>> +> > }
>
> Hmm, similar poll loop like above w/o any delay?
> A few more seem to exist too.
For USB register reading, not having a delay should be fine, if we
looked at adding support for PCI, a delay is definitely needed.
>> +> > > > for (i = 0; i < EFUSE_MAX_WORD_UNIT; i++) {
>> +> > > > > /* Check word enable condition in the section */
>> +> > > > > if (!(word_mask & BIT(i))) {
>> +> > > > > > ret = rtl8xxxu_read_efuse8(priv,
>> +> > > > > > > > > efuse_addr++,
>> +> > > > > > > > > &val8);
>> +> > > > > > if (ret)
>> +> > > > > > > goto exit;
>> +> > > > > > priv->efuse_wifi.raw[map_addr++] = val8;
>> +
>> +> > > > > > ret = rtl8xxxu_read_efuse8(priv,
>> +> > > > > > > > > efuse_addr++,
>> +> > > > > > > > > &val8);
>> +> > > > > > if (ret)
>> +> > > > > > > goto exit;
>> +> > > > > > priv->efuse_wifi.raw[map_addr++] = val8;
>> +> > > > > } else
>> +> > > > > > map_addr += 2;
>> +> > > > }
>
> seems like it might better be in a helper function :)
Maybe :)
>> +static int rtl8xxxu_init_phy_regs(struct rtl8xxxu_priv *priv,
>> +> > > > > struct rtl8xxxu_reg32val *array)
>> +{
>> +> > int i, ret;
>> +> > u16 reg;
>> +> > u32 val;
>> +
>> +> > for (i = 0; ; i++) {
>> +> > > reg = array[i].reg;
>> +> > > val = array[i].val;
>> +
>> +> > > if (reg == 0xffff && val == 0xffffffff)
>> +> > > > break;
> Maybe passing ARRAY_SIZE to these would be nicer than having to they're
> terminated? Dunno though, might be a lot of infrastructure to do that.
I prefer terminated arrays rather than calculating sizes, but it is also
a style issue.
> Ugh, getting too long for me - anything in particular I should look at?
> :)
Anything related to doing things correctly wrt to the mac80211 API would
be awesome.
Cheers,
Jes
next prev parent reply other threads:[~2015-08-31 23:42 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-29 21:18 [PATCH 0/1] rtl8xxxu (mac80211) driver for rtl8188[cr]u/rtl8192cu/rtl8723au Jes.Sorensen
2015-08-29 21:18 ` [PATCH 1/1] New driver: rtl8xxxu (mac80211) Jes.Sorensen
2015-08-30 4:42 ` Larry Finger
2015-08-30 18:41 ` Jes Sorensen
2015-08-30 21:02 ` Jes Sorensen
2015-08-30 23:51 ` Larry Finger
2015-08-31 2:39 ` Jes Sorensen
2015-08-31 15:45 ` Larry Finger
2015-08-31 23:43 ` Jes Sorensen
2015-09-01 0:16 ` Larry Finger
2015-09-01 4:54 ` Jes Sorensen
2015-09-01 5:17 ` Larry Finger
2015-09-01 5:26 ` Jes Sorensen
2015-08-31 1:06 ` Joe Perches
2015-08-31 13:11 ` Jes Sorensen
2015-08-31 8:19 ` Johannes Berg
2015-08-31 14:48 ` Johannes Berg
2015-08-31 23:42 ` Jes Sorensen [this message]
2015-09-01 15:07 ` Johannes Berg
2015-09-03 1:59 ` Jes Sorensen
2015-09-03 2:39 ` Jes Sorensen
2015-09-03 10:17 ` Johannes Berg
2015-09-04 18:24 ` Jes Sorensen
2015-09-04 18:25 ` Johannes Berg
2015-09-05 4:02 ` Sujith Manoharan
2015-09-17 16:46 ` Johannes Berg
2015-10-05 18:49 ` Jes Sorensen
2015-10-05 18:56 ` Johannes Berg
2015-10-05 19:04 ` Jes Sorensen
2015-10-05 19:12 ` Johannes Berg
2015-10-05 19:19 ` Jes Sorensen
2015-10-05 19:20 ` Johannes Berg
2015-10-05 19:53 ` Jes Sorensen
2015-09-03 10:17 ` Johannes Berg
2015-09-04 17:48 ` Jes Sorensen
2015-09-04 18:02 ` Johannes Berg
2015-10-08 16:23 ` Jakub Sitnicki
2015-10-08 19:09 ` Jes Sorensen
2015-10-08 20:33 ` Stefan Lippers-Hollmann
2015-10-08 21:06 ` Jes Sorensen
2015-10-08 21:03 ` Jes Sorensen
2015-10-10 4:17 ` Taehee Yoo
2015-08-30 16:49 ` [PATCH 0/1] rtl8xxxu (mac80211) driver for rtl8188[cr]u/rtl8192cu/rtl8723au Larry Finger
2015-08-30 18:45 ` Jes Sorensen
-- strict thread matches above, loose matches on Subject: below --
2015-08-30 21:02 [PATCH v2 " Jes.Sorensen
2015-08-30 21:02 ` [PATCH 1/1] New driver: rtl8xxxu (mac80211) Jes.Sorensen
2015-09-06 14:59 ` Kalle Valo
2015-09-06 17:06 ` Larry Finger
2015-09-07 1:41 ` Jes Sorensen
2015-09-07 1:40 ` Jes Sorensen
2015-09-07 13:20 ` Kalle Valo
2015-09-07 21:08 ` Jes Sorensen
2015-10-15 0:44 [PATCH v3 0/1] rtl8xxxu (mac80211) driver for rtl8188[cr]u/rtl8192cu/rtl8723au Jes.Sorensen
2015-10-15 0:44 ` [PATCH 1/1] New driver: rtl8xxxu (mac80211) Jes.Sorensen
2015-10-15 12:09 ` Bruno Randolf
2015-10-15 12:16 ` Jes Sorensen
2015-10-23 13:07 Xose Vazquez Perez
2015-10-23 14:00 ` Jes Sorensen
2015-10-23 16:09 ` Jes Sorensen
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=wrfjmvx73u0l.fsf@redhat.com \
--to=jes.sorensen@redhat.com \
--cc=Larry.Finger@lwfinger.net \
--cc=johannes@sipsolutions.net \
--cc=kvalo@codeaurora.org \
--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.