All of lore.kernel.org
 help / color / mirror / Atom feed
From: "K, Kiran" <kiran.k@intel.com>
To: "K, Kiran" <kiran.k@intel.com>, Marcel Holtmann <marcel@holtmann.org>
Cc: BlueZ <linux-bluetooth@vger.kernel.org>,
	"Srivatsa, Ravishankar" <ravishankar.srivatsa@intel.com>,
	"Tumkur Narayan, Chethan" <chethan.tumkur.narayan@intel.com>
Subject: RE: [PATCH v11 06/10] Bluetooth: Allow setting of codec for HFP offload usecase
Date: Sat, 14 Aug 2021 06:39:33 +0000	[thread overview]
Message-ID: <DM8PR11MB557322D6EB556D81B1AF44E9F5FB9@DM8PR11MB5573.namprd11.prod.outlook.com> (raw)
In-Reply-To: <DM8PR11MB557397CD63E11B0901F6FBF2F5EE9@DM8PR11MB5573.namprd11.prod.outlook.com>

Hi Marcel,

> -----Original Message-----
> From: K, Kiran <kiran.k@intel.com>
> Sent: Monday, August 2, 2021 5:16 AM
> To: Marcel Holtmann <marcel@holtmann.org>
> Cc: BlueZ <linux-bluetooth@vger.kernel.org>; Srivatsa, Ravishankar
> <ravishankar.srivatsa@intel.com>; Tumkur Narayan, Chethan
> <chethan.tumkur.narayan@intel.com>
> Subject: RE: [PATCH v11 06/10] Bluetooth: Allow setting of codec for HFP
> offload usecase
> 
> Hi Marcel,
> 
> >
> > Hi Kiran,
> >
> > > For HFP offload usecase, controller needs to be configured with
> > > codec data and capabilities. This patch uses Bluetooth SIG defined
> > > command HCI_CONFIGURE_DATA_PATH to specify vendor specific data
> and
> > > allows userspace modules to set the codec via setsockopt systemcall.
> > >
> > > Signed-off-by: Kiran K <kiran.k@intel.com>
> > > Reviewed-by: Chethan T N <chethan.tumkur.narayan@intel.com>
> > > Reviewed-by: Srivatsa Ravishankar <ravishankar.srivatsa@intel.com>
> > > ---
> > > * changes in v11:
> > >  - Remove changes related to Kconfig
> > > * changes in v10:
> > >  - patch refactor - having callback definition and usage in the same
> > > patch
> > >
> > > include/net/bluetooth/bluetooth.h |   2 +
> > > include/net/bluetooth/hci.h       |   8 ++
> > > include/net/bluetooth/hci_core.h  |   3 +
> > > net/bluetooth/sco.c               | 118 ++++++++++++++++++++++++++++++
> > > 4 files changed, 131 insertions(+)
> > >
> > > diff --git a/include/net/bluetooth/bluetooth.h
> > > b/include/net/bluetooth/bluetooth.h
> > > index 64cddff0c9c4..1a48b6732eef 100644
> > > --- a/include/net/bluetooth/bluetooth.h
> > > +++ b/include/net/bluetooth/bluetooth.h
> > > @@ -173,6 +173,8 @@ struct bt_codecs {
> > > 	struct bt_codec	codecs[];
> > > } __packed;
> > >
> > > +#define CODING_FORMAT_CVSD	0x02
> > > +
> > > __printf(1, 2)
> > > void bt_info(const char *fmt, ...);
> > > __printf(1, 2)
> > > diff --git a/include/net/bluetooth/hci.h
> > > b/include/net/bluetooth/hci.h index 22e872e60ff8..c998607fc517
> > > 100644
> > > --- a/include/net/bluetooth/hci.h
> > > +++ b/include/net/bluetooth/hci.h
> > > @@ -1250,6 +1250,14 @@ struct hci_rp_read_local_oob_ext_data {
> > > 	__u8     rand256[16];
> > > } __packed;
> > >
> > > +#define HCI_CONFIGURE_DATA_PATH	0x0c83
> > > +struct hci_op_configure_data_path {
> > > +	__u8	direction;
> > > +	__u8	data_path_id;
> > > +	__u8	vnd_len;
> > > +	__u8	vnd_data[];
> > > +} __packed;
> > > +
> > > #define HCI_OP_READ_LOCAL_VERSION	0x1001
> > > struct hci_rp_read_local_version {
> > > 	__u8     status;
> > > diff --git a/include/net/bluetooth/hci_core.h
> > > b/include/net/bluetooth/hci_core.h
> > > index 71c409c8ab34..eafa6f8114cb 100644
> > > --- a/include/net/bluetooth/hci_core.h
> > > +++ b/include/net/bluetooth/hci_core.h
> > > @@ -618,6 +618,9 @@ struct hci_dev {
> > > 	void (*cmd_timeout)(struct hci_dev *hdev);
> > > 	bool (*prevent_wake)(struct hci_dev *hdev);
> > > 	int (*get_data_path_id)(struct hci_dev *hdev, __u8 *data_path);
> > > +	int (*get_codec_config_data)(struct hci_dev *hdev, __u8 type,
> > > +				     struct bt_codec *codec, __u8 *vnd_len,
> > > +				     __u8 **vnd_data);
> >
> > why are these two independent callbacks? I seem to remember saying
> > that it looks like we only need one.
> 
> get_data_path_id,  gets called during getsockopt(BT_CODEC,...) when
> populating codec details to user space.
> 
> get_codec_config_data, gets called during setsockopt(BT_CODEC,...)
> 
Not sure if I was clear here. The two callbacks serves different purpose. get_data_path_id gets called during getsockopt(BT_CODEC,...) and fetches data_path_path_id.
get_codec_config_data gets called during setsockopt(BT_CODEC,...) to fetch the vendor specific codec data. This is data is used to configure the codec before opening SCO connection. This data is passed on to controller via HCI_CONFIGURE_DATA_PATH command. 
> >
> > Regards
> >
> > Marcel
> 
> Regards,
> Kiran
> 

Thanks,
Kiran



  reply	other threads:[~2021-08-14  6:39 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-27  8:47 [PATCH v11 01/10] Bluetooth: Enumerate local supported codec and cache details Kiran K
2021-07-27  8:47 ` [PATCH v11 02/10] Bluetooth: Add support for Read Local Supported Codecs V2 Kiran K
2021-07-30 14:07   ` Marcel Holtmann
2021-07-27  8:47 ` [PATCH v11 03/10] Bluetooth: btintel: Read supported offload usecases Kiran K
2021-07-30 14:10   ` Marcel Holtmann
2021-08-14  6:32     ` K, Kiran
2021-07-27  8:47 ` [PATCH v11 04/10] Bluetooth: Allow querying of supported offload codecs over SCO socket Kiran K
2021-07-30 14:14   ` Marcel Holtmann
2021-08-14  6:33     ` K, Kiran
2021-07-27  8:47 ` [PATCH v11 05/10] Bluetooth: btintel: Define callback to fetch data_path_id Kiran K
2021-07-27  8:47 ` [PATCH v11 06/10] Bluetooth: Allow setting of codec for HFP offload usecase Kiran K
2021-07-30 14:17   ` Marcel Holtmann
2021-08-01 23:45     ` K, Kiran
2021-08-14  6:39       ` K, Kiran [this message]
2021-07-27  8:47 ` [PATCH v11 07/10] Bluetooth: btintel: Define a callback to fetch codec config data Kiran K
2021-07-27  8:47 ` [PATCH v11 08/10] Bluetooth: Add support for HCI_Enhanced_Setup_Synchronous_Connection command Kiran K
2021-07-28  3:59   ` Luiz Augusto von Dentz
2021-08-14  6:41     ` K, Kiran
2021-07-27  8:47 ` [PATCH v11 09/10] Bluetooth: Add support for msbc coding format Kiran K
2021-07-27  8:47 ` [PATCH v11 10/10] Bluetooth: Add offload feature under experimental flag Kiran K
2021-07-30 14:22   ` Marcel Holtmann
2021-08-14  6:42     ` K, Kiran
2021-07-27  9:12 ` [v11,01/10] Bluetooth: Enumerate local supported codec and cache details bluez.test.bot
2021-07-30 14:06 ` [PATCH v11 01/10] " Marcel Holtmann
2021-08-02  0:23   ` K, Kiran

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=DM8PR11MB557322D6EB556D81B1AF44E9F5FB9@DM8PR11MB5573.namprd11.prod.outlook.com \
    --to=kiran.k@intel.com \
    --cc=chethan.tumkur.narayan@intel.com \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=marcel@holtmann.org \
    --cc=ravishankar.srivatsa@intel.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 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.