lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Sat, 10 Dec 2011 19:45:39 +0000
From:	"Richard W.M. Jones" <rjones@...hat.com>
To:	alsa-devel@...a-project.org
Cc:	Tom Walder <tom.walder@...il.com>, linux-kernel@...r.kernel.org
Subject: [PATCH] Jabra SPEAK 410 USB - no audio playback


The attached patch fixes USB audio support for the Jabra SPEAK 410 USB.

The problem, as I understand it, is that the device contains a
Class-Specific Endpoint (CS_ENDPOINT) descriptor before the Endpoint
(ENDPOINT) descriptor.  The USB code all assumes that CS_ENDPOINT can
only appear after ENDPOINT.  Therefore the USB code divides up the
interface descriptor into "stuff before ENDPOINT" (in
interface->extra) and "stuff after ENDPOINT" (in
interface->endpoint[0]->extra).  For this device, this division does
not work.

You can see lsusb for my device here:
http://mailman.alsa-project.org/pipermail/alsa-devel/2011-December/047036.html
Notice the "** UNRECOGNIZED: 07 25 01 81 02 00 00" line which is the
CS_ENDPOINT descriptor.

The solution (which is a hack ...) is to also search interface->extra
looking for the missing descriptor.

For me, this fully enables the functions of this device.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming blog: http://rwmj.wordpress.com
Fedora now supports 80 OCaml packages (the OPEN alternative to F#)
http://cocan.org/getting_started_with_ocaml_on_red_hat_and_fedora

View attachment "linux-3.1.fc16-jabra.patch" of type "text/plain" (927 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ