Re: what determines how firmware is loaded? (Q. on request_firmwaredetails)

From: Greg KH
Date: Mon Apr 23 2012 - 17:21:45 EST


On Mon, Apr 23, 2012 at 04:18:56PM -0400, George Nychis wrote:
> Hi all,
>
> I notice in an older version of Ubuntu that when I plugin a USB
> wireless device its firmware is loaded via sysfs. For example, this
> would pop up in sysfs:
> /sys/devices/pci0000:00/0000:00:1d.7/usb2/2-1/compat_firmware/2-1/loading

How old are we talking about here? What version of the kernel?

> In newer versions, I'm now seeing that the firmware seems to be loaded
> directly via a Kernel thread that is spawned. It checks for the
> firmware in some firmware directory (e.g., /lib/firmware) and loads it
> to the device.

Yes.

> I see in documentation that one method is referred to as asynchronous.
> Is this the former or latter?

Depends on the device.

> Has the former method of loading firmware been removed as the default?
> Is there any way to request that the firmware load be done manually
> (the former method)?

Why? In the end, they do the same thing, right?

> It seems as though instead of calling request_firmware(), I could call
> _request_firmware() with "uevent" set to 0? This would force for
> former behavior?
>
> Does "nowait" also have to be 0? I don't quite understand the
> separation between uevent and nowait.

I don't understand the problem here, isn't the end-result the same?
What is wrong with newer kernels?

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/