Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
9e0ce90e
Commit
9e0ce90e
authored
Nov 12, 2004
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
bk://kernel.bkbits.net/gregkh/linux/driver-2.6
into ppc970.osdl.org:/home/torvalds/v2.6/linux
parents
aa5743cc
c5f192ee
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
86 additions
and
44 deletions
+86
-44
arch/arm/common/locomo.c
arch/arm/common/locomo.c
+0
-3
arch/arm/common/sa1111.c
arch/arm/common/sa1111.c
+15
-8
arch/arm/mach-sa1100/neponset.c
arch/arm/mach-sa1100/neponset.c
+15
-8
drivers/base/bus.c
drivers/base/bus.c
+1
-1
drivers/base/class.c
drivers/base/class.c
+6
-0
drivers/base/core.c
drivers/base/core.c
+21
-0
drivers/block/genhd.c
drivers/block/genhd.c
+6
-0
drivers/video/aty/aty128fb.c
drivers/video/aty/aty128fb.c
+5
-5
drivers/video/aty/atyfb_base.c
drivers/video/aty/atyfb_base.c
+5
-5
drivers/video/aty/radeon_pm.c
drivers/video/aty/radeon_pm.c
+3
-3
fs/sysfs/dir.c
fs/sysfs/dir.c
+3
-3
include/linux/device.h
include/linux/device.h
+0
-5
include/linux/kobject_uevent.h
include/linux/kobject_uevent.h
+1
-0
lib/kobject_uevent.c
lib/kobject_uevent.c
+5
-3
No files found.
arch/arm/common/locomo.c
View file @
9e0ce90e
...
@@ -627,9 +627,6 @@ static int locomo_remove(struct device *dev)
...
@@ -627,9 +627,6 @@ static int locomo_remove(struct device *dev)
if
(
lchip
)
{
if
(
lchip
)
{
__locomo_remove
(
lchip
);
__locomo_remove
(
lchip
);
dev_set_drvdata
(
dev
,
NULL
);
dev_set_drvdata
(
dev
,
NULL
);
kfree
(
dev
->
saved_state
);
dev
->
saved_state
=
NULL
;
}
}
return
0
;
return
0
;
...
...
arch/arm/common/sa1111.c
View file @
9e0ce90e
...
@@ -797,6 +797,8 @@ struct sa1111_save_data {
...
@@ -797,6 +797,8 @@ struct sa1111_save_data {
unsigned
int
wakeen1
;
unsigned
int
wakeen1
;
};
};
#ifdef CONFIG_PM
static
int
sa1111_suspend
(
struct
device
*
dev
,
u32
state
,
u32
level
)
static
int
sa1111_suspend
(
struct
device
*
dev
,
u32
state
,
u32
level
)
{
{
struct
sa1111
*
sachip
=
dev_get_drvdata
(
dev
);
struct
sa1111
*
sachip
=
dev_get_drvdata
(
dev
);
...
@@ -808,11 +810,10 @@ static int sa1111_suspend(struct device *dev, u32 state, u32 level)
...
@@ -808,11 +810,10 @@ static int sa1111_suspend(struct device *dev, u32 state, u32 level)
if
(
level
!=
SUSPEND_DISABLE
)
if
(
level
!=
SUSPEND_DISABLE
)
return
0
;
return
0
;
dev
->
saved_stat
e
=
kmalloc
(
sizeof
(
struct
sa1111_save_data
),
GFP_KERNEL
);
sav
e
=
kmalloc
(
sizeof
(
struct
sa1111_save_data
),
GFP_KERNEL
);
if
(
!
dev
->
saved_stat
e
)
if
(
!
sav
e
)
return
-
ENOMEM
;
return
-
ENOMEM
;
dev
->
power
.
saved_state
=
save
;
save
=
(
struct
sa1111_save_data
*
)
dev
->
saved_state
;
spin_lock_irqsave
(
&
sachip
->
lock
,
flags
);
spin_lock_irqsave
(
&
sachip
->
lock
,
flags
);
...
@@ -870,7 +871,7 @@ static int sa1111_resume(struct device *dev, u32 level)
...
@@ -870,7 +871,7 @@ static int sa1111_resume(struct device *dev, u32 level)
if
(
level
!=
RESUME_ENABLE
)
if
(
level
!=
RESUME_ENABLE
)
return
0
;
return
0
;
save
=
(
struct
sa1111_save_data
*
)
dev
->
saved_state
;
save
=
(
struct
sa1111_save_data
*
)
dev
->
power
.
saved_state
;
if
(
!
save
)
if
(
!
save
)
return
0
;
return
0
;
...
@@ -915,12 +916,18 @@ static int sa1111_resume(struct device *dev, u32 level)
...
@@ -915,12 +916,18 @@ static int sa1111_resume(struct device *dev, u32 level)
spin_unlock_irqrestore
(
&
sachip
->
lock
,
flags
);
spin_unlock_irqrestore
(
&
sachip
->
lock
,
flags
);
dev
->
saved_state
=
NULL
;
dev
->
power
.
saved_state
=
NULL
;
kfree
(
save
);
kfree
(
save
);
return
0
;
return
0
;
}
}
#else
/* !CONFIG_PM */
#define sa1111_resume NULL
#define sa1111_suspend NULL
#endif
/* !CONFIG_PM */
static
int
sa1111_probe
(
struct
device
*
dev
)
static
int
sa1111_probe
(
struct
device
*
dev
)
{
{
struct
platform_device
*
pdev
=
to_platform_device
(
dev
);
struct
platform_device
*
pdev
=
to_platform_device
(
dev
);
...
@@ -943,8 +950,8 @@ static int sa1111_remove(struct device *dev)
...
@@ -943,8 +950,8 @@ static int sa1111_remove(struct device *dev)
__sa1111_remove
(
sachip
);
__sa1111_remove
(
sachip
);
dev_set_drvdata
(
dev
,
NULL
);
dev_set_drvdata
(
dev
,
NULL
);
kfree
(
dev
->
saved_state
);
kfree
(
dev
->
power
.
saved_state
);
dev
->
saved_state
=
NULL
;
dev
->
power
.
saved_state
=
NULL
;
}
}
return
0
;
return
0
;
...
...
arch/arm/mach-sa1100/neponset.c
View file @
9e0ce90e
...
@@ -173,6 +173,8 @@ static int neponset_probe(struct device *dev)
...
@@ -173,6 +173,8 @@ static int neponset_probe(struct device *dev)
return
0
;
return
0
;
}
}
#ifdef CONFIG_PM
/*
/*
* LDM power management.
* LDM power management.
*/
*/
...
@@ -184,12 +186,12 @@ static int neponset_suspend(struct device *dev, u32 state, u32 level)
...
@@ -184,12 +186,12 @@ static int neponset_suspend(struct device *dev, u32 state, u32 level)
if
(
level
==
SUSPEND_SAVE_STATE
||
if
(
level
==
SUSPEND_SAVE_STATE
||
level
==
SUSPEND_DISABLE
||
level
==
SUSPEND_DISABLE
||
level
==
SUSPEND_POWER_DOWN
)
{
level
==
SUSPEND_POWER_DOWN
)
{
if
(
!
dev
->
saved_state
)
if
(
!
dev
->
power
.
saved_state
)
dev
->
saved_state
=
kmalloc
(
sizeof
(
unsigned
int
),
GFP_KERNEL
);
dev
->
power
.
saved_state
=
kmalloc
(
sizeof
(
unsigned
int
),
GFP_KERNEL
);
if
(
!
dev
->
saved_state
)
if
(
!
dev
->
power
.
saved_state
)
return
-
ENOMEM
;
return
-
ENOMEM
;
*
(
unsigned
int
*
)
dev
->
saved_state
=
NCR_0
;
*
(
unsigned
int
*
)
dev
->
power
.
saved_state
=
NCR_0
;
}
}
return
0
;
return
0
;
...
@@ -198,16 +200,21 @@ static int neponset_suspend(struct device *dev, u32 state, u32 level)
...
@@ -198,16 +200,21 @@ static int neponset_suspend(struct device *dev, u32 state, u32 level)
static
int
neponset_resume
(
struct
device
*
dev
,
u32
level
)
static
int
neponset_resume
(
struct
device
*
dev
,
u32
level
)
{
{
if
(
level
==
RESUME_RESTORE_STATE
||
level
==
RESUME_ENABLE
)
{
if
(
level
==
RESUME_RESTORE_STATE
||
level
==
RESUME_ENABLE
)
{
if
(
dev
->
saved_state
)
{
if
(
dev
->
power
.
saved_state
)
{
NCR_0
=
*
(
unsigned
int
*
)
dev
->
saved_state
;
NCR_0
=
*
(
unsigned
int
*
)
dev
->
power
.
saved_state
;
kfree
(
dev
->
saved_state
);
kfree
(
dev
->
power
.
saved_state
);
dev
->
saved_state
=
NULL
;
dev
->
power
.
saved_state
=
NULL
;
}
}
}
}
return
0
;
return
0
;
}
}
#else
#define neponset_suspend NULL
#define neponset_resume NULL
#endif
static
struct
device_driver
neponset_device_driver
=
{
static
struct
device_driver
neponset_device_driver
=
{
.
name
=
"neponset"
,
.
name
=
"neponset"
,
.
bus
=
&
platform_bus_type
,
.
bus
=
&
platform_bus_type
,
...
...
drivers/base/bus.c
View file @
9e0ce90e
...
@@ -247,7 +247,7 @@ int bus_for_each_drv(struct bus_type * bus, struct device_driver * start,
...
@@ -247,7 +247,7 @@ int bus_for_each_drv(struct bus_type * bus, struct device_driver * start,
* device_bind_driver - bind a driver to one device.
* device_bind_driver - bind a driver to one device.
* @dev: device.
* @dev: device.
*
*
* Allow manual attachment of a driver to a de
iv
ce.
* Allow manual attachment of a driver to a de
vi
ce.
* Caller must have already set @dev->driver.
* Caller must have already set @dev->driver.
*
*
* Note that this does not modify the bus reference count
* Note that this does not modify the bus reference count
...
...
drivers/base/class.c
View file @
9e0ce90e
...
@@ -303,6 +303,12 @@ static int class_hotplug(struct kset *kset, struct kobject *kobj, char **envp,
...
@@ -303,6 +303,12 @@ static int class_hotplug(struct kset *kset, struct kobject *kobj, char **envp,
buffer
,
buffer_size
,
&
length
,
buffer
,
buffer_size
,
&
length
,
"PHYSDEVBUS=%s"
,
dev
->
bus
->
name
);
"PHYSDEVBUS=%s"
,
dev
->
bus
->
name
);
/* add driver name of physical device */
if
(
dev
->
driver
)
add_hotplug_env_var
(
envp
,
num_envp
,
&
i
,
buffer
,
buffer_size
,
&
length
,
"PHYSDEVDRIVER=%s"
,
dev
->
driver
->
name
);
/* terminate, set to next free slot, shrink available space */
/* terminate, set to next free slot, shrink available space */
envp
[
i
]
=
NULL
;
envp
[
i
]
=
NULL
;
envp
=
&
envp
[
i
];
envp
=
&
envp
[
i
];
...
...
drivers/base/core.c
View file @
9e0ce90e
...
@@ -116,8 +116,29 @@ static int dev_hotplug(struct kset *kset, struct kobject *kobj, char **envp,
...
@@ -116,8 +116,29 @@ static int dev_hotplug(struct kset *kset, struct kobject *kobj, char **envp,
int
num_envp
,
char
*
buffer
,
int
buffer_size
)
int
num_envp
,
char
*
buffer
,
int
buffer_size
)
{
{
struct
device
*
dev
=
to_dev
(
kobj
);
struct
device
*
dev
=
to_dev
(
kobj
);
int
i
=
0
;
int
length
=
0
;
int
retval
=
0
;
int
retval
=
0
;
/* add bus name of physical device */
if
(
dev
->
bus
)
add_hotplug_env_var
(
envp
,
num_envp
,
&
i
,
buffer
,
buffer_size
,
&
length
,
"PHYSDEVBUS=%s"
,
dev
->
bus
->
name
);
/* add driver name of physical device */
if
(
dev
->
driver
)
add_hotplug_env_var
(
envp
,
num_envp
,
&
i
,
buffer
,
buffer_size
,
&
length
,
"PHYSDEVDRIVER=%s"
,
dev
->
driver
->
name
);
/* terminate, set to next free slot, shrink available space */
envp
[
i
]
=
NULL
;
envp
=
&
envp
[
i
];
num_envp
-=
i
;
buffer
=
&
buffer
[
length
];
buffer_size
-=
length
;
if
(
dev
->
bus
->
hotplug
)
{
if
(
dev
->
bus
->
hotplug
)
{
/* have the bus specific function add its stuff */
/* have the bus specific function add its stuff */
retval
=
dev
->
bus
->
hotplug
(
dev
,
envp
,
num_envp
,
buffer
,
buffer_size
);
retval
=
dev
->
bus
->
hotplug
(
dev
,
envp
,
num_envp
,
buffer
,
buffer_size
);
...
...
drivers/block/genhd.c
View file @
9e0ce90e
...
@@ -469,6 +469,12 @@ static int block_hotplug(struct kset *kset, struct kobject *kobj, char **envp,
...
@@ -469,6 +469,12 @@ static int block_hotplug(struct kset *kset, struct kobject *kobj, char **envp,
buffer
,
buffer_size
,
&
length
,
buffer
,
buffer_size
,
&
length
,
"PHYSDEVBUS=%s"
,
dev
->
bus
->
name
);
"PHYSDEVBUS=%s"
,
dev
->
bus
->
name
);
/* add driver name of physical device */
if
(
dev
->
driver
)
add_hotplug_env_var
(
envp
,
num_envp
,
&
i
,
buffer
,
buffer_size
,
&
length
,
"PHYSDEVDRIVER=%s"
,
dev
->
driver
->
name
);
envp
[
i
]
=
NULL
;
envp
[
i
]
=
NULL
;
}
}
...
...
drivers/video/aty/aty128fb.c
View file @
9e0ce90e
...
@@ -2363,7 +2363,7 @@ static int aty128_pci_suspend(struct pci_dev *pdev, u32 state)
...
@@ -2363,7 +2363,7 @@ static int aty128_pci_suspend(struct pci_dev *pdev, u32 state)
state
=
2
;
state
=
2
;
#endif
/* CONFIG_PPC_PMAC */
#endif
/* CONFIG_PPC_PMAC */
if
(
state
!=
2
||
state
==
pdev
->
dev
.
power_state
)
if
(
state
!=
2
||
state
==
pdev
->
dev
.
power
.
power
_state
)
return
0
;
return
0
;
printk
(
KERN_DEBUG
"aty128fb: suspending...
\n
"
);
printk
(
KERN_DEBUG
"aty128fb: suspending...
\n
"
);
...
@@ -2394,7 +2394,7 @@ static int aty128_pci_suspend(struct pci_dev *pdev, u32 state)
...
@@ -2394,7 +2394,7 @@ static int aty128_pci_suspend(struct pci_dev *pdev, u32 state)
release_console_sem
();
release_console_sem
();
pdev
->
dev
.
power_state
=
state
;
pdev
->
dev
.
power
.
power
_state
=
state
;
return
0
;
return
0
;
}
}
...
@@ -2404,13 +2404,13 @@ static int aty128_pci_resume(struct pci_dev *pdev)
...
@@ -2404,13 +2404,13 @@ static int aty128_pci_resume(struct pci_dev *pdev)
struct
fb_info
*
info
=
pci_get_drvdata
(
pdev
);
struct
fb_info
*
info
=
pci_get_drvdata
(
pdev
);
struct
aty128fb_par
*
par
=
info
->
par
;
struct
aty128fb_par
*
par
=
info
->
par
;
if
(
pdev
->
dev
.
power_state
==
0
)
if
(
pdev
->
dev
.
power
.
power
_state
==
0
)
return
0
;
return
0
;
acquire_console_sem
();
acquire_console_sem
();
/* Wakeup chip */
/* Wakeup chip */
if
(
pdev
->
dev
.
power_state
==
2
)
if
(
pdev
->
dev
.
power
.
power
_state
==
2
)
aty128_set_suspend
(
par
,
0
);
aty128_set_suspend
(
par
,
0
);
par
->
asleep
=
0
;
par
->
asleep
=
0
;
...
@@ -2430,7 +2430,7 @@ static int aty128_pci_resume(struct pci_dev *pdev)
...
@@ -2430,7 +2430,7 @@ static int aty128_pci_resume(struct pci_dev *pdev)
release_console_sem
();
release_console_sem
();
pdev
->
dev
.
power_state
=
0
;
pdev
->
dev
.
power
.
power
_state
=
0
;
printk
(
KERN_DEBUG
"aty128fb: resumed !
\n
"
);
printk
(
KERN_DEBUG
"aty128fb: resumed !
\n
"
);
...
...
drivers/video/aty/atyfb_base.c
View file @
9e0ce90e
...
@@ -2033,7 +2033,7 @@ static int atyfb_pci_suspend(struct pci_dev *pdev, u32 state)
...
@@ -2033,7 +2033,7 @@ static int atyfb_pci_suspend(struct pci_dev *pdev, u32 state)
state
=
2
;
state
=
2
;
#endif
/* CONFIG_PPC_PMAC */
#endif
/* CONFIG_PPC_PMAC */
if
(
state
!=
2
||
state
==
pdev
->
dev
.
power_state
)
if
(
state
!=
2
||
state
==
pdev
->
dev
.
power
.
power
_state
)
return
0
;
return
0
;
acquire_console_sem
();
acquire_console_sem
();
...
@@ -2062,7 +2062,7 @@ static int atyfb_pci_suspend(struct pci_dev *pdev, u32 state)
...
@@ -2062,7 +2062,7 @@ static int atyfb_pci_suspend(struct pci_dev *pdev, u32 state)
release_console_sem
();
release_console_sem
();
pdev
->
dev
.
power_state
=
state
;
pdev
->
dev
.
power
.
power
_state
=
state
;
return
0
;
return
0
;
}
}
...
@@ -2072,12 +2072,12 @@ static int atyfb_pci_resume(struct pci_dev *pdev)
...
@@ -2072,12 +2072,12 @@ static int atyfb_pci_resume(struct pci_dev *pdev)
struct
fb_info
*
info
=
pci_get_drvdata
(
pdev
);
struct
fb_info
*
info
=
pci_get_drvdata
(
pdev
);
struct
atyfb_par
*
par
=
(
struct
atyfb_par
*
)
info
->
par
;
struct
atyfb_par
*
par
=
(
struct
atyfb_par
*
)
info
->
par
;
if
(
pdev
->
dev
.
power_state
==
0
)
if
(
pdev
->
dev
.
power
.
power
_state
==
0
)
return
0
;
return
0
;
acquire_console_sem
();
acquire_console_sem
();
if
(
pdev
->
dev
.
power_state
==
2
)
if
(
pdev
->
dev
.
power
.
power
_state
==
2
)
aty_power_mgmt
(
0
,
par
);
aty_power_mgmt
(
0
,
par
);
par
->
asleep
=
0
;
par
->
asleep
=
0
;
...
@@ -2093,7 +2093,7 @@ static int atyfb_pci_resume(struct pci_dev *pdev)
...
@@ -2093,7 +2093,7 @@ static int atyfb_pci_resume(struct pci_dev *pdev)
release_console_sem
();
release_console_sem
();
pdev
->
dev
.
power_state
=
0
;
pdev
->
dev
.
power
.
power
_state
=
0
;
return
0
;
return
0
;
}
}
...
...
drivers/video/aty/radeon_pm.c
View file @
9e0ce90e
...
@@ -898,7 +898,7 @@ int radeonfb_pci_suspend(struct pci_dev *pdev, u32 state)
...
@@ -898,7 +898,7 @@ int radeonfb_pci_suspend(struct pci_dev *pdev, u32 state)
release_console_sem
();
release_console_sem
();
pdev
->
dev
.
power_state
=
state
;
pdev
->
dev
.
power
.
power
_state
=
state
;
return
0
;
return
0
;
}
}
...
@@ -908,7 +908,7 @@ int radeonfb_pci_resume(struct pci_dev *pdev)
...
@@ -908,7 +908,7 @@ int radeonfb_pci_resume(struct pci_dev *pdev)
struct
fb_info
*
info
=
pci_get_drvdata
(
pdev
);
struct
fb_info
*
info
=
pci_get_drvdata
(
pdev
);
struct
radeonfb_info
*
rinfo
=
info
->
par
;
struct
radeonfb_info
*
rinfo
=
info
->
par
;
if
(
pdev
->
dev
.
power_state
==
0
)
if
(
pdev
->
dev
.
power
.
power
_state
==
0
)
return
0
;
return
0
;
acquire_console_sem
();
acquire_console_sem
();
...
@@ -935,7 +935,7 @@ int radeonfb_pci_resume(struct pci_dev *pdev)
...
@@ -935,7 +935,7 @@ int radeonfb_pci_resume(struct pci_dev *pdev)
release_console_sem
();
release_console_sem
();
pdev
->
dev
.
power_state
=
0
;
pdev
->
dev
.
power
.
power
_state
=
0
;
printk
(
KERN_DEBUG
"radeonfb: resumed !
\n
"
);
printk
(
KERN_DEBUG
"radeonfb: resumed !
\n
"
);
...
...
fs/sysfs/dir.c
View file @
9e0ce90e
...
@@ -38,7 +38,7 @@ static struct sysfs_dirent * sysfs_new_dirent(struct sysfs_dirent * parent_sd,
...
@@ -38,7 +38,7 @@ static struct sysfs_dirent * sysfs_new_dirent(struct sysfs_dirent * parent_sd,
sd
=
kmalloc
(
sizeof
(
*
sd
),
GFP_KERNEL
);
sd
=
kmalloc
(
sizeof
(
*
sd
),
GFP_KERNEL
);
if
(
!
sd
)
if
(
!
sd
)
return
ERR_PTR
(
-
ENOMEM
)
;
return
NULL
;
memset
(
sd
,
0
,
sizeof
(
*
sd
));
memset
(
sd
,
0
,
sizeof
(
*
sd
));
atomic_set
(
&
sd
->
s_count
,
1
);
atomic_set
(
&
sd
->
s_count
,
1
);
...
@@ -56,7 +56,7 @@ int sysfs_make_dirent(struct sysfs_dirent * parent_sd, struct dentry * dentry,
...
@@ -56,7 +56,7 @@ int sysfs_make_dirent(struct sysfs_dirent * parent_sd, struct dentry * dentry,
sd
=
sysfs_new_dirent
(
parent_sd
,
element
);
sd
=
sysfs_new_dirent
(
parent_sd
,
element
);
if
(
!
sd
)
if
(
!
sd
)
return
0
;
return
-
ENOMEM
;
sd
->
s_mode
=
mode
;
sd
->
s_mode
=
mode
;
sd
->
s_type
=
type
;
sd
->
s_type
=
type
;
...
@@ -111,7 +111,7 @@ static int create_dir(struct kobject * k, struct dentry * p,
...
@@ -111,7 +111,7 @@ static int create_dir(struct kobject * k, struct dentry * p,
d_rehash
(
*
d
);
d_rehash
(
*
d
);
}
}
}
}
if
(
error
)
if
(
error
&&
(
error
!=
-
EEXIST
)
)
d_drop
(
*
d
);
d_drop
(
*
d
);
dput
(
*
d
);
dput
(
*
d
);
}
else
}
else
...
...
include/linux/device.h
View file @
9e0ce90e
...
@@ -268,12 +268,7 @@ struct device {
...
@@ -268,12 +268,7 @@ struct device {
void
*
platform_data
;
/* Platform specific data (e.g. ACPI,
void
*
platform_data
;
/* Platform specific data (e.g. ACPI,
BIOS data relevant to device) */
BIOS data relevant to device) */
struct
dev_pm_info
power
;
struct
dev_pm_info
power
;
u32
power_state
;
/* Current operating state. In
ACPI-speak, this is D0-D3, D0
being fully functional, and D3
being off. */
unsigned
char
*
saved_state
;
/* saved device state */
u32
detach_state
;
/* State to enter when device is
u32
detach_state
;
/* State to enter when device is
detached from its driver. */
detached from its driver. */
...
...
include/linux/kobject_uevent.h
View file @
9e0ce90e
...
@@ -28,6 +28,7 @@ enum kobject_action {
...
@@ -28,6 +28,7 @@ enum kobject_action {
KOBJ_MOUNT
=
(
__force
kobject_action_t
)
0x04
,
/* mount event for block devices */
KOBJ_MOUNT
=
(
__force
kobject_action_t
)
0x04
,
/* mount event for block devices */
KOBJ_UMOUNT
=
(
__force
kobject_action_t
)
0x05
,
/* umount event for block devices */
KOBJ_UMOUNT
=
(
__force
kobject_action_t
)
0x05
,
/* umount event for block devices */
KOBJ_OFFLINE
=
(
__force
kobject_action_t
)
0x06
,
/* offline event for hotplug devices */
KOBJ_OFFLINE
=
(
__force
kobject_action_t
)
0x06
,
/* offline event for hotplug devices */
KOBJ_ONLINE
=
(
__force
kobject_action_t
)
0x07
,
/* online event for hotplug devices */
};
};
...
...
lib/kobject_uevent.c
View file @
9e0ce90e
...
@@ -42,6 +42,8 @@ static char *action_to_string(enum kobject_action action)
...
@@ -42,6 +42,8 @@ static char *action_to_string(enum kobject_action action)
return
"umount"
;
return
"umount"
;
case
KOBJ_OFFLINE
:
case
KOBJ_OFFLINE
:
return
"offline"
;
return
"offline"
;
case
KOBJ_ONLINE
:
return
"online"
;
default:
default:
return
NULL
;
return
NULL
;
}
}
...
@@ -287,10 +289,10 @@ void kobject_hotplug(struct kobject *kobj, enum kobject_action action)
...
@@ -287,10 +289,10 @@ void kobject_hotplug(struct kobject *kobj, enum kobject_action action)
spin_lock
(
&
sequence_lock
);
spin_lock
(
&
sequence_lock
);
seq
=
++
hotplug_seqnum
;
seq
=
++
hotplug_seqnum
;
spin_unlock
(
&
sequence_lock
);
spin_unlock
(
&
sequence_lock
);
sprintf
(
seq_buff
,
"SEQNUM=%ll
d"
,
(
long
long
)
seq
);
sprintf
(
seq_buff
,
"SEQNUM=%ll
u"
,
(
unsigned
long
long
)
seq
);
pr_debug
(
"%s: %s %s seq=%ll
d
%s %s %s %s %s
\n
"
,
pr_debug
(
"%s: %s %s seq=%ll
u
%s %s %s %s %s
\n
"
,
__FUNCTION__
,
argv
[
0
],
argv
[
1
],
(
long
long
)
seq
,
__FUNCTION__
,
argv
[
0
],
argv
[
1
],
(
unsigned
long
long
)
seq
,
envp
[
0
],
envp
[
1
],
envp
[
2
],
envp
[
3
],
envp
[
4
]);
envp
[
0
],
envp
[
1
],
envp
[
2
],
envp
[
3
],
envp
[
4
]);
send_uevent
(
action_string
,
kobj_path
,
envp
,
GFP_KERNEL
);
send_uevent
(
action_string
,
kobj_path
,
envp
,
GFP_KERNEL
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment