Hi Luis,
I was ignorant on all the nasty details around the firmware loading.
If I parse Luis' patches correctly they introduce an API which calls
kernel_read_file_from_path() asynchronously:
sysdata_file_request_async(..., &cookie)
*coookie = async_schedule_domain(request_sysdata_file_work_func(), ..)
request_sysdata_file_work_fun()
_sysdata_file_request()
fw_get_filesystem_firmware()
kernel_read_file_from_path()
sysdata_synchronize_request(&cookie);
Doesn't look like what your asking for.
No, but its also a generic kernel read issue as I noted in my last
reply.
Okay, got it.
If we want to overhaul firmware loading support we need to figure
out how to support case when a driver want to [asynchronously] request
firmware/config/blob and the rest of the system is not ready. Even if we
want kernel to do read/load the data we need userspace to tell kernel
when firmware partition is available, until then the kernel should not
fail the request.
I gather from Luis' blog post and comments that he is on the quest
on removing userspace support completely.
No, I explained in my last proposed documentation patch series that we cannot
get rid of the usermode helper.
I stand corrected.
Its not well understood why so I explained and documented why.
Obviously, I got lost somewhere there :)
Best we can do is compartamentalize its uses.
Sounds like a plan.
The sysdata API's main goal rather is to provide a flexible API first,
compartamentalizing the usermode helper was secondary. But now it seems
I may just also add devm support too to help simplify code further.
I missed the point that you plan to add usermode helper support to the
sysdata API.
What Dmitry notes is an existential issue with kernel_read_file_from_path()
and we need a common solution for it.
Understood. I guess best thing to keep that discussion in the other
subthread.
Maybe this attempt here could be a step before. Step 1 would be
changing request_firmware_nowait() to request_firmware_async so
drivers don't have to come up with their own sync primitives, e.g.
cookie = request_firmware_async()
fw_load_wait(cookie)
That's one of the features already part of async mechanism of the sysdata API :)
Yes, I realized that too :)
cheers,
daniel
Thanks for the feedback.
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html