Return-path: Received: from youngberry.canonical.com ([91.189.89.112]:53060 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751880AbaLHPf4 convert rfc822-to-8bit (ORCPT ); Mon, 8 Dec 2014 10:35:56 -0500 MIME-Version: 1.0 In-Reply-To: <201412081622.25541@pali> References: <201411271506.20457@pali> <201412061402.21514@pali> <201412081622.25541@pali> Date: Mon, 8 Dec 2014 23:35:53 +0800 Message-ID: (sfid-20141208_163637_946520_93FED337) Subject: Re: wl1251: NVS firmware data From: Ming Lei To: =?UTF-8?Q?Pali_Roh=C3=A1r?= Cc: Pavel Machek , Greg Kroah-Hartman , "John W. Linville" , Grazvydas Ignotas , "linux-wireless@vger.kernel.org" , Network Development , Linux Kernel Mailing List , Ivaylo Dimitrov , Aaro Koskinen , Kalle Valo , Sebastian Reichel , David Gnedt Content-Type: text/plain; charset=UTF-8 Sender: linux-wireless-owner@vger.kernel.org List-ID: On Mon, Dec 8, 2014 at 11:22 PM, Pali Rohár wrote: > On Monday 08 December 2014 16:18:18 Ming Lei wrote: >> On Sat, Dec 6, 2014 at 9:02 PM, Pali Rohár > 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. >> >> Thanks, >> Ming Lei > > Ming, for wl1251 NVS data we need to load use usermode helper and > fallback to direct load. So I think it is better to handle this > request in firmware code and not in driver. Please do that in driver and don't mess firmware loader. With introducing request_firmware_user(), it is even possible to clean up firmware loader further. Thanks, Ming Lei