public inbox for linux-bluetooth@vger.kernel.org
 help / color / mirror / Atom feed
From: Andre Heider <a.heider@gmail.com>
To: Marcel Holtmann <marcel@holtmann.org>
Cc: Johan Hedberg <johan.hedberg@gmail.com>,
	linux-bluetooth@vger.kernel.org,
	Ondrej Jirman <megous@megous.com>,
	Jernej Skrabec <jernej.skrabec@siol.net>
Subject: Re: [PATCH v2] bluetooth: bcm: Use HCI_QUIRK_USE_BDADDR_PROPERTY
Date: Tue, 19 Nov 2019 08:44:08 +0100	[thread overview]
Message-ID: <e813a126-f0fc-afe8-ad4c-5296f0a2dc06@gmail.com> (raw)
In-Reply-To: <4DB6C9B7-8454-449C-90B4-4A1B3AD82495@holtmann.org>

Hi,

On 19/11/2019 07:16, Marcel Holtmann wrote:
> Hi Andre,
> 
>> Some devices ship with the controller default address, like the
>> Orange Pi 3 (BCM4345C5).
>>
>> Allow the bootloader to set a valid address through the device tree.
>>
>> Signed-off-by: Andre Heider <a.heider@gmail.com>
>> ---
>> drivers/bluetooth/btbcm.c | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/bluetooth/btbcm.c b/drivers/bluetooth/btbcm.c
>> index 2d2e6d862068..9d16162d01ea 100644
>> --- a/drivers/bluetooth/btbcm.c
>> +++ b/drivers/bluetooth/btbcm.c
>> @@ -439,6 +439,7 @@ int btbcm_finalize(struct hci_dev *hdev)
>> 	btbcm_check_bdaddr(hdev);
>>
>> 	set_bit(HCI_QUIRK_STRICT_DUPLICATE_FILTER, &hdev->quirks);
>> +	set_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks);
>>
>> 	return 0;
>> }
> 
> have you actually tested this? I might be mistaken, but the code that I read in hci_dev_do_open() would drop this into unconfigured state since HCI_QURIK_INVALID_BDADDR is still set.

I thought so, but double-checking something obviously failed...

What would be an acceptable solution to this 
HCI_QUIRK_USE_BDADDR_PROPERTY|HCI_QUIRK_INVALID_BDADDR situation?

Getting rid of the quirk in the driver in e.g. set_bdaddr() doesn't 
sound right.

How about:

diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index 04bc79359a17..7bc384be89f8 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -1470,7 +1470,8 @@ static int hci_dev_do_open(struct hci_dev *hdev)
          * start up as unconfigured.
          */
         if (test_bit(HCI_QUIRK_EXTERNAL_CONFIG, &hdev->quirks) ||
-           test_bit(HCI_QUIRK_INVALID_BDADDR, &hdev->quirks))
+           (test_bit(HCI_QUIRK_INVALID_BDADDR, &hdev->quirks) &&
+            !test_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks)))
             hci_dev_set_flag(hdev, HCI_UNCONFIGURED);

         /* For an unconfigured controller it is required to

That works for me (double-checked this time ;)

Thanks,
Andre

  reply	other threads:[~2019-11-19  7:44 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-19  6:02 [PATCH v2] bluetooth: bcm: Use HCI_QUIRK_USE_BDADDR_PROPERTY Andre Heider
2019-11-19  6:16 ` Marcel Holtmann
2019-11-19  7:44   ` Andre Heider [this message]
2019-11-19  8:16     ` Marcel Holtmann
2019-11-19  9:21       ` Andre Heider
2019-11-19 12:30         ` Marcel Holtmann
2019-11-20 10:13           ` Andre Heider
2019-11-21  8:28             ` Marcel Holtmann
2019-11-21 11:03               ` Andre Heider
2019-11-21 11:47                 ` Marcel Holtmann
2019-11-21 12:30                   ` Andre Heider
2019-11-21 14:05                     ` Marcel Holtmann
2019-11-21 14:23                       ` Andre Heider
2019-11-21 22:50                         ` Marcel Holtmann

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=e813a126-f0fc-afe8-ad4c-5296f0a2dc06@gmail.com \
    --to=a.heider@gmail.com \
    --cc=jernej.skrabec@siol.net \
    --cc=johan.hedberg@gmail.com \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=marcel@holtmann.org \
    --cc=megous@megous.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