Can request_firmware be called from a platform_driver ?
From: Dave Hylands <hidden>
Date: 2012-04-18 19:15:17
Hi Mike, On Wed, Apr 18, 2012 at 11:07 AM, Holmes, Michael A (Mike) [off-list ref] wrote:
Hi I have a fully working system to which I want to add the request firmware mechanism to an existing platform driver I have working. I instrumented mdev in busybox 1.5.1 and in firmware_class.c 2.6.35 so that I could figure this out. What I see with firmware_request() is that the kernel makes the firmware request and does not find any firmware and mdev sees nothing. However if I change my code to do request_firmare_nowait(), the entire system comes up and about 30seconds in the timeout calls my kernel side continue for request_firmare_nowait() and I DO now see my request handled by mdev, however it is a REMOVE request not the ADD request. All this makes me think that platform drivers exist before the hotplug mechanism is able to operate, is this true ?
Well, request_firmware is ultimately serviced by a user-space process. So platform drivers compiled statically into the kernel get initialized long before user-space starts. Platform drivers compiled as modules will get the firmware loaded much more quickly after loading the module. -- Dave Hylands Shuswap, BC, Canada http://www.davehylands.com