diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-04-27 15:58:54 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-04-27 15:58:54 -0400 |
commit | d868772fff6c4b881d66af8640251714e1aefa98 (patch) | |
tree | c95a68d358d5c875d25763ffe9a44fe9f2081f34 /drivers/base/firmware_class.c | |
parent | a205752d1ad2d37d6597aaae5a56fc396a770868 (diff) | |
parent | 404d5b185b4eb56d6fa2f7bd27833f8df1c38ce4 (diff) |
Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6: (46 commits)
dev_dbg: check dev_dbg() arguments
drivers/base/attribute_container.c: use mutex instead of binary semaphore
mod_sysfs_setup() doesn't return errno when kobject_add_dir() failure occurs
s2ram: add arch irq disable/enable hooks
define platform wakeup hook, use in pci_enable_wake()
security: prevent permission checking of file removal via sysfs_remove_group()
device_schedule_callback() needs a module reference
s390: cio: Delay uevents for subchannels
sysfs: bin.c printk fix
Driver core: use mutex instead of semaphore in DMA pool handler
driver core: bus_add_driver should return an error if no bus
debugfs: Add debugfs_create_u64()
the overdue removal of the mount/umount uevents
kobject: Comment and warning fixes to kobject.c
Driver core: warn when userspace writes to the uevent file in a non-supported way
Driver core: make uevent-environment available in uevent-file
kobject core: remove rwsem from struct subsystem
qeth: Remove usage of subsys.rwsem
PHY: remove rwsem use from phy core
IEEE1394: remove rwsem use from ieee1394 core
...
Diffstat (limited to 'drivers/base/firmware_class.c')
-rw-r--r-- | drivers/base/firmware_class.c | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c index c0a979a5074b..97ab5bd1c4d6 100644 --- a/drivers/base/firmware_class.c +++ b/drivers/base/firmware_class.c | |||
@@ -31,8 +31,6 @@ enum { | |||
31 | FW_STATUS_LOADING, | 31 | FW_STATUS_LOADING, |
32 | FW_STATUS_DONE, | 32 | FW_STATUS_DONE, |
33 | FW_STATUS_ABORT, | 33 | FW_STATUS_ABORT, |
34 | FW_STATUS_READY, | ||
35 | FW_STATUS_READY_NOHOTPLUG, | ||
36 | }; | 34 | }; |
37 | 35 | ||
38 | static int loading_timeout = 60; /* In seconds */ | 36 | static int loading_timeout = 60; /* In seconds */ |
@@ -96,9 +94,6 @@ static int firmware_uevent(struct device *dev, char **envp, int num_envp, | |||
96 | struct firmware_priv *fw_priv = dev_get_drvdata(dev); | 94 | struct firmware_priv *fw_priv = dev_get_drvdata(dev); |
97 | int i = 0, len = 0; | 95 | int i = 0, len = 0; |
98 | 96 | ||
99 | if (!test_bit(FW_STATUS_READY, &fw_priv->status)) | ||
100 | return -ENODEV; | ||
101 | |||
102 | if (add_uevent_var(envp, num_envp, &i, buffer, buffer_size, &len, | 97 | if (add_uevent_var(envp, num_envp, &i, buffer, buffer_size, &len, |
103 | "FIRMWARE=%s", fw_priv->fw_id)) | 98 | "FIRMWARE=%s", fw_priv->fw_id)) |
104 | return -ENOMEM; | 99 | return -ENOMEM; |
@@ -333,6 +328,7 @@ static int fw_register_device(struct device **dev_p, const char *fw_name, | |||
333 | f_dev->parent = device; | 328 | f_dev->parent = device; |
334 | f_dev->class = &firmware_class; | 329 | f_dev->class = &firmware_class; |
335 | dev_set_drvdata(f_dev, fw_priv); | 330 | dev_set_drvdata(f_dev, fw_priv); |
331 | f_dev->uevent_suppress = 1; | ||
336 | retval = device_register(f_dev); | 332 | retval = device_register(f_dev); |
337 | if (retval) { | 333 | if (retval) { |
338 | printk(KERN_ERR "%s: device_register failed\n", | 334 | printk(KERN_ERR "%s: device_register failed\n", |
@@ -382,9 +378,7 @@ static int fw_setup_device(struct firmware *fw, struct device **dev_p, | |||
382 | } | 378 | } |
383 | 379 | ||
384 | if (uevent) | 380 | if (uevent) |
385 | set_bit(FW_STATUS_READY, &fw_priv->status); | 381 | f_dev->uevent_suppress = 0; |
386 | else | ||
387 | set_bit(FW_STATUS_READY_NOHOTPLUG, &fw_priv->status); | ||
388 | *dev_p = f_dev; | 382 | *dev_p = f_dev; |
389 | goto out; | 383 | goto out; |
390 | 384 | ||