lkml.org 
[lkml]   [2005]   [Jun]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRE: [patch 2.6.12-rc3] dell_rbu: Resubmitting patch for new DellBIOS update driver
Date
From
> On Mon, Jun 06, 2005 at 11:27:53AM -0500, Abhay_Salunke@Dell.com
wrote:
> > > The firmware class creates a sysfs file. That is what I am
referring
> > to
> > > here.
> > >
> > By doing a copy of the image to the sysfs file are we trying to do
the
> > automatic actions done by the hotplug scripts manually?
>
> Ok, it seems everyone is way confused here. This is what I was
thinking
> of when I suggested using the firmware code:
> - module loads and registers with firmware core doing the
> "request_firmware_nowait" call.
> - a hotplug event gets generated that everyone just ignores
> (because it isn't really a big deal.)

At this instance the function returns and no entry is seen in
/sys/class/firmware/

> - At some point, the user copies the firmware to the sysfs file
> because they want to update their bios.
> - the module is then told that firmware is present and it does
> something with it.
>
> Note, that between step 2 and 3, it could be _days_ or _months_. No
> need to touch any hotplug scripts at all.
>
> Does this make more sense now? It seems pretty simple to me...

But the code still fails; here's the code snippet tired...

struct device *new_device;
void callbackfn(const struct firmware *fw, void *context)
{
printk("callbackfn: entry\n");

if (!fw)
printk("Got invalid fw entry \n");

printk("callbackfn: exit\n");
}

static int __init dcdrbu_init(void)
{
int rc = 0;

init_packet_head();

new_device = kmalloc(sizeof (struct device), GFP_KERNEL);

if (!new_device) {
printk("dcdrbu_init: kmalloc failed \n");
return -ENOMEM;
}

device_initialize(new_device);
strcpy(new_device->bus_id, "dell_rbu");

rc = request_firmware_nowait (THIS_MODULE,
"install.log", new_device,
NULL,
callbackfn);
if(rc) {
printk(KERN_ERR
"dcdrbu_init:"
" request_firmware_nowait failed %d\n", error);
}

return rc;
}

In this case the fw pointer returned in the callback is NULL, it also
happens without any delay and I also see a message as below in
/var/log/messages.
hald[2888]: Timed out waiting for hotplug event 305. Rebasing to 306.

Thanks
Abhay
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-06-06 20:58    [W:0.025 / U:0.844 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site