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, &params, 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, &params, 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