From: Greg KH <greg@kroah.com>
To: Manuel Estrada Sainz <ranty@debian.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
Simon Kelley <simon@thekelleys.org.uk>,
Alan Cox <alan@lxorguk.ukuu.org.uk>,
"Downing, Thomas" <Thomas.Downing@ipc.com>,
jt@hpl.hp.com, Pavel Roskin <proski@gnu.org>
Subject: Re: request_firmware() hotplug interface, third round.
Date: Fri, 16 May 2003 15:36:24 -0700 [thread overview]
Message-ID: <20030516223624.GA16759@kroah.com> (raw)
In-Reply-To: <20030515200324.GB12949@ranty.ddts.net>
On Thu, May 15, 2003 at 10:03:24PM +0200, Manuel Estrada Sainz wrote:
> Hi all,
>
> This time, as Greg suggested, it is implemented on top of 'struct
> class' and 'struct class_device' but the driver interface is the same
> as last time.
First off, nice, this looks a lot better, good job.
> Attached:
> firmware.h
> firmware_class.c:
> The firmware support itself.
Can you just send this as a patch to the current kernel next time? It's
much easier to read and test with that way :)
> firmware_sample_driver.c:
> Sample code on how to use from drivers.
I didn't see this in the files you attached.
> hotplug:
> A simple hotplug replacement for testing.
> Makefile:
> The obvious.
> README:
> Still pertinent pieces from the previous round.
>
> How it works:
> - Driver calls request_firmware()
Yeah, I agree with your comment in the code, I think a struct device *
should be passed here. Or at least somewhere...
> - 'hotplug firmware' gets called with ACCTION=add
I don't see why you need to add a new environment variable in your
firmware_class_hotplug() call. What is the FIRMWARE variable for, if we
already have a device symlink back to the device that is asking for the
firmware? Oh, you don't have that :)
> - /sysfs/class/firmware/dev_name/{data,loading} show up.
If you pass a struct device to request_firmware(), then you get a
symlink to the device for free. You can also set the class_id to the
device bus_id, watching out for name collisions (bus_ids are only unique
per bus type, so different bus types can use the same bus id, but in
reality they rarely do.)
> - echo 1 > /sysfs/class/firmware/dev_name/loading
> - cat whatever_fw > /sysfs/class/firmware/dev_name/data
> - echo 0 > /sysfs/class/firmware/dev_name/loading
Nice, but can't you get rid of the loading file by just relying on
open() and close()? Oh wait, sysfs doesn't pass that down to you, hm,
looks like you need that info. But does the new binary interface in
sysfs that just got merged into the tree provide that info for you?
> - The call to request_firmware() returns with the firmware in a
> memory buffer and the driver can finish loading.
request_firmware() can't use a static struct class_device, like you have
it, in order to work properly for multiple calls to request_firmware()
at the same time by different drivers. Just create a new struct
class_device, and put it on a list, like I had to do for the tty class
code (and i2c_dev class code, but that isn't in the kernel to look at
yet...)
Other than those very minor tweaks, I like this interface, it's looking
very good. I wouldn't worry about any "checksum" calcuation crud, it's
up to the userspace tool dumping the firmware to the kernel to make sure
it's writing correct data, not the kernel.
thanks,
greg k-h
next prev parent reply other threads:[~2003-05-16 22:22 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-05-15 20:03 request_firmware() hotplug interface, third round Manuel Estrada Sainz
2003-05-16 8:07 ` Oliver Neukum
2003-05-16 9:56 ` Manuel Estrada Sainz
2003-05-16 15:53 ` Oliver Neukum
2003-05-16 18:31 ` Manuel Estrada Sainz
2003-05-16 22:22 ` Oliver Neukum
2003-05-17 0:59 ` Manuel Estrada Sainz
2003-05-17 4:00 ` Robert White
2003-05-17 13:23 ` Alan Cox
2003-05-17 14:57 ` Manuel Estrada Sainz
2003-05-16 18:49 ` Jean Tourrilhes
2003-05-16 22:24 ` Oliver Neukum
2003-05-16 23:21 ` Greg KH
2003-05-16 16:09 ` Alan Cox
2003-05-16 22:13 ` Oliver Neukum
2003-05-17 4:50 ` David Gibson
2003-05-17 7:02 ` Oliver Neukum
2003-05-17 8:21 ` David Gibson
[not found] ` <Pine.LNX.4.55.0305151623520.2885@marabou.research.att.com>
2003-05-16 9:27 ` Manuel Estrada Sainz
2003-05-16 22:39 ` Greg KH
2003-05-16 13:13 ` Ingo Oeser
2003-05-16 17:07 ` Manuel Estrada Sainz
2003-05-16 22:36 ` Greg KH [this message]
2003-05-16 23:37 ` Manuel Estrada Sainz
2003-05-16 23:59 ` Greg KH
2003-05-17 4:47 ` David Gibson
2003-05-17 8:54 ` Manuel Estrada Sainz
2003-05-16 23:55 ` Oliver Neukum
2003-05-17 0:03 ` Greg KH
2003-05-17 2:42 ` Robert White
2003-05-17 4:44 ` David Gibson
2003-05-17 8:46 ` Manuel Estrada Sainz
2003-05-17 9:07 ` David Gibson
2003-05-17 9:50 ` Manuel Estrada Sainz
2003-05-17 10:30 ` Manuel Estrada Sainz
2003-05-20 5:21 ` David Gibson
2003-05-20 8:07 ` Manuel Estrada Sainz
2003-05-21 4:21 ` Greg KH
2003-05-21 7:06 ` Manuel Estrada Sainz
2003-05-17 10:51 ` Manuel Estrada Sainz
2003-05-17 13:21 ` Ingo Oeser
2003-05-17 15:15 ` Manuel Estrada Sainz
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=20030516223624.GA16759@kroah.com \
--to=greg@kroah.com \
--cc=Thomas.Downing@ipc.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=jt@hpl.hp.com \
--cc=linux-kernel@vger.kernel.org \
--cc=proski@gnu.org \
--cc=ranty@debian.org \
--cc=simon@thekelleys.org.uk \
/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