public inbox for linux-wireless@vger.kernel.org
 help / color / mirror / Atom feed
From: Marcel Holtmann <marcel@holtmann.org>
To: "Luis R. Rodriguez" <mcgrof@gmail.com>
Cc: Johannes Berg <johannes@sipsolutions.net>,
	John Linville <linville@tuxdriver.com>,
	linux-wireless <linux-wireless@vger.kernel.org>
Subject: Re: [PATCH] ar9170: load firmware asynchronously
Date: Fri, 18 Dec 2009 15:08:55 -0800	[thread overview]
Message-ID: <1261177735.4041.107.camel@localhost.localdomain> (raw)
In-Reply-To: <43e72e890912181502u3610ac23qe2dfc09f1d337bf5@mail.gmail.com>

Hi Luis,

> > This converts ar9170 to load firmware asynchronously
> > out of ->probe() and only register with mac80211 when
> > all firmware has been loaded successfully. If, on the
> > other hand, any firmware fails to load, it will now
> > unbind from the device.
> >
> > Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
> > ---
> > This can go in now, the prereq patch went in via gregkh.
> >
> > This ought to make it possible to build the driver
> > into the kernel and as long as your system boots
> > within 60 seconds it'll all just work.
> >
> > This is how we need to load firmware for drivers that
> > require the firmware image to detect which features
> > to register to mac80211/cfg80211, but it's also useful
> > when no features depend on the firmware.
> >
> > I've done ar9170 because I'm somewhat familiar with its
> > implementation. b43 should probably be converted to this
> > scheme since it actually has features that depend on the
> > firmware, and libertas_tf has the MAC addresss depending
> > on the firmware (well it needs the firmware to read it).
> >
> > The only complication with this is that now the user is
> > mostly unaware they have a wireless device, they can only
> > find it via lsusb/lspci etc. if firmware loading fails,
> > or from kernel messages. And also manual binding in sysfs,
> > device re-plugging or module re-loading is required to
> > get the module to find the device after putting firmware
> > in place...
> >
> > Still I think this is better than what we have now with
> > many drivers -- if firmware is missing you get network
> > interfaces etc. but cannot ever use them, and it's not
> > always entirely clear that is due to missing firmware.
> 
> Sweet -- we could also expose firmware load events if not done so
> already and let userspace propagate such nasty warnings, I think we'd
> need to pass the firmware expected and the driver the requested it so
> that once the firmware is in place (I guess through inotify maybe) the
> driver modprobe can be retried.

actually PackageKit should be doing something like this already. It
might need to be adapted a bit, but the basics should be there.

Regards

Marcel



  reply	other threads:[~2009-12-18 23:09 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-12-18 22:47 [PATCH] ar9170: load firmware asynchronously Johannes Berg
2009-12-18 23:02 ` Luis R. Rodriguez
2009-12-18 23:08   ` Marcel Holtmann [this message]
2009-12-18 23:16     ` Luis R. Rodriguez
2009-12-19 10:31   ` Johannes Berg

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=1261177735.4041.107.camel@localhost.localdomain \
    --to=marcel@holtmann.org \
    --cc=johannes@sipsolutions.net \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linville@tuxdriver.com \
    --cc=mcgrof@gmail.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