Thread (48 messages) 48 messages, 8 authors, 2016-08-03

Re: [RFC v0 7/8] Input: ims-pcu: use firmware_stat instead of completion

From: "Luis R. Rodriguez" <mcgrof@kernel.org>
Date: 2016-07-30 16:58:29
Also in: linux-input, lkml

On Sat, Jul 30, 2016 at 02:42:41PM +0200, Arend van Spriel wrote:
+ Luis (again) ;-)

On 29-07-16 08:13, Daniel Wagner wrote:
quoted
On 07/28/2016 09:01 PM, Bjorn Andersson wrote:
quoted
On Thu 28 Jul 11:33 PDT 2016, Dmitry Torokhov wrote:
quoted
On Thu, Jul 28, 2016 at 09:55:11AM +0200, Daniel Wagner wrote:
quoted
From: Daniel Wagner <redacted>
[..]
quoted
Do not quite like it... I'd rather asynchronous request give out a
firmware status pointer that could be used later on.
Excellent. Why not get rid of the callback function as well and have
fw_loading_wait() return result (0 = firmware available, < 0 = fail).
Just to confirm, you are proposing a new API function next to
request_firmware_nowait(), right?
If proposing new firmware_class patches please bounce / Cc me, I've
recently asked for me to be added to MAINTAINERS so I get these
e-mails as I'm working on a new flexible API which would allow us
to extend the firmware API without having to care about the old
stupid usermode helper at all.
quoted
quoted
quoted
    pcu->fw_st = request_firmware_async(IMS_PCU_FIRMWARE_NAME,
-                       pcu,
-                       ims_pcu_process_async_firmware);
    +			    pcu);
quoted
quoted
quoted
    if (IS_ERR(pcu->fw_st))
        return PTR_ERR(pcu->fw_st);

    ....

    err = fw_loading_wait(pcu->fw_st);
	if (err)
		return err;

	fw = fwstat_get_firmware(pcu->fw_st);

Or whatever consistent prefix it is going to be.
quoted
quoted
quoted
In the remoteproc case (patch 6) this would clean up the code, rather
than replacing the completion API 1 to 1. I like it!
IIRC most drivers do it the same way. So request_firmware_async() indeed
would be good thing to have. Let me try that.
While the idea behind this series is a good one I am wondering about the
need for these drivers to use the asynchronous API. The historic reason
might be to avoid timeout caused by user-mode helper, but that may no
longer apply and these drivers could be better off using
request_firmware_direct().
BTW I have in my queue for the sysdata API something like firmware_request_direct()
but with async support. The only thing left to do I think is just add the devm
helpers so drivers no longer need to worry about the release of the firmware.
There have been numerous discussions about the firmware API. Here most
recent one:

http://www.spinics.net/lists/linux-wireless/index.html#152755
And more importantly, the sysdata API queue:

https://git.kernel.org/cgit/linux/kernel/git/mcgrof/linux-next.git/log/?h=20160616-sysdata-v2

  Luis
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help