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: Revert "Driver core: let request_module() send a /sys/modules/kmod/-uevent" Driver core: fix error by cleanup up symlinks properly make kernel/kmod.c:kmod_mk static power management: fix struct layout and docs power management: no valid states w/o pm_ops Driver core: more fallout from class_device changes for pcmcia sysfs: move struct sysfs_dirent to private header driver core: refcounting fix Driver core: remove class_device_rename
This commit is contained in:
@@ -294,8 +294,6 @@ extern void class_device_initialize(struct class_device *);
|
||||
extern int __must_check class_device_add(struct class_device *);
|
||||
extern void class_device_del(struct class_device *);
|
||||
|
||||
extern int class_device_rename(struct class_device *, char *);
|
||||
|
||||
extern struct class_device * class_device_get(struct class_device *);
|
||||
extern void class_device_put(struct class_device *);
|
||||
|
||||
|
||||
@@ -28,10 +28,8 @@
|
||||
#ifdef CONFIG_KMOD
|
||||
/* modprobe exit status on success, -ve on error. Return value
|
||||
* usually useless though. */
|
||||
extern void kmod_sysfs_init(void);
|
||||
extern int request_module(const char * name, ...) __attribute__ ((format (printf, 1, 2)));
|
||||
#else
|
||||
static inline void kmod_sysfs_init(void) {};
|
||||
static inline int request_module(const char * name, ...) { return -ENOSYS; }
|
||||
#endif
|
||||
|
||||
|
||||
@@ -120,15 +120,48 @@ typedef int __bitwise suspend_disk_method_t;
|
||||
#define PM_DISK_TESTPROC ((__force suspend_disk_method_t) 6)
|
||||
#define PM_DISK_MAX ((__force suspend_disk_method_t) 7)
|
||||
|
||||
/**
|
||||
* struct pm_ops - Callbacks for managing platform dependent suspend states.
|
||||
* @valid: Callback to determine whether the given state can be entered.
|
||||
* If %CONFIG_SOFTWARE_SUSPEND is set then %PM_SUSPEND_DISK is
|
||||
* always valid and never passed to this call.
|
||||
* If not assigned, all suspend states are advertised as valid
|
||||
* in /sys/power/state (but can still be rejected by prepare or enter.)
|
||||
*
|
||||
* @prepare: Prepare the platform for the given suspend state. Can return a
|
||||
* negative error code if necessary.
|
||||
*
|
||||
* @enter: Enter the given suspend state, must be assigned. Can return a
|
||||
* negative error code if necessary.
|
||||
*
|
||||
* @finish: Called when the system has left the given state and all devices
|
||||
* are resumed. The return value is ignored.
|
||||
*
|
||||
* @pm_disk_mode: Set to the disk method that the user should be able to
|
||||
* configure for suspend-to-disk. Since %PM_DISK_SHUTDOWN,
|
||||
* %PM_DISK_REBOOT, %PM_DISK_TEST and %PM_DISK_TESTPROC
|
||||
* are always allowed, currently only %PM_DISK_PLATFORM
|
||||
* makes sense. If the user then choses %PM_DISK_PLATFORM,
|
||||
* the @prepare call will be called before suspending to disk
|
||||
* (if present), the @enter call should be present and will
|
||||
* be called after all state has been saved and the machine
|
||||
* is ready to be shut down/suspended/..., and the @finish
|
||||
* callback is called after state has been restored. All
|
||||
* these calls are called with %PM_SUSPEND_DISK as the state.
|
||||
*/
|
||||
struct pm_ops {
|
||||
suspend_disk_method_t pm_disk_mode;
|
||||
int (*valid)(suspend_state_t state);
|
||||
int (*prepare)(suspend_state_t state);
|
||||
int (*enter)(suspend_state_t state);
|
||||
int (*finish)(suspend_state_t state);
|
||||
suspend_disk_method_t pm_disk_mode;
|
||||
};
|
||||
|
||||
extern void pm_set_ops(struct pm_ops *);
|
||||
/**
|
||||
* pm_set_ops - set platform dependent power management ops
|
||||
* @pm_ops: The new power management operations to set.
|
||||
*/
|
||||
extern void pm_set_ops(struct pm_ops *pm_ops);
|
||||
extern struct pm_ops *pm_ops;
|
||||
extern int pm_suspend(suspend_state_t state);
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
struct kobject;
|
||||
struct module;
|
||||
struct nameidata;
|
||||
struct dentry;
|
||||
|
||||
struct attribute {
|
||||
const char * name;
|
||||
@@ -68,18 +69,6 @@ struct sysfs_ops {
|
||||
ssize_t (*store)(struct kobject *,struct attribute *,const char *, size_t);
|
||||
};
|
||||
|
||||
struct sysfs_dirent {
|
||||
atomic_t s_count;
|
||||
struct list_head s_sibling;
|
||||
struct list_head s_children;
|
||||
void * s_element;
|
||||
int s_type;
|
||||
umode_t s_mode;
|
||||
struct dentry * s_dentry;
|
||||
struct iattr * s_iattr;
|
||||
atomic_t s_event;
|
||||
};
|
||||
|
||||
#define SYSFS_ROOT 0x0001
|
||||
#define SYSFS_DIR 0x0002
|
||||
#define SYSFS_KOBJ_ATTR 0x0004
|
||||
|
||||
Reference in New Issue
Block a user