[alsa-devel] emi62 (may be slightly off-topic)
tiwai at suse.de
Fri Feb 15 17:07:49 CET 2013
At Fri, 15 Feb 2013 10:37:07 -0500,
Monty Montgomery wrote:
> 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.
Do you still have the patch for async load? The fix patch on the blog
entry isn't that.
The recent kernel switched the firmware loading in kernel without udev
(it might be still used as fallback, though), thus udev is no longer a
problem. But the bus-blocking behavior will be still an issue.
> 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.
Yeah, the license issue about such firmware files is horrible.
It's one of the reasons that the firmware went out of kernel tree.
More information about the Alsa-devel