Hi Joerg,

>>>>> In 5.2.0-rcx I see a new error message on startup probably after
>>>>> loading the Bluetooth firmware:
>>>>> [    1.609460] Bluetooth: hci0: unexpected event for opcode 0xfc2f
>>>>> 
>>>>>> dmesg | grep Bluetooth
>>>>> [    0.130969] Bluetooth: Core ver 2.22
>>>>> [    0.130973] Bluetooth: HCI device and connection manager initialized
>>>>> [    0.130974] Bluetooth: HCI socket layer initialized
>>>>> [    0.130975] Bluetooth: L2CAP socket layer initialized
>>>>> [    0.130976] Bluetooth: SCO socket layer initialized
>>>>> [    0.374716] Bluetooth: RFCOMM TTY layer initialized
>>>>> [    0.374718] Bluetooth: RFCOMM socket layer initialized
>>>>> [    0.374718] Bluetooth: RFCOMM ver 1.11
>>>>> [    0.374719] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
>>>>> [    0.374720] Bluetooth: BNEP socket layer initialized
>>>>> [    0.374721] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
>>>>> [    0.374722] Bluetooth: HIDP socket layer initialized
>>>>> [    1.422530] Bluetooth: hci0: read Intel version: 370710018002030d00
>>>>> [    1.422533] Bluetooth: hci0: Intel Bluetooth firmware file:
>>>>> intel/ibt-hw-37.7.10-fw-1.80.2.3.d.bseq
>>>>> [    1.609460] Bluetooth: hci0: unexpected event for opcode 0xfc2f
>>>>> [    1.625557] Bluetooth: hci0: Intel firmware patch completed and 
>>>>> activated
>>>>> [   21.986125] input: BluetoothMouse3600 Mouse as
>>>>> /devices/virtual/misc/uhid/0005:045E:0916.0004/input/input15
>>>>> [   21.986329] input: BluetoothMouse3600 Consumer Control as
>>>>> /devices/virtual/misc/uhid/0005:045E:0916.0004/input/input16
>>>>> [   21.986408] hid-generic 0005:045E:0916.0004: input,hidraw3:
>>>>> BLUETOOTH HID v1.10 Mouse [BluetoothMouse3600] on 80:19:34:4D:31:44
>>>>> 
>>>>> 
>>>>> The error message goes away if I revert following patch:
>>>>> f80c5dad7b64 Bluetooth: Ignore CC events not matching the last HCI command
>>>> 
>>>> if you can send btmon trace (or better btmon -w trace.log) for this event 
>>>> triggering it, then we can look if this is a hardware issue.
>>> 
>>> The problem is that it happens only once during startup, especially at
>>> the very first startup after power-on only. So I can't issue any
>>> command.
>> 
>> try to blacklist btusb.ko module. Create 
>> /etc/modprobe.d/blacklist-btusb.conf with the content of "blacklist vc4”.
> 
> I hhink you mean "blacklist btusb"
> 
>> Then once booted, start “btmon -w trace.log” and then “modprobe btusb”. This 
>> should give you the initial firmware loading trace.
>> 
>> I am just assuming that the module is connected via USB, if not then you 
>> need to let me know.
>> 
>>>> We have only seen this with Atheros hardware so far, but it might happen 
>>>> for others as well. It indicates that this is an unexpected event. 
>>>> Normally you can ignore this warning since it just indicates an existing 
>>>> issue that we just papered over before. So if everything works as before, 
>>>> just ignore it,
>>> 
>>> Yes for me BT works as usual so ignoring it would be no problem (but
>>> it looks ugly because the error message is painted right on the
>>> boot-screen).
>> 
>> The 0xfc2f command is never issued by btusb.c or btintel.c actually. It is a 
>> command to apply the BDDATA information used only by Intel AG6xx devices 
>> which are UART only. So I am almost certain that this is a bug in the 
>> hardware / firmware and the patch above just started to highlight it. The 
>> trace will show if that is the case.
> 
> Done!. Here comes trace.log.

so this is the culprit command.

< HCI Command: Intel Write BD Data (0x3f|0x002f) plen 80
        Address: 00:00:00:00:00:00 (OUI 00-00-00)
        ...
> HCI Event: Command Status (0x0f) plen 4
      Intel Write BD Data (0x3f|0x002f) ncmd 1
        Status: Success (0x00)
> HCI Event: Vendor (0xff) plen 2
      Intel Write BD Data Complete (0x19)
        Status: Success (0x00)

There is actually nothing wrong with it and the firmware bseq file clearly says 
that it is expecting a command status followed by the vendor event. The driver 
however for simplicity reasons is using __hci_cmd_sync_ev and just waiting for 
the vendor event since the command status doesn’t offer any useful information 
in the success case.

Now I think that in the case of __hci_cmd_sync_ev with an extra event expected, 
we should not print this error when receiving the command status since that is 
clearly a valid response. How to achieve that, I don’t know yet. Maybe Joao 
Paulo has an idea.

Regards

Marcel

Reply via email to