aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-06-08 21:11:47 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-06-08 21:11:47 -0400
commit837525e344298335ea56c3b8c9ca7abbc97f0285 (patch)
treee7afd356670edab6f3550fa9cc0eb9c926b590df /drivers
parent217397d7d267f832081169016e1ab66691a13e08 (diff)
parent87d37a4f470834223fc8a243af002998bdb5b886 (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.c59
-rw-r--r--drivers/base/core.c10
-rw-r--r--drivers/base/dd.c13
-rw-r--r--drivers/base/firmware_class.c4
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
372static 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
402static int make_deprecated_class_device_links(struct class_device *class_dev) 372static 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
433static 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; }
438static inline int make_deprecated_class_device_links(struct class_device *cd) 403static inline int make_deprecated_class_device_links(struct class_device *cd)
439{ return 0; } 404{ return 0; }
440static void remove_deprecated_class_device_links(struct class_device *cd) 405static 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
210static 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
26MODULE_AUTHOR("Manuel Estrada Sainz <ranty@debian.org>"); 26MODULE_AUTHOR("Manuel Estrada Sainz");
27MODULE_DESCRIPTION("Multi purpose firmware loading support"); 27MODULE_DESCRIPTION("Multi purpose firmware loading support");
28MODULE_LICENSE("GPL"); 28MODULE_LICENSE("GPL");
29 29