Mark Brown wrote:
On Thu, Sep 30, 2010 at 06:56:58PM -0700, Peter Hsiang wrote:
On Thu, Sep 30, 2010, Mark Brown wrote:
Have you looked at request_firmware()? It is the established mechanism for doing this and supports both firmware images built into the kernel and firmware loaded from userspace, though firmware in userspace is the more common approach.
Thanks, yes I see that it's a kernel space only feature, regardless of where the firmware image is located. Would it be ok for a user space app to handle the image file directly and send down the file content for the driver to process?
With request_firmware() to userspace the firmware is loaded into the kernel by a userspace application.
request_firmware() is used to get the firmware data into the driver, but it assumes that the driver decides when to ask for it.
If the firmware isn't needed when initialzing the device, you can add some ioctl that makes the driver call request_firmware() (this basically assumes that the data is stored in a file with a known name), or just add some device that allows userspace to write data to the device (use this for dynamic data).
Regards, Clemens