diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-06-08 21:11:47 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-06-08 21:11:47 -0400 |
commit | 837525e344298335ea56c3b8c9ca7abbc97f0285 (patch) | |
tree | e7afd356670edab6f3550fa9cc0eb9c926b590df /drivers | |
parent | 217397d7d267f832081169016e1ab66691a13e08 (diff) | |
parent | 87d37a4f470834223fc8a243af002998bdb5b886 (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:
firmware: remove orphaned Email
kobject: use the proper printk level for kobject error
Driver core: kill unused code
Driver core: keep PHYSDEV for old struct class_device
update Documentation/driver-model/platform.txt
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/base/class.c | 59 | ||||
-rw-r--r-- | drivers/base/core.c | 10 | ||||
-rw-r--r-- | drivers/base/dd.c | 13 | ||||
-rw-r--r-- | drivers/base/firmware_class.c | 4 |
4 files changed, 29 insertions, 57 deletions
diff --git a/drivers/base/class.c b/drivers/base/class.c index 20c4ea6eb50d..8c506dbe3913 100644 --- a/drivers/base/class.c +++ b/drivers/base/class.c | |||
@@ -369,36 +369,6 @@ char *make_class_name(const char *name, struct kobject *kobj) | |||
369 | return class_name; | 369 | return class_name; |
370 | } | 370 | } |
371 | 371 | ||
372 | static int deprecated_class_uevent(char **envp, int num_envp, int *cur_index, | ||
373 | char *buffer, int buffer_size, | ||
374 | int *cur_len, | ||
375 | struct class_device *class_dev) | ||
376 | { | ||
377 | struct device *dev = class_dev->dev; | ||
378 | char *path; | ||
379 | |||
380 | if (!dev) | ||
381 | return 0; | ||
382 | |||
383 | /* add device, backing this class device (deprecated) */ | ||
384 | path = kobject_get_path(&dev->kobj, GFP_KERNEL); | ||
385 | |||
386 | add_uevent_var(envp, num_envp, cur_index, buffer, buffer_size, | ||
387 | cur_len, "PHYSDEVPATH=%s", path); | ||
388 | kfree(path); | ||
389 | |||
390 | if (dev->bus) | ||
391 | add_uevent_var(envp, num_envp, cur_index, | ||
392 | buffer, buffer_size, cur_len, | ||
393 | "PHYSDEVBUS=%s", dev->bus->name); | ||
394 | |||
395 | if (dev->driver) | ||
396 | add_uevent_var(envp, num_envp, cur_index, | ||
397 | buffer, buffer_size, cur_len, | ||
398 | "PHYSDEVDRIVER=%s", dev->driver->name); | ||
399 | return 0; | ||
400 | } | ||
401 | |||
402 | static int make_deprecated_class_device_links(struct class_device *class_dev) | 372 | static int make_deprecated_class_device_links(struct class_device *class_dev) |
403 | { | 373 | { |
404 | char *class_name; | 374 | char *class_name; |
@@ -430,11 +400,6 @@ static void remove_deprecated_class_device_links(struct class_device *class_dev) | |||
430 | kfree(class_name); | 400 | kfree(class_name); |
431 | } | 401 | } |
432 | #else | 402 | #else |
433 | static inline int deprecated_class_uevent(char **envp, int num_envp, | ||
434 | int *cur_index, char *buffer, | ||
435 | int buffer_size, int *cur_len, | ||
436 | struct class_device *class_dev) | ||
437 | { return 0; } | ||
438 | static inline int make_deprecated_class_device_links(struct class_device *cd) | 403 | static inline int make_deprecated_class_device_links(struct class_device *cd) |
439 | { return 0; } | 404 | { return 0; } |
440 | static void remove_deprecated_class_device_links(struct class_device *cd) | 405 | static void remove_deprecated_class_device_links(struct class_device *cd) |
@@ -445,15 +410,13 @@ static int class_uevent(struct kset *kset, struct kobject *kobj, char **envp, | |||
445 | int num_envp, char *buffer, int buffer_size) | 410 | int num_envp, char *buffer, int buffer_size) |
446 | { | 411 | { |
447 | struct class_device *class_dev = to_class_dev(kobj); | 412 | struct class_device *class_dev = to_class_dev(kobj); |
413 | struct device *dev = class_dev->dev; | ||
448 | int i = 0; | 414 | int i = 0; |
449 | int length = 0; | 415 | int length = 0; |
450 | int retval = 0; | 416 | int retval = 0; |
451 | 417 | ||
452 | pr_debug("%s - name = %s\n", __FUNCTION__, class_dev->class_id); | 418 | pr_debug("%s - name = %s\n", __FUNCTION__, class_dev->class_id); |
453 | 419 | ||
454 | deprecated_class_uevent(envp, num_envp, &i, buffer, buffer_size, | ||
455 | &length, class_dev); | ||
456 | |||
457 | if (MAJOR(class_dev->devt)) { | 420 | if (MAJOR(class_dev->devt)) { |
458 | add_uevent_var(envp, num_envp, &i, | 421 | add_uevent_var(envp, num_envp, &i, |
459 | buffer, buffer_size, &length, | 422 | buffer, buffer_size, &length, |
@@ -464,6 +427,26 @@ static int class_uevent(struct kset *kset, struct kobject *kobj, char **envp, | |||
464 | "MINOR=%u", MINOR(class_dev->devt)); | 427 | "MINOR=%u", MINOR(class_dev->devt)); |
465 | } | 428 | } |
466 | 429 | ||
430 | if (dev) { | ||
431 | const char *path = kobject_get_path(&dev->kobj, GFP_KERNEL); | ||
432 | if (path) { | ||
433 | add_uevent_var(envp, num_envp, &i, | ||
434 | buffer, buffer_size, &length, | ||
435 | "PHYSDEVPATH=%s", path); | ||
436 | kfree(path); | ||
437 | } | ||
438 | |||
439 | if (dev->bus) | ||
440 | add_uevent_var(envp, num_envp, &i, | ||
441 | buffer, buffer_size, &length, | ||
442 | "PHYSDEVBUS=%s", dev->bus->name); | ||
443 | |||
444 | if (dev->driver) | ||
445 | add_uevent_var(envp, num_envp, &i, | ||
446 | buffer, buffer_size, &length, | ||
447 | "PHYSDEVDRIVER=%s", dev->driver->name); | ||
448 | } | ||
449 | |||
467 | /* terminate, set to next free slot, shrink available space */ | 450 | /* terminate, set to next free slot, shrink available space */ |
468 | envp[i] = NULL; | 451 | envp[i] = NULL; |
469 | envp = &envp[i]; | 452 | envp = &envp[i]; |
diff --git a/drivers/base/core.c b/drivers/base/core.c index b78fc1e68264..dd40d78a023d 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c | |||
@@ -180,10 +180,12 @@ static int dev_uevent(struct kset *kset, struct kobject *kobj, char **envp, | |||
180 | const char *path; | 180 | const char *path; |
181 | 181 | ||
182 | path = kobject_get_path(&parent->kobj, GFP_KERNEL); | 182 | path = kobject_get_path(&parent->kobj, GFP_KERNEL); |
183 | add_uevent_var(envp, num_envp, &i, | 183 | if (path) { |
184 | buffer, buffer_size, &length, | 184 | add_uevent_var(envp, num_envp, &i, |
185 | "PHYSDEVPATH=%s", path); | 185 | buffer, buffer_size, &length, |
186 | kfree(path); | 186 | "PHYSDEVPATH=%s", path); |
187 | kfree(path); | ||
188 | } | ||
187 | 189 | ||
188 | add_uevent_var(envp, num_envp, &i, | 190 | add_uevent_var(envp, num_envp, &i, |
189 | buffer, buffer_size, &length, | 191 | buffer, buffer_size, &length, |
diff --git a/drivers/base/dd.c b/drivers/base/dd.c index 92428e55b0c2..b0088b0efecd 100644 --- a/drivers/base/dd.c +++ b/drivers/base/dd.c | |||
@@ -207,19 +207,6 @@ static int __device_attach(struct device_driver * drv, void * data) | |||
207 | return driver_probe_device(drv, dev); | 207 | return driver_probe_device(drv, dev); |
208 | } | 208 | } |
209 | 209 | ||
210 | static int device_probe_drivers(void *data) | ||
211 | { | ||
212 | struct device *dev = data; | ||
213 | int ret = 0; | ||
214 | |||
215 | if (dev->bus) { | ||
216 | down(&dev->sem); | ||
217 | ret = bus_for_each_drv(dev->bus, NULL, dev, __device_attach); | ||
218 | up(&dev->sem); | ||
219 | } | ||
220 | return ret; | ||
221 | } | ||
222 | |||
223 | /** | 210 | /** |
224 | * device_attach - try to attach device to a driver. | 211 | * device_attach - try to attach device to a driver. |
225 | * @dev: device. | 212 | * @dev: device. |
diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c index 97ab5bd1c4d6..89a5f4a54913 100644 --- a/drivers/base/firmware_class.c +++ b/drivers/base/firmware_class.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * firmware_class.c - Multi purpose firmware loading support | 2 | * firmware_class.c - Multi purpose firmware loading support |
3 | * | 3 | * |
4 | * Copyright (c) 2003 Manuel Estrada Sainz <ranty@debian.org> | 4 | * Copyright (c) 2003 Manuel Estrada Sainz |
5 | * | 5 | * |
6 | * Please see Documentation/firmware_class/ for more information. | 6 | * Please see Documentation/firmware_class/ for more information. |
7 | * | 7 | * |
@@ -23,7 +23,7 @@ | |||
23 | 23 | ||
24 | #define to_dev(obj) container_of(obj, struct device, kobj) | 24 | #define to_dev(obj) container_of(obj, struct device, kobj) |
25 | 25 | ||
26 | MODULE_AUTHOR("Manuel Estrada Sainz <ranty@debian.org>"); | 26 | MODULE_AUTHOR("Manuel Estrada Sainz"); |
27 | MODULE_DESCRIPTION("Multi purpose firmware loading support"); | 27 | MODULE_DESCRIPTION("Multi purpose firmware loading support"); |
28 | MODULE_LICENSE("GPL"); | 28 | MODULE_LICENSE("GPL"); |
29 | 29 | ||