Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
L
Linux
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
E-EXK4 - Operating System Group
projects
Linux
Commits
fc0dc4d3
Commit
fc0dc4d3
authored
17 years ago
by
Len Brown
Browse files
Options
Downloads
Plain Diff
Pull bugzilla-8768 into release branch
parents
53fdc518
3bd92ba1
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
drivers/acpi/battery.c
+17
-30
17 additions, 30 deletions
drivers/acpi/battery.c
with
17 additions
and
30 deletions
drivers/acpi/battery.c
+
17
−
30
View file @
fc0dc4d3
...
...
@@ -113,7 +113,7 @@ struct acpi_battery_info {
acpi_string
oem_info
;
};
enum
acpi_battery_files
{
enum
acpi_battery_files
{
ACPI_BATTERY_INFO
=
0
,
ACPI_BATTERY_STATE
,
ACPI_BATTERY_ALARM
,
...
...
@@ -129,13 +129,14 @@ struct acpi_battery_flags {
};
struct
acpi_battery
{
struct
mutex
mutex
;
struct
acpi_device
*
device
;
struct
acpi_battery_flags
flags
;
struct
acpi_buffer
bif_data
;
struct
acpi_buffer
bst_data
;
struct
mutex
lock
;
unsigned
long
alarm
;
unsigned
long
update_time
[
ACPI_BATTERY_NUMFILES
];
};
inline
int
acpi_battery_present
(
struct
acpi_battery
*
battery
)
...
...
@@ -235,10 +236,10 @@ static int acpi_battery_get_info(struct acpi_battery *battery)
return
0
;
/* Evaluate _BIF */
status
=
acpi_evaluate_object
(
acpi_battery_handle
(
battery
),
"_BIF"
,
NULL
,
&
buffer
);
mutex_lock
(
&
battery
->
lock
);
status
=
acpi_evaluate_object
(
acpi_battery_handle
(
battery
),
"_BIF"
,
NULL
,
&
buffer
);
mutex_unlock
(
&
battery
->
lock
);
if
(
ACPI_FAILURE
(
status
))
{
ACPI_EXCEPTION
((
AE_INFO
,
status
,
"Evaluating _BIF"
));
return
-
ENODEV
;
...
...
@@ -285,10 +286,10 @@ static int acpi_battery_get_state(struct acpi_battery *battery)
return
0
;
/* Evaluate _BST */
status
=
acpi_evaluate_object
(
acpi_battery_handle
(
battery
),
"_BST"
,
NULL
,
&
buffer
);
mutex_lock
(
&
battery
->
lock
);
status
=
acpi_evaluate_object
(
acpi_battery_handle
(
battery
),
"_BST"
,
NULL
,
&
buffer
);
mutex_unlock
(
&
battery
->
lock
);
if
(
ACPI_FAILURE
(
status
))
{
ACPI_EXCEPTION
((
AE_INFO
,
status
,
"Evaluating _BST"
));
return
-
ENODEV
;
...
...
@@ -336,9 +337,10 @@ static int acpi_battery_set_alarm(struct acpi_battery *battery,
arg0
.
integer
.
value
=
alarm
;
status
=
acpi_evaluate_object
(
acpi_battery_handle
(
battery
),
"_BTP"
,
mutex_lock
(
&
battery
->
lock
);
status
=
acpi_evaluate_object
(
acpi_battery_handle
(
battery
),
"_BTP"
,
&
arg_list
,
NULL
);
mutex_unlock
(
&
battery
->
lock
);
if
(
ACPI_FAILURE
(
status
))
return
-
ENODEV
;
...
...
@@ -658,8 +660,6 @@ acpi_battery_write_alarm(struct file *file,
if
(
!
battery
||
(
count
>
sizeof
(
alarm_string
)
-
1
))
return
-
EINVAL
;
mutex_lock
(
&
battery
->
mutex
);
result
=
acpi_battery_update
(
battery
,
1
,
&
update_result
);
if
(
result
)
{
result
=
-
ENODEV
;
...
...
@@ -688,9 +688,7 @@ acpi_battery_write_alarm(struct file *file,
acpi_battery_check_result
(
battery
,
result
);
if
(
!
result
)
result
=
count
;
mutex_unlock
(
&
battery
->
mutex
);
return
count
;
return
result
;
}
...
...
@@ -714,8 +712,6 @@ static int acpi_battery_read(int fid, struct seq_file *seq)
int
update_result
=
ACPI_BATTERY_NONE_UPDATE
;
int
update
=
0
;
mutex_lock
(
&
battery
->
mutex
);
update
=
(
get_seconds
()
-
battery
->
update_time
[
fid
]
>=
update_time
);
update
=
(
update
|
battery
->
flags
.
update
[
fid
]);
...
...
@@ -733,7 +729,6 @@ static int acpi_battery_read(int fid, struct seq_file *seq)
result
=
acpi_read_funcs
[
fid
].
print
(
seq
,
result
);
acpi_battery_check_result
(
battery
,
result
);
battery
->
flags
.
update
[
fid
]
=
result
;
mutex_unlock
(
&
battery
->
mutex
);
return
result
;
}
...
...
@@ -897,10 +892,7 @@ static int acpi_battery_add(struct acpi_device *device)
if
(
!
battery
)
return
-
ENOMEM
;
mutex_init
(
&
battery
->
mutex
);
mutex_lock
(
&
battery
->
mutex
);
mutex_init
(
&
battery
->
lock
);
battery
->
device
=
device
;
strcpy
(
acpi_device_name
(
device
),
ACPI_BATTERY_DEVICE_NAME
);
strcpy
(
acpi_device_class
(
device
),
ACPI_BATTERY_CLASS
);
...
...
@@ -936,7 +928,6 @@ static int acpi_battery_add(struct acpi_device *device)
kfree
(
battery
);
}
mutex_unlock
(
&
battery
->
mutex
);
return
result
;
}
...
...
@@ -951,8 +942,6 @@ static int acpi_battery_remove(struct acpi_device *device, int type)
battery
=
acpi_driver_data
(
device
);
mutex_lock
(
&
battery
->
mutex
);
status
=
acpi_remove_notify_handler
(
device
->
handle
,
ACPI_ALL_NOTIFY
,
acpi_battery_notify
);
...
...
@@ -963,9 +952,7 @@ static int acpi_battery_remove(struct acpi_device *device, int type)
kfree
(
battery
->
bst_data
.
pointer
);
mutex_unlock
(
&
battery
->
mutex
);
mutex_destroy
(
&
battery
->
mutex
);
mutex_destroy
(
&
battery
->
lock
);
kfree
(
battery
);
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment