Sennheiser Officerunner - cannot get freq at ep 0x83

Bug #1622763 reported by David Britton
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Fix Released
Medium
Joseph Salisbury
Xenial
Fix Released
Medium
Joseph Salisbury
Yakkety
Fix Released
Medium
Joseph Salisbury

Bug Description

This USB headset doesn't seem to support sample rate polling, similar to this issue:

https://bugzilla.kernel.org/show_bug.cgi?id=95961

== The problem ==

Every time something goes to interact with the device (playing a sound file, opening the sound panel, opening web audio/video), a 10 second pause is encountered, where dmesg prints out two messages:

  usb 2-1.2: 2:1: cannot get freq at ep 0x83
  usb 2-1.2: 2:1: cannot get freq at ep 0x83

Once the sound is playing, everything is fine. These sample rate polls don't seem to keep happening. After waiting for maybe 30 seconds after sound is playing, future interactions will again trigger the pause.

This 10 second pause can introduce other subtle problems. For instance, google hangouts will sometimes timeout waiting for the sound device to respond, and the browser tab will crash or not fully load as a result. The sound panel often also will not display the device in the list of choices, and you will have to close it out. Sometimes restart pulse audio to get it to recognize the headset again.

== The solution ==

It is simple, add this USB ID to the sound/usb/quirks.c:snd_usb_get_sample_rate_quirk function.

case USB_ID(0x1395, 0x740a): /* Sennheiser Officerunner */

version signature: Ubuntu 4.4.0-36.55-generic 4.4.16

# lsusb |grep Senn
Bus 002 Device 004: ID 1395:740a Sennheiser Communications

# zcat /var/log/kern.log.2.gz | grep 'cannot get' | tail -4
Sep 2 11:26:56 helo kernel: [908040.937098] usb 2-1.2: 2:1: cannot get freq at ep 0x4
Sep 2 11:27:01 helo kernel: [908045.941168] usb 2-1.2: 2:1: cannot get freq at ep 0x4
Sep 2 12:18:44 helo kernel: [911149.006318] usb 2-1.2: 3:1: cannot get freq at ep 0x83
Sep 2 12:18:49 helo kernel: [911154.010268] usb 2-1.2: 3:1: cannot get freq at ep 0x83
---
ApportVersion: 2.20.1-0ubuntu2.1
Architecture: amd64
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC3: dpb 12893 F.... pulseaudio
 /dev/snd/controlC2: dpb 12893 F.... pulseaudio
 /dev/snd/controlC1: dpb 12893 F.... pulseaudio
 /dev/snd/controlC0: dpb 12893 F.... pulseaudio
CurrentDesktop: Unity
DistroRelease: Ubuntu 16.04
HibernationDevice: RESUME=UUID=a9a39ff3-c97d-471e-a0b3-518b4db8685c
InstallationDate: Installed on 2015-03-18 (544 days ago)
InstallationMedia: Ubuntu 15.04 "Vivid Vervet" - Alpha amd64 (20150306)
MachineType: Hewlett-Packard HP Z620 Workstation
NonfreeKernelModules: nvidia_uvm nvidia_modeset nvidia zfs zunicode zcommon znvpair zavl
Package: linux (not installed)
ProcFB: 0 EFI VGA
ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-4.4.0-36-generic.efi.signed root=/dev/mapper/vgroot-lvroot ro console=tty0 console=ttyS4,115200 nosplash nomdmonddf nomdmonisw
ProcVersionSignature: Ubuntu 4.4.0-36.55-generic 4.4.16
RelatedPackageVersions:
 linux-restricted-modules-4.4.0-36-generic N/A
 linux-backports-modules-4.4.0-36-generic N/A
 linux-firmware 1.157.3
RfKill:
 0: hci0: Bluetooth
  Soft blocked: no
  Hard blocked: no
Tags: xenial
Uname: Linux 4.4.0-36-generic x86_64
UpgradeStatus: Upgraded to xenial on 2016-02-16 (210 days ago)
UserGroups: adm cdrom dip docker libvirtd lpadmin lxd plugdev sambashare sudo
_MarkForUpload: True
dmi.bios.date: 05/27/2015
dmi.bios.vendor: Hewlett-Packard
dmi.bios.version: J61 v03.88
dmi.board.asset.tag: 2UA41528ZC
dmi.board.name: 158A
dmi.board.vendor: Hewlett-Packard
dmi.board.version: 0.00
dmi.chassis.asset.tag: 2UA41528ZC
dmi.chassis.type: 6
dmi.chassis.vendor: Hewlett-Packard
dmi.modalias: dmi:bvnHewlett-Packard:bvrJ61v03.88:bd05/27/2015:svnHewlett-Packard:pnHPZ620Workstation:pvr:rvnHewlett-Packard:rn158A:rvr0.00:cvnHewlett-Packard:ct6:cvr:
dmi.product.name: HP Z620 Workstation
dmi.sys.vendor: Hewlett-Packard

CVE References

Revision history for this message
Brad Figg (brad-figg) wrote : Missing required logs.

This bug is missing log files that will aid in diagnosing the problem. From a terminal window please run:

apport-collect 1622763

and then change the status of the bug to 'Confirmed'.

If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.

This change has been made by an automated script, maintained by the Ubuntu Kernel Team.

Changed in linux (Ubuntu):
status: New → Incomplete
Revision history for this message
David Britton (dpb) wrote :

Will attach patch, downloading the latest xenial tree right now to make sure I generate it correctly.

Changed in linux (Ubuntu):
assignee: nobody → David Britton (davidpbritton)
Revision history for this message
David Britton (dpb) wrote :

Patch made against ubuntu-xenial Ubuntu-4.4.0-38.57

tags: added: apport-collected xenial
description: updated
Revision history for this message
David Britton (dpb) wrote : AlsaInfo.txt

apport information

Revision history for this message
David Britton (dpb) wrote : CRDA.txt

apport information

Revision history for this message
David Britton (dpb) wrote : CurrentDmesg.txt

apport information

Revision history for this message
David Britton (dpb) wrote : IwConfig.txt

apport information

Revision history for this message
David Britton (dpb) wrote : JournalErrors.txt

apport information

Revision history for this message
David Britton (dpb) wrote : Lspci.txt

apport information

Revision history for this message
David Britton (dpb) wrote : Lsusb.txt

apport information

Revision history for this message
David Britton (dpb) wrote : ProcCpuinfo.txt

apport information

Revision history for this message
David Britton (dpb) wrote : ProcEnviron.txt

apport information

Revision history for this message
David Britton (dpb) wrote : ProcInterrupts.txt

apport information

Revision history for this message
David Britton (dpb) wrote : ProcModules.txt

apport information

Changed in linux (Ubuntu):
status: Incomplete → New
Revision history for this message
David Britton (dpb) wrote : PulseList.txt

apport information

Changed in linux (Ubuntu):
assignee: David Britton (davidpbritton) → nobody
Revision history for this message
David Britton (dpb) wrote : UdevDb.txt

apport information

Revision history for this message
David Britton (dpb) wrote : WifiSyslog.txt

apport information

Revision history for this message
David Britton (dpb) wrote :

Patch made against ubuntu-xenial Ubuntu-4.4.0-38.57

Revision history for this message
Brad Figg (brad-figg) wrote : Status changed to Confirmed

This change was made by a bot.

Changed in linux (Ubuntu):
status: New → Confirmed
tags: added: patch
David Britton (dpb)
description: updated
Revision history for this message
Joseph Salisbury (jsalisbury) wrote :

Hi David,

Do you plan on sending the patch upstream?

Changed in linux (Ubuntu):
importance: Undecided → Medium
tags: added: kernel-da-key
Changed in linux (Ubuntu):
status: Confirmed → Triaged
Revision history for this message
Joseph Salisbury (jsalisbury) wrote :

I built a Xenial test kernel with the patch you posted. The test kernel can be downloaded from:

http://kernel.ubuntu.com/~jsalisbury/lp1622763/

Can you test this kernel and see if it resolves this bug? If it does, I can send the patch upstream and SRU it to the Ubuntu kernels.

You just need to install the linux-image and linux-image-extra .deb packages to test the kernel.

Changed in linux (Ubuntu):
assignee: nobody → Joseph Salisbury (jsalisbury)
status: Triaged → In Progress
Changed in linux (Ubuntu Xenial):
status: New → In Progress
Changed in linux (Ubuntu Trusty):
status: New → In Progress
Changed in linux (Ubuntu Xenial):
importance: Undecided → Medium
Changed in linux (Ubuntu Trusty):
importance: Undecided → Medium
Changed in linux (Ubuntu Xenial):
assignee: nobody → Joseph Salisbury (jsalisbury)
Changed in linux (Ubuntu Trusty):
assignee: nobody → Joseph Salisbury (jsalisbury)
Revision history for this message
David Britton (dpb) wrote :

Hi Joseph --

I installed the linux-image and -extra debs, rebooted, chose 4.4.0-36 from the advanced menu, and things work as expected. Installation was fine as well.

Testing performed:

* No frequency polling errors in kern.log (notice nothing since Sep 12 when I was running the ubuntu unpatched kernel, and it's now Sep 15):

Sep 12 15:10:14 helo kernel: [ 50.823782] usb 2-1.2: 3:1: cannot get freq at ep 0x83
Sep 12 15:10:19 helo kernel: [ 55.827676] usb 2-1.2: 3:1: cannot get freq at ep 0x83
dpb@helo:~[0]$ date
Thu Sep 15 16:57:29 MDT 2016

* Hangouts starts right up, no pausing upon launch

* Sound can be selected in `pavucontrol`, no weird pauses or hangs

* Sound file can be played from the command line fine, no pauses when starting.

Thanks for getting back to me!

no longer affects: linux (Ubuntu Trusty)
Changed in linux (Ubuntu Xenial):
status: In Progress → Fix Committed
Revision history for this message
Brad Figg (brad-figg) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-xenial' to 'verification-done-xenial'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-xenial
Revision history for this message
Joseph Salisbury (jsalisbury) wrote :

Hi David,

When you have a chance, can you verify this bug is fixed? See comment #23.

Thanks in advance!

Changed in linux (Ubuntu Yakkety):
status: In Progress → Fix Committed
Revision history for this message
David Britton (dpb) wrote :

Testing now.

Revision history for this message
David Britton (dpb) wrote :

Performed another round of testing:

1) enabled xenial proposed
2) installed all linux- images,
3) rebooted onto new image installed (-41)
4) dmesg |grep freq shows no messages
5) hangouts works fine with headset, as expected

dpb@helo:~[0]$ uname -a
Linux helo 4.4.0-41-generic #61-Ubuntu SMP Tue Sep 27 17:27:48 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

tags: added: verification-done-xenial
removed: verification-needed-xenial
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (17.5 KiB)

This bug was fixed in the package linux - 4.4.0-42.62

---------------
linux (4.4.0-42.62) xenial; urgency=low

  * Fix GRO recursion overflow for tunneling protocols (LP: #1631287)
    - tunnels: Don't apply GRO to multiple layers of encapsulation.
    - gro: Allow tunnel stacking in the case of FOU/GUE

  * CVE-2016-7039
    - SAUCE: net: add recursion limit to GRO

linux (4.4.0-41.61) xenial; urgency=low

  [ Kamal Mostafa ]

  * Release Tracking Bug
    - LP: #1628204

  * nvme drive probe failure (LP: #1626894)
    - (fix) NVMe: Don't unmap controller registers on reset

linux (4.4.0-40.60) xenial; urgency=low

  [ Kamal Mostafa ]

  * Release Tracking Bug
    - LP: #1627074

  * Permission denied in CIFS with kernel 4.4.0-38 (LP: #1626112)
    - Fix memory leaks in cifs_do_mount()
    - Compare prepaths when comparing superblocks
    - SAUCE: Fix regression which breaks DFS mounting

  * Backlight does not change when adjust it higher than 50% after S3
    (LP: #1625932)
    - SAUCE: i915_bpo: drm/i915/backlight: setup and cache pwm alternate
      increment value
    - SAUCE: i915_bpo: drm/i915/backlight: setup backlight pwm alternate
      increment on backlight enable

linux (4.4.0-39.59) xenial; urgency=low

  [ Joseph Salisbury ]

  * Release Tracking Bug
    - LP: #1625303

  * thunder: chip errata w/ multiple CQEs for a TSO packet (LP: #1624569)
    - net: thunderx: Fix for issues with multiple CQEs posted for a TSO packet

  * thunder: faulty TSO padding (LP: #1623627)
    - net: thunderx: Fix for HW issue while padding TSO packet

  * CVE-2016-6828
    - tcp: fix use after free in tcp_xmit_retransmit_queue()

  * Sennheiser Officerunner - cannot get freq at ep 0x83 (LP: #1622763)
    - SAUCE: (no-up) ALSA: usb-audio: Add quirk for sennheiser officerunner

  * Backport E3 Skylake Support in ie31200_edac to Xenial (LP: #1619766)
    - EDAC, ie31200_edac: Add Skylake support

  * Ubuntu 16.04 - Full EEH Recovery Support for NVMe devices (LP: #1602724)
    - SAUCE: nvme: Don't suspend admin queue that wasn't created

  * ISST-LTE:pNV: system ben is hung during ST (nvme) (LP: #1620317)
    - blk-mq: Allow timeouts to run while queue is freezing
    - blk-mq: improve warning for running a queue on the wrong CPU
    - blk-mq: don't overwrite rq->mq_ctx

  * lsattr 32bit does not work on 64bit kernel (Inappropriate ioctl error)
    (LP: #1619918)
    - btrfs: bugfix: handle FS_IOC32_{GETFLAGS, SETFLAGS, GETVERSION} in
      btrfs_ioctl

  * radeon: monitor connected to onboard VGA doesn't work with Xenial
    (LP: #1600092)
    - drm/radeon/dp: add back special handling for NUTMEG

  * initramfs includes qle driver, but not firmware (LP: #1623187)
    - qed: add MODULE_FIRMWARE()

  * [Hyper-V] Rebase Hyper-V to 4.7.2 (stable) (LP: #1616677)
    - hv_netvsc: Implement support for VF drivers on Hyper-V
    - hv_netvsc: Fix the list processing for network change event
    - Drivers: hv: vmbus: Introduce functions for estimating room in the ring
      buffer
    - Drivers: hv: vmbus: Use READ_ONCE() to read variables that are volatile
    - Drivers: hv: vmbus: Export the vmbus_set_event() API
    - lcoking/barriers, arch: Use smp barriers...

Changed in linux (Ubuntu Xenial):
status: Fix Committed → Fix Released
Changed in linux (Ubuntu Yakkety):
status: Fix Committed → Fix Released
Changed in linux (Ubuntu):
status: Fix Committed → Fix Released
Revision history for this message
Pinguin (riebel) wrote :

My Plantronics Blackwire C420-M seems to have the same problem:

    usb 1-4.2: 2:1: cannot get freq at ep 0x84
    usb 1-4.2: 2:1: cannot get freq at ep 0x84
    usb 1-4.2: 1:1: cannot get freq at ep 0x4
    usb 1-4.2: 1:1: cannot get freq at ep 0x4
    usb 1-4.2: 2:1: cannot get freq at ep 0x84
    usb 1-4.2: 2:1: cannot get freq at ep 0x84
    usb 1-4.2: 1:1: cannot get freq at ep 0x4
    usb 1-4.2: 1:1: cannot get freq at ep 0x4
    usb 1-4.2: 2:1: cannot get freq at ep 0x84
    usb 1-4.2: 2:1: cannot get freq at ep 0x84
    usb 1-4.2: 1:1: cannot get freq at ep 0x4
    usb 1-4.2: 1:1: cannot get freq at ep 0x4
    usb 1-4.2: 2:1: cannot get freq at ep 0x84
    usb 1-4.2: 2:1: cannot get freq at ep 0x84

user@linux:~$ uname -a
Linux linux 4.4.0-59-generic #80-Ubuntu SMP Fri Jan 6 17:47:47 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

user@linux:~$ lsusb | grep Plantronics
Bus 001 Device 005: ID 047f:aa15 Plantronics, Inc.

Can you please add the USB ID to sound/usb/quirks.c too?

Revision history for this message
Tim De Pauw (timdepauw) wrote :

With my Plantronics P610, I'm seeing this in dmesg:

[ 93.738138] usb 3-2: USB disconnect, device number 5
[ 103.950487] usb 3-4: new full-speed USB device number 6 using xhci_hcd
[ 104.228308] usb 3-4: New USB device found, idVendor=047f, idProduct=c02f
[ 104.228312] usb 3-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 104.228314] usb 3-4: Product: Plantronics P610
[ 104.228316] usb 3-4: Manufacturer: Plantronics
[ 104.228317] usb 3-4: SerialNumber: D21FA3D2B38C144D91AF207D0A9A030D
[ 104.368289] input: Plantronics Plantronics P610 as /devices/pci0000:00/0000:00:14.0/usb3/3-4/3-4:1.3/0003:047F:C02F.0002/input/input18
[ 104.422797] plantronics 0003:047F:C02F.0002: input,hiddev0,hidraw0: USB HID v1.11 Device [Plantronics Plantronics P610] on usb-0000:00:14.0-4/input3
[ 104.955080] usb 3-4: 1:1: cannot get freq at ep 0x81
[ 104.955294] usb 3-4: 1:1: cannot get freq at ep 0x81
[ 104.958747] usb 3-4: 2:1: cannot get freq at ep 0x1
[ 104.958841] usb 3-4: 2:1: cannot set freq 44100 to ep 0x1
[ 104.969429] usb 3-4: 2:1: cannot get freq at ep 0x1
[ 104.969543] usb 3-4: 2:1: cannot set freq 44100 to ep 0x1
[ 104.973338] usb 3-4: 2:1: cannot get freq at ep 0x1
[ 104.973430] usb 3-4: 2:1: cannot set freq 44100 to ep 0x1
[ 104.977360] usb 3-4: 2:1: cannot get freq at ep 0x1
[ 104.977461] usb 3-4: 2:1: cannot set freq 44100 to ep 0x1
[ 104.981966] usb 3-4: 2:1: cannot get freq at ep 0x1
[ 104.982055] usb 3-4: 2:1: cannot set freq 44100 to ep 0x1
[ 104.985335] usb 3-4: 2:1: cannot get freq at ep 0x1
[ 104.985434] usb 3-4: 2:1: cannot set freq 44100 to ep 0x1
[ 104.989361] usb 3-4: 2:1: cannot get freq at ep 0x1
[ 104.989471] usb 3-4: 2:1: cannot set freq 44100 to ep 0x1
[ 104.993311] usb 3-4: 2:1: cannot get freq at ep 0x1
[ 104.993397] usb 3-4: 2:1: cannot set freq 44100 to ep 0x1
[ 104.997442] usb 3-4: 1:1: cannot get freq at ep 0x81
[ 104.997589] usb 3-4: 1:1: cannot set freq 44100 to ep 0x81
[ 104.999399] usb 3-4: 1:1: cannot get freq at ep 0x81
[ 104.999504] usb 3-4: 1:1: cannot set freq 44100 to ep 0x81
[ 105.001310] usb 3-4: 1:1: cannot get freq at ep 0x81
[ 105.001379] usb 3-4: 1:1: cannot set freq 44100 to ep 0x81
[ 105.003233] usb 3-4: 1:1: cannot get freq at ep 0x81
[ 105.003339] usb 3-4: 1:1: cannot set freq 44100 to ep 0x81

As a result, the device will sporadically show up in Google Hangouts in Chrome. Sometimes, it'll only show the mic and not the speaker.

This didn't happen with a similar device produced by Sennheiser. Would a patch for Plantronics devices as suggested in #28 fix it?

This is on 16.04.3 with -proposed enabled.

$ uname -a
Linux chowchow 4.4.0-88-generic #111-Ubuntu SMP Thu Jul 20 09:32:39 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

$ lsusb | grep Plantronics
Bus 003 Device 006: ID 047f:c02f Plantronics, Inc.

If this is a different issue, I apologize. It's hard to tell from the above.

Revision history for this message
Kai-Heng Feng (kaihengfeng) wrote :

@Tim
Please file a new bug report.

Revision history for this message
mihai (dubsauce) wrote :

@Tim De Pauw (timdepauw)
You can add the details here, i created a new bug:

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1709282

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.