All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joe Perches <joe@perches.com>
To: Alain Michaud <alainmichaud@google.com>
Cc: Marcel Holtmann <marcel@holtmann.org>,
	Miao-chen Chou <mcchou@chromium.org>,
	Bluetooth Kernel Mailing List  <linux-bluetooth@vger.kernel.org>,
	Luiz Augusto von Dentz <luiz.von.dentz@intel.com>,
	Alain Michaud <alainm@chromium.org>,
	"David S. Miller" <davem@davemloft.net>,
	Jakub Kicinski <kuba@kernel.org>,
	Johan Hedberg <johan.hedberg@gmail.com>,
	LKML <linux-kernel@vger.kernel.org>,
	netdev <netdev@vger.kernel.org>
Subject: Re: [PATCH v1 1/2] Bluetooth: btusb: Indicate Microsoft vendor extension for Intel 9460/9560 and 9160/9260
Date: Tue, 24 Mar 2020 08:17:23 -0700	[thread overview]
Message-ID: <b7b6e52eccca921ccea16b7679789eb3e2115871.camel@perches.com> (raw)
In-Reply-To: <CALWDO_U5Cnt3_Ss2QQNhtuKS_8qq7oyNH4d97J68pmbmQMe=3w@mail.gmail.com>

On Tue, 2020-03-24 at 11:10 -0400, Alain Michaud wrote:
> On Mon, Mar 23, 2020 at 4:11 PM Joe Perches <joe@perches.com> wrote:
> > On Mon, 2020-03-23 at 19:48 +0100, Marcel Holtmann wrote:
> > > Hi Joe,
> > 
> > Hello Marcel.
> > 
> > > > > > This adds a bit mask of driver_info for Microsoft vendor extension and
> > > > > > indicates the support for Intel 9460/9560 and 9160/9260. See
> > > > > > https://docs.microsoft.com/en-us/windows-hardware/drivers/bluetooth/
> > > > > > microsoft-defined-bluetooth-hci-commands-and-events for more information
> > > > > > about the extension. This was verified with Intel ThunderPeak BT controller
> > > > > > where msft_vnd_ext_opcode is 0xFC1E.
> > > > []
> > > > > > diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h
> > > > []
> > > > > > @@ -315,6 +315,10 @@ struct hci_dev {
> > > > > >         __u8            ssp_debug_mode;
> > > > > >         __u8            hw_error_code;
> > > > > >         __u32           clock;
> > > > > > +       __u16           msft_vnd_ext_opcode;
> > > > > > +       __u64           msft_vnd_ext_features;
> > > > > > +       __u8            msft_vnd_ext_evt_prefix_len;
> > > > > > +       void            *msft_vnd_ext_evt_prefix;
> > > > 
> > > > msft is just another vendor.
> > > > 
> > > > If there are to be vendor extensions, this should
> > > > likely use a blank line above and below and not
> > > > be prefixed with msft_
> > > 
> > > there are other vendors, but all of them are different. So this needs to be prefixed with msft_ actually. But I agree that having empty lines above and below makes it more readable.
> > 
> > So struct hci_dev should become a clutter
> > of random vendor extensions?
> > 
> > Perhaps there should instead be something like
> > an array of char at the end of the struct and
> > various vendor specific extensions could be
> > overlaid on that array or just add a void *
> > to whatever info that vendors require.
> I don't particularly like trailing buffers, but I agree we could
> possibly organize this a little better by with a struct.  something
> like:
> 
> struct msft_vnd_ext {
>     bool              supported; // <-- Clearly calls out if the
> extension is supported.
>     __u16           msft_vnd_ext_opcode; // <-- Note that this also
> needs to be provided by the driver.  I don't recommend we have this
> read from the hardware since we just cause an extra redirection that
> isn't necessary.  Ideally, this should come from the usb_table const.
>     __u64           msft_vnd_ext_features;
>     __u8             msft_vnd_ext_evt_prefix_len;
>     void             *msft_vnd_ext_evt_prefix;
> };
> 
> And then simply add the struct msft_vnd_ext (and any others) to hci_dev.

Or use an anonymous union




  reply	other threads:[~2020-03-24 15:19 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-23  7:28 [PATCH v1 0/2] btusb: Introduce the use of vendor extension(s) Miao-chen Chou
2020-03-23  7:28 ` [PATCH v1 1/2] Bluetooth: btusb: Indicate Microsoft vendor extension for Intel 9460/9560 and 9160/9260 Miao-chen Chou
2020-03-23 17:56   ` Marcel Holtmann
2020-03-23 18:45     ` Joe Perches
2020-03-23 18:48       ` Marcel Holtmann
2020-03-23 20:09         ` Joe Perches
2020-03-24 15:10           ` Alain Michaud
2020-03-24 15:17             ` Joe Perches [this message]
2020-03-24 15:24               ` Alain Michaud
2020-03-24 16:45                 ` Joe Perches
2020-03-24 18:35             ` Marcel Holtmann
2020-03-24 19:32               ` Alain Michaud
2020-03-25  5:18                 ` Miao-chen Chou
2020-03-25  8:02                 ` Marcel Holtmann
2020-03-23  7:28 ` [PATCH v1 2/2] Bluetooth: btusb: Read the supported features of Microsoft vendor extension Miao-chen Chou
2020-03-23 17:30   ` kbuild test robot
2020-03-23 17:30     ` kbuild test robot
2020-03-23 18:05   ` 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=b7b6e52eccca921ccea16b7679789eb3e2115871.camel@perches.com \
    --to=joe@perches.com \
    --cc=alainm@chromium.org \
    --cc=alainmichaud@google.com \
    --cc=davem@davemloft.net \
    --cc=johan.hedberg@gmail.com \
    --cc=kuba@kernel.org \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luiz.von.dentz@intel.com \
    --cc=marcel@holtmann.org \
    --cc=mcchou@chromium.org \
    --cc=netdev@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.