[alsa-devel] emi62 (may be slightly off-topic)

Monty Montgomery xiphmont at gmail.com
Fri Feb 15 16:37:07 CET 2013


On Fri, Feb 15, 2013 at 10:28 AM, Monty Montgomery <xiphmont at gmail.com> wrote:
> The in-kernel firmware loaders are also completely broken right now
> due to the movement of the loader to userspace causing a deadlock in
> the load process.

Sorry, let me be more clear there; it is now the responsibility of
systemd to find and return firmware when the in-kernel loader makes a
firmware request.  Unfortunately, systemd can't resist firing off
several 'learn everything we can about this device!' threads when the
firmware request comes in, and if one of them hits the USB bus blocked
in probe() waiting for firmware before the firmware request is
fufilled (this happens much of the time) the load request deadlocks.
It will time out in ~20s, and then the process repeats through several
retries before finally failing.

The solution is a loader that makes an asynchronous firmware request
in probe and handles the response in a callback, which is what my new
loader did/does.

Also: I'm happy to resubmit the code, but I'm not interested in trying
to chase down all the licensing information for the firmware as Tapio
has disappeared and eMagic is no more.  As far as I know, we never had
anything but Tapio's word that we had permission to ship any version
of firmware.  I'd rather just see the driver pulled from the kernel
(after all, it hasn't worked in years), and distribute modules by hand
as an individual to the last remaining eMagic people, than deal with
the red tape.

Monty


More information about the Alsa-devel mailing list