linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Arend van Spriel <arend@broadcom.com>
To: "Rafał Miłecki" <zajec5@gmail.com>
Cc: Maximilian Engelhardt <maxi@daemonizer.de>,
	Michael Tokarev <mjt@tls.msk.ru>,
	Seth Forshee <seth.forshee@canonical.com>,
	"brcm80211 development" <brcm80211-dev-list@broadcom.com>,
	"linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>
Subject: Re: [PATCH][RTF][RFC] brcmsmac: add workaround for old BCM4313 devices with Bluetooth
Date: Thu, 9 Oct 2014 12:22:25 +0200	[thread overview]
Message-ID: <543661E1.3050606@broadcom.com> (raw)
In-Reply-To: <CACna6ryTwBQQnbZg+CSvoYakb4DA1+FH7j-XwfuYmoDzJORenA@mail.gmail.com>

On 10/09/14 12:11, Rafał Miłecki wrote:
> On 9 October 2014 11:46, Arend van Spriel<arend@broadcom.com>  wrote:
>> On 10/09/14 11:02, Rafał Miłecki wrote:
>>>
>>> On 9 October 2014 10:37, Rafał Miłecki<zajec5@gmail.com>   wrote:
>>>>
>>>> +       /* TODO: Fix the condition. Only for boards>= P250 */
>>>> +       if (ai_get_chip_id(wlc_hw->sih) == BCMA_CHIP_ID_BCM4313&&
>>>> (wlc_hw->boardflags&   BFL_FEM_BT)) {
>>>> +               pr_info("Applying BCM4313 WL/BT workaround\n");
>>>> +               ai_btcombo_p250_4313_war(wlc_hw->sih);
>>>> +       }
>>>
>>>
>>> This of course have to be checked in some hardware documentation for
>>> the correct condition. We already have some workaround (right above
>>> the newly added code) for boards with boardrev>= 0x1250. So my guess
>>> is the code I added applies to some other cards. The board this patch
>>> is supposed to fix is:
>>> board vendor: 14e4
>>> board type: 608
>>> board revision: 1109
>>> board flags: 402201
>>> board flags2: 884
>>> firmware revision: 262032c
>>>
>>> So whatever condition we will need it'll likely need to cover above
>>> case (maybe boardrev == 0x1109?).
>>
>>
>> Well, there is something fishy going on. The brcmsmac code looks like:
>>
>> if (bfl&  BFL_FEM&&  chip == 4313) {
>>          if (!(boardrev>= 0x1250&&  bfl&  BFL_FEM_BT))
>>                  ai_epa_4313war(wlc_hw->sih);
>> }
>
> Ohh, I didn't notice this negation at the beginning... Now meaning of
> my functions makes more sense. The old code it only for boardrev<
> 0x1250 (plus other conditions). This new function has "p250" in its
> name, that may mean it's for boardrev>= 0x1250.
>
>
>> However the boardflags above (0x402201) only has BFL_FEM_BT set so this code
>> is never called. I have to ask if !BFL_FEM&&  BFL_FEM_BT is a valid
>> combination.
>
> Yeah, that's fishy. Maybe that new function ai_btcombo_p250_4313_war
> should be called if !BFL_FEM&&  BFL_FEM_BT? But it sounds weird.

I know where the function should be called according our driver and 
guess what:

   if (bfl&  BFL_FEM&&  chip == 4313) {
   	if (!(boardrev>= 0x1250 && bfl&  BFL_FEM_BT))
           	ai_epa_4313war(wlc_hw->sih);
+	else
+		ai_btcombo_p250_4313_war(wlc_hw->sih);
   }

I hate this inverse logic as it is so easy to overlook ;-)

Regards,
Arend

  reply	other threads:[~2014-10-09 10:22 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-09  8:37 [PATCH][RTF][RFC] brcmsmac: add workaround for old BCM4313 devices with Bluetooth Rafał Miłecki
2014-10-09  9:02 ` Rafał Miłecki
2014-10-09  9:46   ` Arend van Spriel
2014-10-09 10:11     ` Rafał Miłecki
2014-10-09 10:22       ` Arend van Spriel [this message]
2014-10-09 10:28         ` Michael Tokarev
2014-10-09 10:37           ` Rafał Miłecki
2014-10-09 10:46             ` Arend van Spriel
2014-10-09 10:46         ` Rafał Miłecki

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=543661E1.3050606@broadcom.com \
    --to=arend@broadcom.com \
    --cc=brcm80211-dev-list@broadcom.com \
    --cc=linux-wireless@vger.kernel.org \
    --cc=maxi@daemonizer.de \
    --cc=mjt@tls.msk.ru \
    --cc=seth.forshee@canonical.com \
    --cc=zajec5@gmail.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).