diff options
Diffstat (limited to 'include/linux/device.h')
| -rw-r--r-- | include/linux/device.h | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/include/linux/device.h b/include/linux/device.h index 246937c9cbc..987f5912720 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
| @@ -90,6 +90,9 @@ int __must_check bus_for_each_drv(struct bus_type *bus, | |||
| 90 | struct device_driver *start, void *data, | 90 | struct device_driver *start, void *data, |
| 91 | int (*fn)(struct device_driver *, void *)); | 91 | int (*fn)(struct device_driver *, void *)); |
| 92 | 92 | ||
| 93 | void bus_sort_breadthfirst(struct bus_type *bus, | ||
| 94 | int (*compare)(const struct device *a, | ||
| 95 | const struct device *b)); | ||
| 93 | /* | 96 | /* |
| 94 | * Bus notifiers: Get notified of addition/removal of devices | 97 | * Bus notifiers: Get notified of addition/removal of devices |
| 95 | * and binding/unbinding of drivers to devices. | 98 | * and binding/unbinding of drivers to devices. |
| @@ -502,7 +505,6 @@ extern struct device *device_create(struct class *cls, struct device *parent, | |||
| 502 | dev_t devt, void *drvdata, | 505 | dev_t devt, void *drvdata, |
| 503 | const char *fmt, ...) | 506 | const char *fmt, ...) |
| 504 | __attribute__((format(printf, 5, 6))); | 507 | __attribute__((format(printf, 5, 6))); |
| 505 | #define device_create_drvdata device_create | ||
| 506 | extern void device_destroy(struct class *cls, dev_t devt); | 508 | extern void device_destroy(struct class *cls, dev_t devt); |
| 507 | 509 | ||
| 508 | /* | 510 | /* |
| @@ -551,7 +553,11 @@ extern const char *dev_driver_string(const struct device *dev); | |||
| 551 | #define dev_info(dev, format, arg...) \ | 553 | #define dev_info(dev, format, arg...) \ |
| 552 | dev_printk(KERN_INFO , dev , format , ## arg) | 554 | dev_printk(KERN_INFO , dev , format , ## arg) |
| 553 | 555 | ||
| 554 | #ifdef DEBUG | 556 | #if defined(CONFIG_DYNAMIC_PRINTK_DEBUG) |
| 557 | #define dev_dbg(dev, format, ...) do { \ | ||
| 558 | dynamic_dev_dbg(dev, format, ##__VA_ARGS__); \ | ||
| 559 | } while (0) | ||
| 560 | #elif defined(DEBUG) | ||
| 555 | #define dev_dbg(dev, format, arg...) \ | 561 | #define dev_dbg(dev, format, arg...) \ |
| 556 | dev_printk(KERN_DEBUG , dev , format , ## arg) | 562 | dev_printk(KERN_DEBUG , dev , format , ## arg) |
| 557 | #else | 563 | #else |
| @@ -567,6 +573,14 @@ extern const char *dev_driver_string(const struct device *dev); | |||
| 567 | ({ if (0) dev_printk(KERN_DEBUG, dev, format, ##arg); 0; }) | 573 | ({ if (0) dev_printk(KERN_DEBUG, dev, format, ##arg); 0; }) |
| 568 | #endif | 574 | #endif |
| 569 | 575 | ||
| 576 | /* | ||
| 577 | * dev_WARN() acts like dev_printk(), but with the key difference | ||
| 578 | * of using a WARN/WARN_ON to get the message out, including the | ||
| 579 | * file/line information and a backtrace. | ||
| 580 | */ | ||
| 581 | #define dev_WARN(dev, format, arg...) \ | ||
| 582 | WARN(1, "Device: %s\n" format, dev_driver_string(dev), ## arg); | ||
| 583 | |||
| 570 | /* Create alias, so I can be autoloaded. */ | 584 | /* Create alias, so I can be autoloaded. */ |
| 571 | #define MODULE_ALIAS_CHARDEV(major,minor) \ | 585 | #define MODULE_ALIAS_CHARDEV(major,minor) \ |
| 572 | MODULE_ALIAS("char-major-" __stringify(major) "-" __stringify(minor)) | 586 | MODULE_ALIAS("char-major-" __stringify(major) "-" __stringify(minor)) |
