2019-06-05 11:32:51

by Jörg Otte

[permalink] [raw]
Subject: [5.2.0-rcx] Bluetooth: hci0: unexpected event for opcode

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

Thanks, Jörg


2019-06-06 06:19:47

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [5.2.0-rcx] Bluetooth: hci0: unexpected event for opcode

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. 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, but send me the trace and I can look if the event is erroneous or if we can silence the warning for the Intel hardware.

Regards

Marcel

2019-06-06 10:38:41

by Jörg Otte

[permalink] [raw]
Subject: Re: [5.2.0-rcx] Bluetooth: hci0: unexpected event for opcode

Am Do., 6. Juni 2019 um 08:18 Uhr schrieb Marcel Holtmann <[email protected]>:
>
> 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.

>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).

Thanks, Jörg

2019-06-06 16:52:03

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [5.2.0-rcx] Bluetooth: hci0: unexpected event for opcode

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”. 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.

Regards

Marcel

2019-06-06 18:54:57

by Jörg Otte

[permalink] [raw]
Subject: Re: [5.2.0-rcx] Bluetooth: hci0: unexpected event for opcode

Am Do., 6. Juni 2019 um 13:20 Uhr schrieb Marcel Holtmann <[email protected]>:
>
> 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.

Thank's Jörg


Attachments:
trace.log (45.83 kB)

2019-06-06 21:12:07

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [5.2.0-rcx] Bluetooth: hci0: unexpected event for opcode

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