Re: wl1251: NVS firmware data

From: Greg Kroah-Hartman
Date: Mon Dec 08 2014 - 15:57:28 EST


On Mon, Dec 08, 2014 at 05:47:30PM +0100, Pali Rohár wrote:
> On Monday 08 December 2014 17:37:14 Greg Kroah-Hartman wrote:
> > On Mon, Dec 08, 2014 at 11:18:18PM +0800, Ming Lei wrote:
> > > On Sat, Dec 6, 2014 at 9:02 PM, Pali Rohár
> <pali.rohar@xxxxxxxxx> wrote:
> > > > On Saturday 06 December 2014 13:49:54 Pavel Machek wrote:
> > > > /**
> > > >
> > > > + * request_firmware_prefer_user: - prefer usermode helper
> > > > for loading firmware + * @firmware_p: pointer to firmware
> > > > image
> > > > + * @name: name of firmware file
> > > > + * @device: device for which firmware is being loaded
> > > > + *
> > > > + * This function works pretty much like
> > > > request_firmware(), but it prefer + * usermode helper. If
> > > > usermode helper fails then it fallback to direct access.
> > > > + * Usefull for dynamic or model specific firmware data.
> > > > + **/
> > > > +int request_firmware_prefer_user(const struct firmware
> > > > **firmware_p, + const char
> > > > *name, struct device *device) +{
> > > > + int ret;
> > > > + __module_get(THIS_MODULE);
> > > > + ret = _request_firmware(firmware_p, name, device,
> > > > + FW_OPT_UEVENT |
> > > > FW_OPT_PREFER_USER); + module_put(THIS_MODULE);
> > > > + return ret;
> > > > +}
> > > > +EXPORT_SYMBOL_GPL(request_firmware_prefer_user);
> > >
> > > I'd like to introduce request_firmware_user() which only
> > > requests firmware from user space, and this way is simpler
> > > and more flexible since we have request_firmware_direct()
> > > already.
> >
> > Why would a driver care about what program provides the
> > firmware? It shouldn't at all, and we want to get rid of the
> > userspace firmware loader, not encourage drivers to use it
> > "exclusively" at all.
> >
>
> Do not remove it! Without userspace firmware loader it is
> impossible to load dynamic firmware files.

You should not be loading "dynamic" firmware files with the firmware
interface, as that's not a "firmware" file anymore, it's a "special
binary file that my driver needs to be created and sent into the
kernel."

Use your own custom usermode helper for stuff like this, not the
firmware interface. But use a binary sysfs file if you want, that seems
to make sense for it...

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/