Messages in this thread | | | Subject | RE: [patch 2.6.12-rc3] dell_rbu: Resubmitting patch for new DellBIOS update driver | Date | Mon, 6 Jun 2005 13:54:56 -0500 | 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/
| |