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
Kirill Smelkov
linux
Commits
3266d63c
Commit
3266d63c
authored
Apr 05, 2009
by
Len Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'battery' into release
parents
4926a236
7faa144a
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
27 additions
and
16 deletions
+27
-16
drivers/acpi/battery.c
drivers/acpi/battery.c
+7
-5
drivers/acpi/sbs.c
drivers/acpi/sbs.c
+16
-11
drivers/power/power_supply_sysfs.c
drivers/power/power_supply_sysfs.c
+2
-0
include/linux/power_supply.h
include/linux/power_supply.h
+2
-0
No files found.
drivers/acpi/battery.c
View file @
3266d63c
...
@@ -92,7 +92,7 @@ struct acpi_battery {
...
@@ -92,7 +92,7 @@ struct acpi_battery {
#endif
#endif
struct
acpi_device
*
device
;
struct
acpi_device
*
device
;
unsigned
long
update_time
;
unsigned
long
update_time
;
int
current
_now
;
int
rate
_now
;
int
capacity_now
;
int
capacity_now
;
int
voltage_now
;
int
voltage_now
;
int
design_capacity
;
int
design_capacity
;
...
@@ -196,7 +196,8 @@ static int acpi_battery_get_property(struct power_supply *psy,
...
@@ -196,7 +196,8 @@ static int acpi_battery_get_property(struct power_supply *psy,
val
->
intval
=
battery
->
voltage_now
*
1000
;
val
->
intval
=
battery
->
voltage_now
*
1000
;
break
;
break
;
case
POWER_SUPPLY_PROP_CURRENT_NOW
:
case
POWER_SUPPLY_PROP_CURRENT_NOW
:
val
->
intval
=
battery
->
current_now
*
1000
;
case
POWER_SUPPLY_PROP_POWER_NOW
:
val
->
intval
=
battery
->
rate_now
*
1000
;
break
;
break
;
case
POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN
:
case
POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN
:
case
POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN
:
case
POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN
:
...
@@ -247,6 +248,7 @@ static enum power_supply_property energy_battery_props[] = {
...
@@ -247,6 +248,7 @@ static enum power_supply_property energy_battery_props[] = {
POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN
,
POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN
,
POWER_SUPPLY_PROP_VOLTAGE_NOW
,
POWER_SUPPLY_PROP_VOLTAGE_NOW
,
POWER_SUPPLY_PROP_CURRENT_NOW
,
POWER_SUPPLY_PROP_CURRENT_NOW
,
POWER_SUPPLY_PROP_POWER_NOW
,
POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN
,
POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN
,
POWER_SUPPLY_PROP_ENERGY_FULL
,
POWER_SUPPLY_PROP_ENERGY_FULL
,
POWER_SUPPLY_PROP_ENERGY_NOW
,
POWER_SUPPLY_PROP_ENERGY_NOW
,
...
@@ -273,7 +275,7 @@ struct acpi_offsets {
...
@@ -273,7 +275,7 @@ struct acpi_offsets {
static
struct
acpi_offsets
state_offsets
[]
=
{
static
struct
acpi_offsets
state_offsets
[]
=
{
{
offsetof
(
struct
acpi_battery
,
state
),
0
},
{
offsetof
(
struct
acpi_battery
,
state
),
0
},
{
offsetof
(
struct
acpi_battery
,
current
_now
),
0
},
{
offsetof
(
struct
acpi_battery
,
rate
_now
),
0
},
{
offsetof
(
struct
acpi_battery
,
capacity_now
),
0
},
{
offsetof
(
struct
acpi_battery
,
capacity_now
),
0
},
{
offsetof
(
struct
acpi_battery
,
voltage_now
),
0
},
{
offsetof
(
struct
acpi_battery
,
voltage_now
),
0
},
};
};
...
@@ -605,11 +607,11 @@ static int acpi_battery_print_state(struct seq_file *seq, int result)
...
@@ -605,11 +607,11 @@ static int acpi_battery_print_state(struct seq_file *seq, int result)
else
else
seq_printf
(
seq
,
"charging state: charged
\n
"
);
seq_printf
(
seq
,
"charging state: charged
\n
"
);
if
(
battery
->
current
_now
==
ACPI_BATTERY_VALUE_UNKNOWN
)
if
(
battery
->
rate
_now
==
ACPI_BATTERY_VALUE_UNKNOWN
)
seq_printf
(
seq
,
"present rate: unknown
\n
"
);
seq_printf
(
seq
,
"present rate: unknown
\n
"
);
else
else
seq_printf
(
seq
,
"present rate: %d %s
\n
"
,
seq_printf
(
seq
,
"present rate: %d %s
\n
"
,
battery
->
current
_now
,
acpi_battery_units
(
battery
));
battery
->
rate
_now
,
acpi_battery_units
(
battery
));
if
(
battery
->
capacity_now
==
ACPI_BATTERY_VALUE_UNKNOWN
)
if
(
battery
->
capacity_now
==
ACPI_BATTERY_VALUE_UNKNOWN
)
seq_printf
(
seq
,
"remaining capacity: unknown
\n
"
);
seq_printf
(
seq
,
"remaining capacity: unknown
\n
"
);
...
...
drivers/acpi/sbs.c
View file @
3266d63c
...
@@ -102,8 +102,8 @@ struct acpi_battery {
...
@@ -102,8 +102,8 @@ struct acpi_battery {
u16
cycle_count
;
u16
cycle_count
;
u16
temp_now
;
u16
temp_now
;
u16
voltage_now
;
u16
voltage_now
;
s16
current
_now
;
s16
rate
_now
;
s16
current
_avg
;
s16
rate
_avg
;
u16
capacity_now
;
u16
capacity_now
;
u16
state_of_charge
;
u16
state_of_charge
;
u16
state
;
u16
state
;
...
@@ -202,9 +202,9 @@ static int acpi_sbs_battery_get_property(struct power_supply *psy,
...
@@ -202,9 +202,9 @@ static int acpi_sbs_battery_get_property(struct power_supply *psy,
return
-
ENODEV
;
return
-
ENODEV
;
switch
(
psp
)
{
switch
(
psp
)
{
case
POWER_SUPPLY_PROP_STATUS
:
case
POWER_SUPPLY_PROP_STATUS
:
if
(
battery
->
current
_now
<
0
)
if
(
battery
->
rate
_now
<
0
)
val
->
intval
=
POWER_SUPPLY_STATUS_DISCHARGING
;
val
->
intval
=
POWER_SUPPLY_STATUS_DISCHARGING
;
else
if
(
battery
->
current
_now
>
0
)
else
if
(
battery
->
rate
_now
>
0
)
val
->
intval
=
POWER_SUPPLY_STATUS_CHARGING
;
val
->
intval
=
POWER_SUPPLY_STATUS_CHARGING
;
else
else
val
->
intval
=
POWER_SUPPLY_STATUS_FULL
;
val
->
intval
=
POWER_SUPPLY_STATUS_FULL
;
...
@@ -224,11 +224,13 @@ static int acpi_sbs_battery_get_property(struct power_supply *psy,
...
@@ -224,11 +224,13 @@ static int acpi_sbs_battery_get_property(struct power_supply *psy,
acpi_battery_vscale
(
battery
)
*
1000
;
acpi_battery_vscale
(
battery
)
*
1000
;
break
;
break
;
case
POWER_SUPPLY_PROP_CURRENT_NOW
:
case
POWER_SUPPLY_PROP_CURRENT_NOW
:
val
->
intval
=
abs
(
battery
->
current_now
)
*
case
POWER_SUPPLY_PROP_POWER_NOW
:
val
->
intval
=
abs
(
battery
->
rate_now
)
*
acpi_battery_ipscale
(
battery
)
*
1000
;
acpi_battery_ipscale
(
battery
)
*
1000
;
break
;
break
;
case
POWER_SUPPLY_PROP_CURRENT_AVG
:
case
POWER_SUPPLY_PROP_CURRENT_AVG
:
val
->
intval
=
abs
(
battery
->
current_avg
)
*
case
POWER_SUPPLY_PROP_POWER_AVG
:
val
->
intval
=
abs
(
battery
->
rate_avg
)
*
acpi_battery_ipscale
(
battery
)
*
1000
;
acpi_battery_ipscale
(
battery
)
*
1000
;
break
;
break
;
case
POWER_SUPPLY_PROP_CAPACITY
:
case
POWER_SUPPLY_PROP_CAPACITY
:
...
@@ -293,6 +295,8 @@ static enum power_supply_property sbs_energy_battery_props[] = {
...
@@ -293,6 +295,8 @@ static enum power_supply_property sbs_energy_battery_props[] = {
POWER_SUPPLY_PROP_VOLTAGE_NOW
,
POWER_SUPPLY_PROP_VOLTAGE_NOW
,
POWER_SUPPLY_PROP_CURRENT_NOW
,
POWER_SUPPLY_PROP_CURRENT_NOW
,
POWER_SUPPLY_PROP_CURRENT_AVG
,
POWER_SUPPLY_PROP_CURRENT_AVG
,
POWER_SUPPLY_PROP_POWER_NOW
,
POWER_SUPPLY_PROP_POWER_AVG
,
POWER_SUPPLY_PROP_CAPACITY
,
POWER_SUPPLY_PROP_CAPACITY
,
POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN
,
POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN
,
POWER_SUPPLY_PROP_ENERGY_FULL
,
POWER_SUPPLY_PROP_ENERGY_FULL
,
...
@@ -301,6 +305,7 @@ static enum power_supply_property sbs_energy_battery_props[] = {
...
@@ -301,6 +305,7 @@ static enum power_supply_property sbs_energy_battery_props[] = {
POWER_SUPPLY_PROP_MODEL_NAME
,
POWER_SUPPLY_PROP_MODEL_NAME
,
POWER_SUPPLY_PROP_MANUFACTURER
,
POWER_SUPPLY_PROP_MANUFACTURER
,
};
};
#endif
#endif
/* --------------------------------------------------------------------------
/* --------------------------------------------------------------------------
...
@@ -330,8 +335,8 @@ static struct acpi_battery_reader info_readers[] = {
...
@@ -330,8 +335,8 @@ static struct acpi_battery_reader info_readers[] = {
static
struct
acpi_battery_reader
state_readers
[]
=
{
static
struct
acpi_battery_reader
state_readers
[]
=
{
{
0x08
,
SMBUS_READ_WORD
,
offsetof
(
struct
acpi_battery
,
temp_now
)},
{
0x08
,
SMBUS_READ_WORD
,
offsetof
(
struct
acpi_battery
,
temp_now
)},
{
0x09
,
SMBUS_READ_WORD
,
offsetof
(
struct
acpi_battery
,
voltage_now
)},
{
0x09
,
SMBUS_READ_WORD
,
offsetof
(
struct
acpi_battery
,
voltage_now
)},
{
0x0a
,
SMBUS_READ_WORD
,
offsetof
(
struct
acpi_battery
,
current
_now
)},
{
0x0a
,
SMBUS_READ_WORD
,
offsetof
(
struct
acpi_battery
,
rate
_now
)},
{
0x0b
,
SMBUS_READ_WORD
,
offsetof
(
struct
acpi_battery
,
current
_avg
)},
{
0x0b
,
SMBUS_READ_WORD
,
offsetof
(
struct
acpi_battery
,
rate
_avg
)},
{
0x0f
,
SMBUS_READ_WORD
,
offsetof
(
struct
acpi_battery
,
capacity_now
)},
{
0x0f
,
SMBUS_READ_WORD
,
offsetof
(
struct
acpi_battery
,
capacity_now
)},
{
0x0e
,
SMBUS_READ_WORD
,
offsetof
(
struct
acpi_battery
,
state_of_charge
)},
{
0x0e
,
SMBUS_READ_WORD
,
offsetof
(
struct
acpi_battery
,
state_of_charge
)},
{
0x16
,
SMBUS_READ_WORD
,
offsetof
(
struct
acpi_battery
,
state
)},
{
0x16
,
SMBUS_READ_WORD
,
offsetof
(
struct
acpi_battery
,
state
)},
...
@@ -589,9 +594,9 @@ static int acpi_battery_read_state(struct seq_file *seq, void *offset)
...
@@ -589,9 +594,9 @@ static int acpi_battery_read_state(struct seq_file *seq, void *offset)
seq_printf
(
seq
,
"capacity state: %s
\n
"
,
seq_printf
(
seq
,
"capacity state: %s
\n
"
,
(
battery
->
state
&
0x0010
)
?
"critical"
:
"ok"
);
(
battery
->
state
&
0x0010
)
?
"critical"
:
"ok"
);
seq_printf
(
seq
,
"charging state: %s
\n
"
,
seq_printf
(
seq
,
"charging state: %s
\n
"
,
(
battery
->
current
_now
<
0
)
?
"discharging"
:
(
battery
->
rate
_now
<
0
)
?
"discharging"
:
((
battery
->
current
_now
>
0
)
?
"charging"
:
"charged"
));
((
battery
->
rate
_now
>
0
)
?
"charging"
:
"charged"
));
rate
=
abs
(
battery
->
current
_now
)
*
acpi_battery_ipscale
(
battery
);
rate
=
abs
(
battery
->
rate
_now
)
*
acpi_battery_ipscale
(
battery
);
rate
*=
(
acpi_battery_mode
(
battery
))
?
(
battery
->
voltage_now
*
rate
*=
(
acpi_battery_mode
(
battery
))
?
(
battery
->
voltage_now
*
acpi_battery_vscale
(
battery
)
/
1000
)
:
1
;
acpi_battery_vscale
(
battery
)
/
1000
)
:
1
;
seq_printf
(
seq
,
"present rate: %d%s
\n
"
,
rate
,
seq_printf
(
seq
,
"present rate: %d%s
\n
"
,
rate
,
...
...
drivers/power/power_supply_sysfs.c
View file @
3266d63c
...
@@ -93,6 +93,8 @@ static struct device_attribute power_supply_attrs[] = {
...
@@ -93,6 +93,8 @@ static struct device_attribute power_supply_attrs[] = {
POWER_SUPPLY_ATTR
(
voltage_avg
),
POWER_SUPPLY_ATTR
(
voltage_avg
),
POWER_SUPPLY_ATTR
(
current_now
),
POWER_SUPPLY_ATTR
(
current_now
),
POWER_SUPPLY_ATTR
(
current_avg
),
POWER_SUPPLY_ATTR
(
current_avg
),
POWER_SUPPLY_ATTR
(
power_now
),
POWER_SUPPLY_ATTR
(
power_avg
),
POWER_SUPPLY_ATTR
(
charge_full_design
),
POWER_SUPPLY_ATTR
(
charge_full_design
),
POWER_SUPPLY_ATTR
(
charge_empty_design
),
POWER_SUPPLY_ATTR
(
charge_empty_design
),
POWER_SUPPLY_ATTR
(
charge_full
),
POWER_SUPPLY_ATTR
(
charge_full
),
...
...
include/linux/power_supply.h
View file @
3266d63c
...
@@ -73,6 +73,8 @@ enum power_supply_property {
...
@@ -73,6 +73,8 @@ enum power_supply_property {
POWER_SUPPLY_PROP_VOLTAGE_AVG
,
POWER_SUPPLY_PROP_VOLTAGE_AVG
,
POWER_SUPPLY_PROP_CURRENT_NOW
,
POWER_SUPPLY_PROP_CURRENT_NOW
,
POWER_SUPPLY_PROP_CURRENT_AVG
,
POWER_SUPPLY_PROP_CURRENT_AVG
,
POWER_SUPPLY_PROP_POWER_NOW
,
POWER_SUPPLY_PROP_POWER_AVG
,
POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN
,
POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN
,
POWER_SUPPLY_PROP_CHARGE_EMPTY_DESIGN
,
POWER_SUPPLY_PROP_CHARGE_EMPTY_DESIGN
,
POWER_SUPPLY_PROP_CHARGE_FULL
,
POWER_SUPPLY_PROP_CHARGE_FULL
,
...
...
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