linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Arend van Spriel <arend@broadcom.com>
To: "Luis R. Rodriguez" <mcgrof@suse.com>,
	Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Ming Lei <ming.lei@canonical.com>, Takashi Iwai <tiwai@suse.de>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Liam Girdwood <liam.r.girdwood@linux.intel.com>,
	"Jie, Yang" <yang.jie@intel.com>,
	"joonas.lahtinen@linux.intel.com"
	<joonas.lahtinen@linux.intel.com>,
	Al Viro <viro@zeniv.linux.org.uk>, Kay Sievers <kay@vrfy.org>,
	David Woodhouse <dwmw2@infradead.org>,
	lkml <linux-kernel@vger.kernel.org>,
	yalin wang <yalin.wang2010@gmail.com>,
	Tom Gundersen <teg@jklm.no>
Subject: Re: Problems loading firmware using built-in drivers with kernels that use initramfs.
Date: Thu, 3 Sep 2015 19:23:18 +0200	[thread overview]
Message-ID: <55E88206.5050106@broadcom.com> (raw)
In-Reply-To: <CAB=NE6UBRa0K7=PomJzKxsoj4GzAqkYrkp=O+UfVvu2fwM25pA@mail.gmail.com>

On 09/03/2015 01:46 AM, Luis R. Rodriguez wrote:
> On Wed, Sep 2, 2015 at 4:29 PM, Dmitry Torokhov
> <dmitry.torokhov@gmail.com> wrote:
>> On Wed, Sep 2, 2015 at 4:22 PM, Luis R. Rodriguez <mcgrof@suse.com> wrote:
>>> On Wed, Sep 02, 2015 at 04:13:51PM -0700, Dmitry Torokhov wrote:
>>>> On Wed, Sep 2, 2015 at 2:03 PM, Arend van Spriel <arend@broadcom.com> wrote:
>>>>> Ok. So some background why we need it in brcm80211 drivers. So as a wireless
>>>>> network device driver the answer we got when asking for an event to load
>>>>> firware is upon IF_UP for a registered net device. Because we try to do
>>>>> things smart we query the firmware running on the device for capabilities
>>>>> before we can register the net device hence we request the firmware during
>>>>> probe. This may be specific to wireless drivers (Intel has same approach if
>>>>> not mistaken) but I suspect there may be more.
>>>>
>>>> We have the same issue with input devices: before we can register one
>>>> we need to set their capabilities and to know their capabilities we
>>>> quite often need to load their firmware/config and query the device.
>>>
>>> Should Arend's driver use async probe then?
>>
>> What has async probe have to do with anything? We will still be
>> waiting for async probes to finish before we mount rootfs so it will
>> not change absolutely anything.
>
> :) Right, its what I was alluding to as well.

Indeed. However, upon module_init we schedule a worker in which the 
driver are registered. We do that to make sure the probe is not done 
within module_init context. That could now be done with async probe. 
This is not the problem discussed here so let's not spend more time on this.

>>> IMHO its just as hacky as using -EPROBE_DEFER too, but its at least
>>> preemptively hacky. Sadly I can't think of clear and clever way for the kernel
>>> to know when firmware will be ready either...  Would userspace know? Should the
>>> kernel learn this from userspace ?
>>
>> Yes. Given only userspace knows when firmware is available (I could
>> have it on a separate device and mount it at some time). So maybe
>> userpsace should simply try and scan busses for unbound devices and
>> tell them to re-probe when it decides that firmware is finally
>> available.
>
> OK, the folks wanting this mechanism can implement it then. Short of
> that we only have hacks.

So what does "userspace knows when firmware is available" mean here. The 
specific firmware file the driver wants or the collection of firmware 
files which may or may not have the specific firmware file the driver 
wants. I assume the latter and re-probe will fail as expected.

Regards,
Arend

  reply	other threads:[~2015-09-03 17:23 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1440449403.2469.35.camel@loki>
     [not found] ` <1440489900.2419.4.camel@loki>
     [not found]   ` <rbhuamrc6ajy3l1qereb60l8.1440494220682@email.android.com>
2015-08-25 19:34     ` Problems loading firmware using built-in drivers with kernels that use initramfs Luis R. Rodriguez
2015-08-25 19:46       ` Takashi Iwai
2015-08-25 19:58         ` Dmitry Torokhov
2015-08-25 20:26           ` Linus Torvalds
2015-08-26  5:30             ` yalin wang
2015-08-26  5:12           ` Jie, Yang
2015-08-26  5:32             ` Takashi Iwai
2015-08-26  6:17               ` Jie, Yang
2015-08-26  8:06                 ` Liam Girdwood
2015-08-26  8:29                   ` Jie, Yang
2015-08-26  9:00                     ` Liam Girdwood
2015-08-27  1:50                       ` Lin, Mengdong
2015-08-27  7:09                         ` Liam Girdwood
2015-08-26 18:07                   ` Linus Torvalds
2015-08-27  0:55                     ` Ming Lei
2015-08-29  1:11                       ` Luis R. Rodriguez
2015-08-29  4:09                         ` Ming Lei
2015-08-29  7:11                           ` Takashi Iwai
2015-08-29  8:50                             ` Arend van Spriel
2015-08-29 10:38                               ` Ming Lei
2015-08-30  8:25                                 ` Arend van Spriel
2015-08-30 18:11                                   ` Linus Torvalds
2015-12-17 19:24                                     ` Luis R. Rodriguez
2015-08-31 14:21                                   ` Ming Lei
2015-09-02  1:19                                     ` Luis R. Rodriguez
2015-09-02 12:09                                       ` Arend van Spriel
2015-09-02 12:13                                         ` Arend van Spriel
2015-09-02 18:58                                           ` Luis R. Rodriguez
2015-09-02 21:03                                             ` Arend van Spriel
2015-09-02 23:13                                               ` Dmitry Torokhov
2015-09-02 23:22                                                 ` Luis R. Rodriguez
2015-09-02 23:29                                                   ` Dmitry Torokhov
2015-09-02 23:46                                                     ` Luis R. Rodriguez
2015-09-03 17:23                                                       ` Arend van Spriel [this message]
2015-09-03 17:33                                                         ` Dmitry Torokhov
2015-10-16 19:35                                                           ` Luis R. Rodriguez
2015-10-16 21:05                                                             ` Luis R. Rodriguez
2015-10-17  8:31                                                             ` Arend van Spriel
2015-09-02 20:43                                           ` Dmitry Torokhov
2015-09-02  0:39                           ` Luis R. Rodriguez

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=55E88206.5050106@broadcom.com \
    --to=arend@broadcom.com \
    --cc=dmitry.torokhov@gmail.com \
    --cc=dwmw2@infradead.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=joonas.lahtinen@linux.intel.com \
    --cc=kay@vrfy.org \
    --cc=liam.r.girdwood@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mcgrof@suse.com \
    --cc=ming.lei@canonical.com \
    --cc=teg@jklm.no \
    --cc=tiwai@suse.de \
    --cc=torvalds@linux-foundation.org \
    --cc=viro@zeniv.linux.org.uk \
    --cc=yalin.wang2010@gmail.com \
    --cc=yang.jie@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).