* Re: Broadcom BCM4324(1) rev B5 chipset - Bluetooth support in Linux Kernel 4.x ? [not found] <CA+kEDGEHfsODon6aOdLU86E9c0Lfs-4bo=ycEZz3MdEa1qLrKw@mail.gmail.com> @ 2016-02-22 9:17 ` Arend Van Spriel 2016-02-28 17:56 ` Jérôme de Bretagne 2016-02-28 18:23 ` Jérôme de Bretagne 0 siblings, 2 replies; 9+ messages in thread From: Arend Van Spriel @ 2016-02-22 9:17 UTC (permalink / raw) To: Jérôme de Bretagne, marcel; +Cc: Ilya Faenson, linux-bluetooth + Ilya + bt list On 21-2-2016 15:17, Jérôme de Bretagne wrote: > Hi, > > Since a commit from last April, the BCM4324(1) rev B5 chipset is > supported in the Linux kernel and WiFi networking has been working > like a charm on a Lenovo ThinkPad 8 tablet (running Linux > 4.3.0-1-amd64 from Debian). A big "Thanks" for that. > > On the other hand, the Bluetooth part doesn't show up at all (empty > result with hciconfig) and doesn't seem active with that same 4.3 > kernel. I don't even see any error message in dmesg about Bluetooth. > > bluetooth/btbcm.c mentions quite a few chipsets (UART/USB) but not the > 4324 rev B5 so I'm not sure of the current Bluetooth status for that > specific one. Is this chipset enabled for Bluetooth starting with > Linux 4.4 or in the coming 4.5 version maybe? I couldn't check 4.4 > properly yet as this kernel version locks currently on my tablet (for > other reasons). > > If it is not fully supported yet, feel free to ask any info that could > help enable Bluetooth for this chipset on the ThinkPad 8 tablet! > > Thanks, > > Jérôme > > > P.S. I guess the following page > https://wireless.wiki.kernel.org/en/users/Drivers/brcm80211 could be > updated to show that Wireless LAN is properly working. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Broadcom BCM4324(1) rev B5 chipset - Bluetooth support in Linux Kernel 4.x ? 2016-02-22 9:17 ` Broadcom BCM4324(1) rev B5 chipset - Bluetooth support in Linux Kernel 4.x ? Arend Van Spriel @ 2016-02-28 17:56 ` Jérôme de Bretagne 2016-02-28 18:23 ` Jérôme de Bretagne 1 sibling, 0 replies; 9+ messages in thread From: Jérôme de Bretagne @ 2016-02-28 17:56 UTC (permalink / raw) To: arend; +Cc: Marcel Holtmann, Ilya Faenson, linux-bluetooth [-- Attachment #1: Type: text/plain, Size: 3152 bytes --] Hi, I've been able to continue my investigation and I can confirm that I am getting the same results on both Linux kernel: - 4.4 - linux-image-4.4.0-1-amd64 from Debian (v4.4.2-3) - 4.5 rc4 - linux-image-4.5.0-rc4-amd64 from Debian (4.5~rc4-1~exp1) and in both cases no error message whatsoever related to Bluetooth. It seems this BCM4324(1) rev B5 chipset is not initialized from a Bluetooth point of view, while working great for Wi-Fi. I've seen recent patches adding support for some devices simply by adding their respective ACPI ID in hci_bcm.c (BCM2E7C for MacBook 2015, BCM2E65 for the Asus T100TAF, BCM2E54 for the HP Omni 10) so I've just taken a look at the data listed by the ACPI subsystem on this tablet: $ ls /sys/bus/acpi/devices/BCM* -d1 /sys/bus/acpi/devices/BCM2E3C:00 /sys/bus/acpi/devices/BCM2E55:00 Neither of these 2 IDs (BCM2E3C, BCM2E55) is listed in hci_bcm.c. It's just a guess at this stage but could one of these be the missing element required in hci_bcm.c to initialize Bluetooth on the Lenovo ThinkPad 8 Tablet maybe? I don't know if the following commands might give a hint to filter between the two IDs: $ cat /sys/bus/acpi/devices/BCM2E3C\:00/status 0 $ cat /sys/bus/acpi/devices/BCM2E55\:00/status 15 If I can provide more information that would be useful for you, feel free to ask as I would be glad to help. Jérôme P.S. I don't know if I should provide a binary firmware somehow to trigger its initialization (as I've done for the Wi-Fi part) but I would expect to see an error message complaining not to find the required binary file if that was the case. 2016-02-22 10:17 GMT+01:00 Arend Van Spriel <arend.vanspriel@broadcom.com>: > + Ilya > + bt list > > On 21-2-2016 15:17, Jérôme de Bretagne wrote: > > Hi,https://mail.google.com/mail/u/0/#inbox/1530430f49b01795 > > > > Since a commit from last April, the BCM4324(1) rev B5 chipset is > > supported in the Linux kernel and WiFi networking has been working > > like a charm on a Lenovo ThinkPad 8 tablet (running Linux > > 4.3.0-1-amd64 from Debian). A big "Thanks" for that. > > > > On the other hand, the Bluetooth part doesn't show up at all (empty > > result with hciconfig) and doesn't seem active with that same 4.3 > > kernel. I don't even see any error message in dmesg about Bluetooth. > > > > bluetooth/btbcm.c mentions quite a few chipsets (UART/USB) but not the > > 4324 rev B5 so I'm not sure of the current Bluetooth status for that > > specific one. Is this chipset enabled for Bluetooth starting with > > Linux 4.4 or in the coming 4.5 version maybe? I couldn't check 4.4 > > properly yet as this kernel version locks currently on my tablet (for > > other reasons). > > > > If it is not fully supported yet, feel free to ask any info that could > > help enable Bluetooth for this chipset on the ThinkPad 8 tablet! > > > > Thanks, > > > > Jérôme > > > > > > P.S. I guess the following page > > https://wireless.wiki.kernel.org/en/users/Drivers/brcm80211 could be > > updated to show that Wireless LAN is properly working. > > [-- Attachment #2: Type: text/html, Size: 4251 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Broadcom BCM4324(1) rev B5 chipset - Bluetooth support in Linux Kernel 4.x ? 2016-02-22 9:17 ` Broadcom BCM4324(1) rev B5 chipset - Bluetooth support in Linux Kernel 4.x ? Arend Van Spriel 2016-02-28 17:56 ` Jérôme de Bretagne @ 2016-02-28 18:23 ` Jérôme de Bretagne 2016-02-28 19:54 ` Loic Poulain 1 sibling, 1 reply; 9+ messages in thread From: Jérôme de Bretagne @ 2016-02-28 18:23 UTC (permalink / raw) To: linux-bluetooth Hi, I've been able to continue my investigation and I can confirm that I am getting the same results on both Linux kernel: - 4.4 - linux-image-4.4.0-1-amd64 from Debian (v4.4.2-3) - 4.5 rc4 - linux-image-4.5.0-rc4-amd64 from Debian (4.5~rc4-1~exp1) and in both cases no error message whatsoever related to Bluetooth. It seems this BCM4324(1) rev B5 chipset is not initialized from a Bluetooth point of view, while working great for Wi-Fi. I've seen recent patches adding support for some devices simply by adding their respective ACPI ID in hci_bcm.c (BCM2E7C for MacBook 2015, BCM2E65 for the Asus T100TAF, BCM2E54 for the HP Omni 10) so I've just taken a look at the data listed by the ACPI subsystem on this tablet: $ ls /sys/bus/acpi/devices/BCM* -d1 /sys/bus/acpi/devices/BCM2E3C:00 /sys/bus/acpi/devices/BCM2E55:00 Neither of these 2 IDs (BCM2E3C, BCM2E55) is listed in hci_bcm.c. It's just a guess at this stage but could one of these be the missing element required in hci_bcm.c to initialize Bluetooth on the Lenovo ThinkPad 8 Tablet maybe? I don't know if the following commands might give a hint to filter between the two IDs: $ cat /sys/bus/acpi/devices/BCM2E3C\:00/status 0 $ cat /sys/bus/acpi/devices/BCM2E55\:00/status 15 If I can provide more information that would be useful for you, feel free to ask as I would be glad to help. Jérôme P.S. I don't know if I should provide a binary firmware somehow to trigger its initialization (as I've done for the Wi-Fi part) but I would expect to see an error message complaining not to find the required binary file if that was the case. 2016-02-22 10:17 GMT+01:00 Arend Van Spriel <arend.vanspriel@broadcom.com>: > + Ilya > + bt list > > On 21-2-2016 15:17, Jérôme de Bretagne wrote: >> Hi, >> >> Since a commit from last April, the BCM4324(1) rev B5 chipset is >> supported in the Linux kernel and WiFi networking has been working >> like a charm on a Lenovo ThinkPad 8 tablet (running Linux >> 4.3.0-1-amd64 from Debian). A big "Thanks" for that. >> >> On the other hand, the Bluetooth part doesn't show up at all (empty >> result with hciconfig) and doesn't seem active with that same 4.3 >> kernel. I don't even see any error message in dmesg about Bluetooth. >> >> bluetooth/btbcm.c mentions quite a few chipsets (UART/USB) but not the >> 4324 rev B5 so I'm not sure of the current Bluetooth status for that >> specific one. Is this chipset enabled for Bluetooth starting with >> Linux 4.4 or in the coming 4.5 version maybe? I couldn't check 4.4 >> properly yet as this kernel version locks currently on my tablet (for >> other reasons). >> >> If it is not fully supported yet, feel free to ask any info that could >> help enable Bluetooth for this chipset on the ThinkPad 8 tablet! >> >> Thanks, >> >> Jérôme >> >> >> P.S. I guess the following page >> https://wireless.wiki.kernel.org/en/users/Drivers/brcm80211 could be >> updated to show that Wireless LAN is properly working. > ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Broadcom BCM4324(1) rev B5 chipset - Bluetooth support in Linux Kernel 4.x ? 2016-02-28 18:23 ` Jérôme de Bretagne @ 2016-02-28 19:54 ` Loic Poulain [not found] ` <CA+kEDGHbzH9VPRUaz5-JPsU5kHTDk8UwGGmt94rGVXiG1KY-Ow@mail.gmail.com> 0 siblings, 1 reply; 9+ messages in thread From: Loic Poulain @ 2016-02-28 19:54 UTC (permalink / raw) To: Jérôme de Bretagne, linux-bluetooth Hi Jerome, > It seems this BCM4324(1) rev B5 chipset is not initialized from a > Bluetooth point of view, while working great for Wi-Fi. I suppose this combo chip uses SDIO bus for WiFi and UART for Bluetooth. If so, you need to attach the correct UART port to the hci_uart line discipline from user-space. > I've seen recent patches adding support for some devices simply by > adding their respective ACPI ID in hci_bcm.c (BCM2E7C for MacBook > 2015, BCM2E65 for the Asus T100TAF, BCM2E54 for the HP Omni 10) so > I've just taken a look at the data listed by the ACPI subsystem on > this tablet: > > $ ls /sys/bus/acpi/devices/BCM* -d1 > /sys/bus/acpi/devices/BCM2E3C:00 > /sys/bus/acpi/devices/BCM2E55:00 Usually, Broadcom BT controller is described in the ACPI table. You can retrieve your ACPI table at /sys/firmware/acpi/tables/DSDT and decompile it with iasl. You should have a Bluetooth node (BTHX): Device (BTH1) { Name (_HID, "BCM...") With some gpio/irq resources. (0: wakeup, 1: power-, 2:host-wakeup). > Neither of these 2 IDs (BCM2E3C, BCM2E55) is listed in hci_bcm.c. It's > just a guess at this stage but could one of these be the missing > element required in hci_bcm.c to initialize Bluetooth on the Lenovo > ThinkPad 8 Tablet maybe? I don't know if the following commands might > give a hint to filter between the two IDs: > > $ cat /sys/bus/acpi/devices/BCM2E3C\:00/status > 0 > $ cat /sys/bus/acpi/devices/BCM2E55\:00/status > 15 Check in your acpi table if one of them matches a bluetooth node. Then, try to add it in the acpi device id list in hci_bcm.c. Second step is to attach the device, but you need to find the correct tty to use. If your ACPI table is correct, BCM acpi device should appear as a child of a tty device in sysfs. The physical_node symlink in your device directory (sys/bus/acpi...) gives you the hierarchical path. Now, you can run btattach (bluez tool): $ btattach -B /dev/ttySX -P bcm And check that hci0 has been created $ hciconfig Regards, Loic -- Intel Open Source Technology Center http://oss.intel.com/ ^ permalink raw reply [flat|nested] 9+ messages in thread
[parent not found: <CA+kEDGHbzH9VPRUaz5-JPsU5kHTDk8UwGGmt94rGVXiG1KY-Ow@mail.gmail.com>]
* Re: Broadcom BCM4324(1) rev B5 chipset - Bluetooth support in Linux Kernel 4.x ? [not found] ` <CA+kEDGHbzH9VPRUaz5-JPsU5kHTDk8UwGGmt94rGVXiG1KY-Ow@mail.gmail.com> @ 2016-02-28 22:58 ` Loic Poulain 2016-03-06 13:22 ` Jérôme de Bretagne 0 siblings, 1 reply; 9+ messages in thread From: Loic Poulain @ 2016-02-28 22:58 UTC (permalink / raw) To: Jérôme de Bretagne; +Cc: linux-bluetooth Jerome, >>> I've just taken a look at the data listed by the ACPI subsystem on >>> this tablet: >>> >>> $ ls /sys/bus/acpi/devices/BCM* -d1 >>> /sys/bus/acpi/devices/BCM2E3C:00 >>> /sys/bus/acpi/devices/BCM2E55:00 >> >> Usually, Broadcom BT controller is described in the ACPI table. >> You can retrieve your ACPI table at /sys/firmware/acpi/tables/DSDT and >> decompile it with iasl. >> You should have a Bluetooth node (BTHX): >> Device (BTH1) >> { >> Name (_HID, "BCM...") >> >> With some gpio/irq resources. (0: wakeup, 1: power-, 2:host-wakeup). >> >> Check in your acpi table if one of them matches a bluetooth node. > Both of them are matching a Bluetooth node it seems to me, with BTH0 > and BTH1 entries respectively. I've attached the original DSDT ACPI > table (dsdt.dat) and the decompiled version (dsdt.dsl). Any useful > information in there? from your DSDT: BTH0 _STA (status) method returns 0x00 meaning that this device is not present. BTH1 _STA method returns 0x0F meaning that this device is present. So your BT controller is BTH1 (BCM2E55). The ACPI table for this BTH1 looks good (1 irq + 2 gpios ) so it should be compatible with hci_bcm. >> Second step is to attach the device, but you need to find the correct tty to >> use. >> If your ACPI table is correct, BCM acpi device should appear as a child of a >> tty device in sysfs. >> The physical_node symlink in your device directory (sys/bus/acpi...) gives >> you the hierarchical path. > Before applying any patches to hci_bcm.c , BCM2E55 has already the > following hierarchical path: > > /sys/bus/acpi/devices/BCM2E55:00$ ls -l physical_node > lrwxrwxrwx 1 root root 0 févr. 28 21:45 physical_node -> > ../../../../platform/80860F0A:00/BCM2E55:00 80860F0A is the UART controller (8250_dw), looks good. So you should also find BCM2E55 id into: /sys/class/ttyS*/device/ > while BCM2E3C has none: > > sys/bus/acpi/devices/BCM2E3C:00$ ls > hid modalias path power status subsystem uevent Yes because BCM2E3C is not enabled. Regards, Loic -- Intel Open Source Technology Center http://oss.intel.com/ ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Broadcom BCM4324(1) rev B5 chipset - Bluetooth support in Linux Kernel 4.x ? 2016-02-28 22:58 ` Loic Poulain @ 2016-03-06 13:22 ` Jérôme de Bretagne 2016-03-07 9:42 ` Loic Poulain 0 siblings, 1 reply; 9+ messages in thread From: Jérôme de Bretagne @ 2016-03-06 13:22 UTC (permalink / raw) To: Loic Poulain, Ilya Faenson, linux-bluetooth, Marcel Holtmann Hi, > So your BT controller is BTH1 (BCM2E55). > The ACPI table for this BTH1 looks good (1 irq + 2 gpios ) so it should b= e > compatible with hci_bcm. I can confirm that it is compatible with hci_bcm; Bluetooth is indeed fully working using the bluetooth-next tree on the ThinkPad Tablet 8. Thanks again Marcel to have applied the patch and Loic to have helped me find the right ACPI ID. Maybe this is a naive question about ACPI ID, and not specific to Broadcom by the way: could there be a more generic way to gather ACPI IDs used by new devices and add them to the kernel on a regular basis? They seem to be added almost one by one mainly upon user reports when looking at the mailing list. So Bluetooth doesn't work out-of-the-box on some systems which would be compatible otherwise, especially the less popular ones. Is there no existing driver list to re-use perhaps? > Now, you can run btattach (bluez tool): > $ btattach -B /dev/ttySX -P bcm Indeed, it is working fine with ttyS1 and the correct binary firmware stored at /lib/firmware/brcm/BCM.hcd: # btattach -B /dev/ttyS1 -P bcm Attaching BR/EDR controller to /dev/ttyS1 Switched line discipline from 0 to 15 Device index 0 attached Finally, is btattach the only command recommended and supported moving forward, or should hciattach work as well with that specific chipset/tablet (as a transition until most Linux distros switch to btattach)? Regards, J=C3=A9r=C3=B4me P.S. for information if it can be useful to someone else: > And check that hci0 has been created > $ hciconfig $ hciconfig -a hci0: Type: BR/EDR Bus: UART BD Address: B0:10:41:B8:16:6C ACL MTU: 1021:8 SCO MTU: 64:1 UP RUNNING RX bytes:110596 acl:4422 sco:0 events:328 errors:0 TX bytes:35333 acl:36 sco:0 commands:273 errors:0 Features: 0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87 Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 Link policy: RSWITCH SNIFF Link mode: SLAVE ACCEPT Name: 'thinkpad8' Class: 0x10011c Service Classes: Object Transfer Device Class: Computer, Unknown (reserved) minor device class HCI Version: 4.0 (0x6) Revision: 0x3492 LMP Version: 4.0 (0x6) Subversion: 0x4606 Manufacturer: Broadcom Corporation (15) ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Broadcom BCM4324(1) rev B5 chipset - Bluetooth support in Linux Kernel 4.x ? 2016-03-06 13:22 ` Jérôme de Bretagne @ 2016-03-07 9:42 ` Loic Poulain 2016-03-07 10:48 ` Jérôme de Bretagne 0 siblings, 1 reply; 9+ messages in thread From: Loic Poulain @ 2016-03-07 9:42 UTC (permalink / raw) To: Jérôme de Bretagne, Ilya Faenson, linux-bluetooth, Marcel Holtmann Hi Jerome, > Maybe this is a naive question about ACPI ID, and not specific to > Broadcom by the way: could there be a more generic way to gather ACPI > IDs used by new devices and add them to the kernel on a regular basis? > They seem to be added almost one by one mainly upon user reports when > looking at the mailing list. So Bluetooth doesn't work out-of-the-box > on some systems which would be compatible otherwise, especially the > less popular ones. Is there no existing driver list to re-use perhaps? New ACPI ID means that this is a different hardware. So it needs to be tested before being added into the driver supported list. An already supported hardware should keep the same ACPI ID, making it work out-of the-box. Since this driver is pretty new, this is not surprising that some IDs are regularly added. This is a good thing. Meaning that people use this driver and that Broadcom controllers keep good compatibility across hardware versions. > Indeed, it is working fine with ttyS1 and the correct binary firmware > stored at /lib/firmware/brcm/BCM.hcd: > > # btattach -B /dev/ttyS1 -P bcm > Attaching BR/EDR controller to /dev/ttyS1 > Switched line discipline from 0 to 15 > Device index 0 attached > > Finally, is btattach the only command recommended and supported moving > forward, or should hciattach work as well with that specific > chipset/tablet (as a transition until most Linux distros switch to > btattach)? Absolutely, think btattach is the only recommended way. Even if you can make it work with hciattach by adding device entry with correct protocol ID, it is not recommended since hciattach is dedicated to user-space initialisation (old-way) and code is pretty deprecated. Regards, Loic -- Intel Open Source Technology Center http://oss.intel.com/ ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Broadcom BCM4324(1) rev B5 chipset - Bluetooth support in Linux Kernel 4.x ? 2016-03-07 9:42 ` Loic Poulain @ 2016-03-07 10:48 ` Jérôme de Bretagne 2016-03-07 15:06 ` Loic Poulain 0 siblings, 1 reply; 9+ messages in thread From: Jérôme de Bretagne @ 2016-03-07 10:48 UTC (permalink / raw) To: Loic Poulain; +Cc: Ilya Faenson, linux-bluetooth, Marcel Holtmann Hi Loic, > New ACPI ID means that this is a different hardware. So it needs to be > tested before being added into the driver supported list. An already > supported hardware should keep the same ACPI ID, making it work out-of > the-box. That makes sense. What about the other ACPI ID (BCM2E3C) that I've found in the ACPI table of that ThinkPad 8 tablet? Is it included in its table to cover another HW variant of that product, using a different Broadcom chipset? Any value for you if I create a similar patch (without being able to test it)? I guess the answer will be "No" from your message above but just let me know. >> Finally, is btattach the only command recommended and supported moving >> forward > > > Absolutely, think btattach is the only recommended way. > Even if you can make it work with hciattach by adding device entry with > correct protocol ID, it is not recommended since hciattach is dedicated > to user-space initialisation (old-way) and code is pretty deprecated. That's what I thought, thanks for the confirmation. Regards, J=C3=A9r=C3=B4me ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Broadcom BCM4324(1) rev B5 chipset - Bluetooth support in Linux Kernel 4.x ? 2016-03-07 10:48 ` Jérôme de Bretagne @ 2016-03-07 15:06 ` Loic Poulain 0 siblings, 0 replies; 9+ messages in thread From: Loic Poulain @ 2016-03-07 15:06 UTC (permalink / raw) To: Jérôme de Bretagne Cc: Ilya Faenson, linux-bluetooth, Marcel Holtmann Hi Jerome > What about the other ACPI ID (BCM2E3C) that I've found in the ACPI > table of that ThinkPad 8 tablet? Is it included in its table to cover > another HW variant of that product, using a different Broadcom > chipset? Any value for you if I create a similar patch (without being > able to test it)? I guess the answer will be "No" from your message > above but just let me know. Yes, ACPI table is often filled with different optional components so that it can be compatible with several platform variants without impact on the ACPI data. Then, components are enabled/disabled depending board ID. This BCM2E3C is disabled on your platform, but seems compatible with hci_bcm UART driver (2GPIOs + 1IRQ). Should be only a revision of BCM2Ex. Broadcom input is welcome here. Regards, Loic -- Intel Open Source Technology Center http://oss.intel.com/ ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2016-03-07 15:06 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <CA+kEDGEHfsODon6aOdLU86E9c0Lfs-4bo=ycEZz3MdEa1qLrKw@mail.gmail.com>
2016-02-22 9:17 ` Broadcom BCM4324(1) rev B5 chipset - Bluetooth support in Linux Kernel 4.x ? Arend Van Spriel
2016-02-28 17:56 ` Jérôme de Bretagne
2016-02-28 18:23 ` Jérôme de Bretagne
2016-02-28 19:54 ` Loic Poulain
[not found] ` <CA+kEDGHbzH9VPRUaz5-JPsU5kHTDk8UwGGmt94rGVXiG1KY-Ow@mail.gmail.com>
2016-02-28 22:58 ` Loic Poulain
2016-03-06 13:22 ` Jérôme de Bretagne
2016-03-07 9:42 ` Loic Poulain
2016-03-07 10:48 ` Jérôme de Bretagne
2016-03-07 15:06 ` Loic Poulain
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).