NAK: [PATCH 1/1][SRU][B] Bluetooth: btusb: Add support for Intel bluetooth device 8087:0029
You-Sheng Yang
vicamo.yang at canonical.com
Mon Feb 25 10:03:01 UTC 2019
Build failure at least on Bionic.
On δΈ€, 2019-02-25 at 17:08 +0800, You-Sheng Yang wrote:
> From: Raghuram Hegde <raghuram.hegde at intel.com>
>
> BugLink: https://bugs.launchpad.net/bugs/1817518
>
> Include the new USB product ID for Intel Bluetooth device 22260
> family(CcPeak)
>
> The /sys/kernel/debug/usb/devices portion for this device is:
>
> T: Bus=01 Lev=01 Prnt=01 Port=02 Cnt=02 Dev#= 2 Spd=12 MxCh= 0
> D: Ver= 2.00 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
> P: Vendor=8087 ProdID=0029 Rev= 0.01
> C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
> I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
> E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl=1ms
> E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
> E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
> I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
> E: Ad=03(O) Atr=01(Isoc) MxPS= 0 Ivl=1ms
> E: Ad=83(I) Atr=01(Isoc) MxPS= 0 Ivl=1ms
> I: If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
> E: Ad=03(O) Atr=01(Isoc) MxPS= 9 Ivl=1ms
> E: Ad=83(I) Atr=01(Isoc) MxPS= 9 Ivl=1ms
> I: If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
> E: Ad=03(O) Atr=01(Isoc) MxPS= 17 Ivl=1ms
> E: Ad=83(I) Atr=01(Isoc) MxPS= 17 Ivl=1ms
> I: If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
> E: Ad=03(O) Atr=01(Isoc) MxPS= 25 Ivl=1ms
> E: Ad=83(I) Atr=01(Isoc) MxPS= 25 Ivl=1ms
> I: If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
> E: Ad=03(O) Atr=01(Isoc) MxPS= 33 Ivl=1ms
> E: Ad=83(I) Atr=01(Isoc) MxPS= 33 Ivl=1ms
> I: If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
> E: Ad=03(O) Atr=01(Isoc) MxPS= 49 Ivl=1ms
> E: Ad=83(I) Atr=01(Isoc) MxPS= 49 Ivl=1ms
> I: If#= 1 Alt= 6 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
> E: Ad=03(O) Atr=01(Isoc) MxPS= 63 Ivl=1ms
> E: Ad=83(I) Atr=01(Isoc) MxPS= 63 Ivl=1ms
>
> Signed-off-by: Raghuram Hegde <raghuram.hegde at intel.com>
> Signed-off-by: Chethan T N <chethan.tumkur.narayan at intel.com>
> Signed-off-by: Marcel Holtmann <marcel at holtmann.org>
> (backported from commit 2da711bcebe81209a9f2f90e145600eb1bae2b71)
> Signed-off-by: You-Sheng Yang <vicamo.yang at canonical.com>
> ---
> drivers/bluetooth/btusb.c | 72 ++++++++++++++++++++-----------------
> --
> 1 file changed, 37 insertions(+), 35 deletions(-)
>
> diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
> index 212c317d8239..4acdb653eebf 100644
> --- a/drivers/bluetooth/btusb.c
> +++ b/drivers/bluetooth/btusb.c
> @@ -342,6 +342,7 @@ static const struct usb_device_id
> blacklist_table[] = {
> /* Intel Bluetooth devices */
> { USB_DEVICE(0x8087, 0x0025), .driver_info = BTUSB_INTEL_NEW },
> { USB_DEVICE(0x8087, 0x0026), .driver_info = BTUSB_INTEL_NEW },
> + { USB_DEVICE(0x8087, 0x0029), .driver_info = BTUSB_INTEL_NEW },
> { USB_DEVICE(0x8087, 0x07da), .driver_info = BTUSB_CSR },
> { USB_DEVICE(0x8087, 0x07dc), .driver_info = BTUSB_INTEL },
> { USB_DEVICE(0x8087, 0x0a2a), .driver_info = BTUSB_INTEL },
> @@ -2038,6 +2039,35 @@ static int btusb_send_frame_intel(struct
> hci_dev *hdev, struct sk_buff *skb)
> return -EILSEQ;
> }
>
> +static bool btusb_setup_intel_new_get_fw_name(struct intel_version
> *ver,
> + struct intel_boot_params
> *params,
> + char *fw_name, size_t len,
> + const char *suffix)
> +{
> + switch (ver->hw_variant) {
> + case 0x0b: /* SfP */
> + case 0x0c: /* WsP */
> + snprintf(fw_name, len, "intel/ibt-%u-%u.%s",
> + le16_to_cpu(ver->hw_variant),
> + le16_to_cpu(params->dev_revid),
> + suffix);
> + break;
> + case 0x11: /* JfP */
> + case 0x12: /* ThP */
> + case 0x13: /* HrP */
> + case 0x14: /* CcP */
> + snprintf(fw_name, len, "intel/ibt-%u-%u-%u.%s",
> + le16_to_cpu(ver->hw_variant),
> + le16_to_cpu(ver->hw_revision),
> + le16_to_cpu(ver->fw_revision),
> + suffix);
> + break;
> + default:
> + return false;
> + }
> + return true;
> +}
> +
> static int btusb_setup_intel_new(struct hci_dev *hdev)
> {
> static const u8 reset_param[] = { 0x00, 0x01, 0x00, 0x01,
> @@ -2087,7 +2117,7 @@ static int btusb_setup_intel_new(struct hci_dev
> *hdev)
> case 0x11: /* JfP */
> case 0x12: /* ThP */
> case 0x13: /* HrP */
> - case 0x14: /* QnJ, IcP */
> + case 0x14: /* CcP */
> break;
> default:
> BT_ERR("%s: Unsupported Intel hardware variant (%u)",
> @@ -2202,23 +2232,9 @@ static int btusb_setup_intel_new(struct
> hci_dev *hdev)
> * ibt-<hw_variant>-<hw_revision>-<fw_revision>.sfi.
> *
> */
> - switch (ver.hw_variant) {
> - case 0x0b: /* SfP */
> - case 0x0c: /* WsP */
> - snprintf(fwname, sizeof(fwname), "intel/ibt-%u-%u.sfi",
> - le16_to_cpu(ver.hw_variant),
> - le16_to_cpu(params->dev_revid));
> - break;
> - case 0x11: /* JfP */
> - case 0x12: /* ThP */
> - case 0x13: /* HrP */
> - case 0x14: /* QnJ, IcP */
> - snprintf(fwname, sizeof(fwname), "intel/ibt-%u-%u-
> %u.sfi",
> - le16_to_cpu(ver.hw_variant),
> - le16_to_cpu(ver.hw_revision),
> - le16_to_cpu(ver.fw_revision));
> - break;
> - default:
> + err = btusb_setup_intel_new_get_fw_name(&ver, ¶ms, fwname,
> + sizeof(fwname), "sfi");
> + if (!err) {
> BT_ERR("%s: Unsupported Intel firmware naming", hdev-
> >name);
> return -EINVAL;
> }
> @@ -2236,23 +2252,9 @@ static int btusb_setup_intel_new(struct
> hci_dev *hdev)
> /* Save the DDC file name for later use to apply once the
> firmware
> * downloading is done.
> */
> - switch (ver.hw_variant) {
> - case 0x0b: /* SfP */
> - case 0x0c: /* WsP */
> - snprintf(fwname, sizeof(fwname), "intel/ibt-%u-%u.ddc",
> - le16_to_cpu(ver.hw_variant),
> - le16_to_cpu(params->dev_revid));
> - break;
> - case 0x11: /* JfP */
> - case 0x12: /* ThP */
> - case 0x13: /* HrP */
> - case 0x14: /* QnJ, IcP */
> - snprintf(fwname, sizeof(fwname), "intel/ibt-%u-%u-
> %u.ddc",
> - le16_to_cpu(ver.hw_variant),
> - le16_to_cpu(ver.hw_revision),
> - le16_to_cpu(ver.fw_revision));
> - break;
> - default:
> + err = btusb_setup_intel_new_get_fw_name(&ver, ¶ms, fwname,
> + sizeof(fwname), "ddc");
> + if (!err) {
> BT_ERR("%s: Unsupported Intel firmware naming", hdev-
> >name);
> return -EINVAL;
> }
> --
> 2.20.1
>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: This is a digitally signed message part
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20190225/3ed54f52/attachment-0001.sig>
More information about the kernel-team
mailing list