2014-12-03 06:45:40

by Jesse Sung

[permalink] [raw]
Subject: [PATCH 1/6] Bluetooth: Add BTUSB_BCM_PATCHRAM flag for Broadcom devices 0489:*


Most modules of this BCM20702A0 variant are known to require external
firmware to work properly.

Signed-off-by: Wen-chien Jesse Sung <[email protected]>
---
drivers/bluetooth/btusb.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)


Attachments:
0001-Bluetooth-Add-BTUSB_BCM_PATCHRAM-flag-for-Broadcom-d.patch (572.00 B)

2014-12-03 10:04:47

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH 6/6] Bluetooth: Add support for 105b:e065

Hi Wen-chien,

> BugLink: https://launchpad.net/bugs/1161261
>
> These devices require external patchram firmware to work.
>
> T: Bus=01 Lev=02 Prnt=02 Port=02 Cnt=01 Dev#= 9 Spd=12 MxCh= 0
> D: Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
> P: Vendor=105b ProdID=e065 Rev=01.12
> S: Manufacturer=Broadcom Corp
> S: Product=BCM43142A0
> S: SerialNumber=0090A295B4C6
> C: #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
> I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
> I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
> I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
> I: If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)
>
> Signed-off-by: Adam Lee <[email protected]>
> Signed-off-by: Wen-chien Jesse Sung <[email protected]>
> ---
> drivers/bluetooth/btusb.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
> index 740c854..04d7958 100644
> --- a/drivers/bluetooth/btusb.c
> +++ b/drivers/bluetooth/btusb.c
> @@ -113,6 +113,8 @@ static const struct usb_device_id btusb_table[] = {
> /* Broadcom BCM43142A0 */
> { USB_DEVICE(0x04ca, 0x2007),
> .driver_info = BTUSB_BCM_PATCHRAM },
> + { USB_DEVICE(0x105b, 0xe065),
> + .driver_info = BTUSB_BCM_PATCHRAM },
>
> /* Foxconn - Hon Hai */
> { USB_VENDOR_AND_INTERFACE_INFO(0x0489, 0xff, 0x01, 0x01),

same here, lets use USB_VENDOR_AND_INTERFACE_INFO and have an explanation on how to get the firmware.

Regards

Marcel


2014-12-03 10:04:44

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH 4/6] Bluetooth: Add support for Broadcom 413c:8143

Hi Wen-chien,

> The device require external patchram firmware to work and need to
> add corresponding id in the btusb.c.
>
> T: Bus=03 Lev=01 Prnt=01 Port=08 Cnt=03 Dev#= 2 Spd=12 MxCh= 0
> D: Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
> P: Vendor=413c ProdID=8143 Rev=01.12
> S: Manufacturer=Broadcom Corp
> S: Product=BCM20702A0
> S: SerialNumber=20689D1FAF94
> C: #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
> I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
> I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
> I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
> I: If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)
>
> Signed-off-by: Gavin Guo <[email protected]>
> Signed-off-by: Wen-chien Jesse Sung <[email protected]>
> ---
> drivers/bluetooth/btusb.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
> index c92f59f..d2923a8 100644
> --- a/drivers/bluetooth/btusb.c
> +++ b/drivers/bluetooth/btusb.c
> @@ -107,6 +107,8 @@ static const struct usb_device_id btusb_table[] = {
> { USB_DEVICE(0x0b05, 0x17cb) },
> { USB_DEVICE(0x413c, 0x8197),
> .driver_info = BTUSB_BCM_PATCHRAM },
> + { USB_DEVICE(0x413c, 0x8143),
> + .driver_info = BTUSB_BCM_PATCHRAM },
>
> /* Foxconn - Hon Hai */
> { USB_VENDOR_AND_INTERFACE_INFO(0x0489, 0xff, 0x01, 0x01),

same here as well, lets use USB_VENDOR_INTERFACE_INFO and explain where the firmware comes from.

Regards

Marcel



2014-12-03 10:04:42

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH 3/6] Bluetooth: Add BTUSB_BCM_PATCHRAM to Broadcom 413c:8197

Hi Wen-chien,

> This device needs an external firmware to make HSP and HFP work.
>
> Signed-off-by: Wen-chien Jesse Sung <[email protected]>
> ---
> drivers/bluetooth/btusb.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
> index 5b8e029..c92f59f 100644
> --- a/drivers/bluetooth/btusb.c
> +++ b/drivers/bluetooth/btusb.c
> @@ -105,7 +105,8 @@ static const struct usb_device_id btusb_table[] = {
> { USB_DEVICE(0x04ca, 0x2003) },
> { USB_DEVICE(0x0b05, 0x17b5) },
> { USB_DEVICE(0x0b05, 0x17cb) },
> - { USB_DEVICE(0x413c, 0x8197) },
> + { USB_DEVICE(0x413c, 0x8197),
> + .driver_info = BTUSB_BCM_PATCHRAM },
>
> /* Foxconn - Hon Hai */
> { USB_VENDOR_AND_INTERFACE_INFO(0x0489, 0xff, 0x01, 0x01),

so here as well picking USB_VENDOR_AND_INTERFACE_INFO is a good idea. However we might need use the blacklist entries to mark these devices fail if there is no firmware.

Regards

Marcel


2014-12-03 10:04:39

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH 2/6] Bluetooth: Add BTUSB_BCM_PATCHRAM to Broadcom devices 13d3:*

Hi Wen-chien,

> It is known that at least 13d3:3388, 13d3:3389, and 13d3:3404 require
> external firmwares to work properly. Since the firmware loading
> procedure is skipped if there's no firmware file provided, it is safe to
> set BTUSB_BCM_PATCHRAM for 13d3:* instead of adding each module one by
> one.
>
> Signed-off-by: Wen-chien Jesse Sung <[email protected]>
> ---
> drivers/bluetooth/btusb.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
> index 5c9eeda..5b8e029 100644
> --- a/drivers/bluetooth/btusb.c
> +++ b/drivers/bluetooth/btusb.c
> @@ -122,7 +122,8 @@ static const struct usb_device_id btusb_table[] = {
> { USB_VENDOR_AND_INTERFACE_INFO(0x050d, 0xff, 0x01, 0x01) },
>
> /* IMC Networks - Broadcom based */
> - { USB_VENDOR_AND_INTERFACE_INFO(0x13d3, 0xff, 0x01, 0x01) },
> + { USB_VENDOR_AND_INTERFACE_INFO(0x13d3, 0xff, 0x01, 0x01),
> + .driver_info = BTUSB_BCM_PATCHRAM },
>
> /* Intel Bluetooth USB Bootloader (RAM module) */
> { USB_DEVICE(0x8087, 0x0a5a),

I would prefer adding text in the commit message to explain where the firmware is coming from.

Regards

Marcel


2014-12-03 10:04:33

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH 1/6] Bluetooth: Add BTUSB_BCM_PATCHRAM flag for Broadcom devices 0489:*

Hi Wen-chien,

> Most modules of this BCM20702A0 variant are known to require external
> firmware to work properly.
>
> Signed-off-by: Wen-chien Jesse Sung <[email protected]>
> ---
> drivers/bluetooth/btusb.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
> index 292c38e..5c9eeda 100644
> --- a/drivers/bluetooth/btusb.c
> +++ b/drivers/bluetooth/btusb.c
> @@ -108,7 +108,8 @@ static const struct usb_device_id btusb_table[] = {
> { USB_DEVICE(0x413c, 0x8197) },
>
> /* Foxconn - Hon Hai */
> - { USB_VENDOR_AND_INTERFACE_INFO(0x0489, 0xff, 0x01, 0x01) },
> + { USB_VENDOR_AND_INTERFACE_INFO(0x0489, 0xff, 0x01, 0x01),
> + .driver_info = BTUSB_BCM_PATCHRAM },
>
> /* Broadcom devices with vendor specific id */
> { USB_VENDOR_AND_INTERFACE_INFO(0x0a5c, 0xff, 0x01, 0x01),

lets add information in the commit message on how to retrieve a firmware to use. I also prefer to have the content from /sys/kernel/debug/usb/devices added as well.

Regards

Marcel


2014-12-03 06:45:44

by Jesse Sung

[permalink] [raw]
Subject: [PATCH 5/6] Bluetooth: Add support for 04ca:2007


BugLink: https://launchpad.net/bugs/1153448

These devices require external patchram firmware to work.

T: Bus=01 Lev=02 Prnt=02 Port=02 Cnt=01 Dev#= 3 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=04ca ProdID=2007 Rev=01.12
S: Manufacturer=Broadcom Corp
S: Product=BCM43142A0
S: SerialNumber=20689DD16A22
C: #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
I: If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)

Signed-off-by: Adam Lee <[email protected]>
Signed-off-by: Bruce Ma <[email protected]>
Signed-off-by: Wen-chien Jesse Sung <[email protected]>
---
drivers/bluetooth/btusb.c | 4 ++++
1 file changed, 4 insertions(+)


Attachments:
0005-Bluetooth-Add-support-for-04ca-2007.patch (540.00 B)

2014-12-03 06:45:45

by Jesse Sung

[permalink] [raw]
Subject: [PATCH 6/6] Bluetooth: Add support for 105b:e065


BugLink: https://launchpad.net/bugs/1161261

These devices require external patchram firmware to work.

T: Bus=01 Lev=02 Prnt=02 Port=02 Cnt=01 Dev#= 9 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=105b ProdID=e065 Rev=01.12
S: Manufacturer=Broadcom Corp
S: Product=BCM43142A0
S: SerialNumber=0090A295B4C6
C: #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
I: If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)

Signed-off-by: Adam Lee <[email protected]>
Signed-off-by: Wen-chien Jesse Sung <[email protected]>
---
drivers/bluetooth/btusb.c | 2 ++
1 file changed, 2 insertions(+)


Attachments:
0006-Bluetooth-Add-support-for-105b-e065.patch (496.00 B)

2014-12-03 06:45:43

by Jesse Sung

[permalink] [raw]
Subject: [PATCH 4/6] Bluetooth: Add support for Broadcom 413c:8143


The device require external patchram firmware to work and need to
add corresponding id in the btusb.c.

T: Bus=03 Lev=01 Prnt=01 Port=08 Cnt=03 Dev#= 2 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=413c ProdID=8143 Rev=01.12
S: Manufacturer=Broadcom Corp
S: Product=BCM20702A0
S: SerialNumber=20689D1FAF94
C: #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
I: If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)

Signed-off-by: Gavin Guo <[email protected]>
Signed-off-by: Wen-chien Jesse Sung <[email protected]>
---
drivers/bluetooth/btusb.c | 2 ++
1 file changed, 2 insertions(+)


Attachments:
0004-Bluetooth-Add-support-for-Broadcom-413c-8143.patch (502.00 B)

2014-12-03 06:45:42

by Jesse Sung

[permalink] [raw]
Subject: [PATCH 3/6] Bluetooth: Add BTUSB_BCM_PATCHRAM to Broadcom 413c:8197


This device needs an external firmware to make HSP and HFP work.

Signed-off-by: Wen-chien Jesse Sung <[email protected]>
---
drivers/bluetooth/btusb.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)


Attachments:
0003-Bluetooth-Add-BTUSB_BCM_PATCHRAM-to-Broadcom-413c-81.patch (531.00 B)

2014-12-03 06:45:41

by Jesse Sung

[permalink] [raw]
Subject: [PATCH 2/6] Bluetooth: Add BTUSB_BCM_PATCHRAM to Broadcom devices 13d3:*


It is known that at least 13d3:3388, 13d3:3389, and 13d3:3404 require
external firmwares to work properly. Since the firmware loading
procedure is skipped if there's no firmware file provided, it is safe to
set BTUSB_BCM_PATCHRAM for 13d3:* instead of adding each module one by
one.

Signed-off-by: Wen-chien Jesse Sung <[email protected]>
---
drivers/bluetooth/btusb.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)


Attachments:
0002-Bluetooth-Add-BTUSB_BCM_PATCHRAM-to-Broadcom-devices.patch (587.00 B)