ACPI: battery: add sysfs serial number
Subsystems (2)
PATCH 1/1 ACPI: battery: add sysfs serial number
egrep serial /proc/acpi/battery/BAT0/info
serial number: 32090
serial number can tell you from the imminent danger of beeing set on fire.
--- drivers/acpi/battery.c | 5 +++++ drivers/power/power_supply_sysfs.c | 1 + include/linux/power_supply.h | 1 + 3 files changed, 7 insertions(+), 0 deletions(-)
drivers/acpi/battery.c +5 -0
@@ -194,6 +194,9 @@ static int acpi_battery_get_property(struct power_supply *psy,case POWER_SUPPLY_PROP_MANUFACTURER : val->strval = battery->oem_info;break ; +case POWER_SUPPLY_PROP_SERIAL_NUMBER : + val->strval = battery->serial_number; +break ;default :return -EINVAL ; }
@@ -212,6 +215,7 @@ static enum power_supply_property charge_battery_props[] = {POWER_SUPPLY_PROP_CHARGE_NOW ,POWER_SUPPLY_PROP_MODEL_NAME ,POWER_SUPPLY_PROP_MANUFACTURER , + POWER_SUPPLY_PROP_SERIAL_NUMBER, }; static enum power_supply_property energy_battery_props[] = {
@@ -226,6 +230,7 @@ static enum power_supply_property energy_battery_props[] = {POWER_SUPPLY_PROP_ENERGY_NOW ,POWER_SUPPLY_PROP_MODEL_NAME ,POWER_SUPPLY_PROP_MANUFACTURER , + POWER_SUPPLY_PROP_SERIAL_NUMBER, };#endif
drivers/power/power_supply_sysfs.c +1 -0
@@ -117,6 +117,7 @@ static struct device_attribute power_supply_attrs[] = {/* Properties of type `const char *' */ POWER_SUPPLY_ATTR (model_name),POWER_SUPPLY_ATTR (manufacturer), + POWER_SUPPLY_ATTR(serial_number), }; static ssize_t power_supply_show_static_attrs(struct device *dev,
include/linux/power_supply.h +1 -0
@@ -101,6 +101,7 @@ enum power_supply_property {/* Properties of type `const char *' */ POWER_SUPPLY_PROP_MODEL_NAME ,POWER_SUPPLY_PROP_MANUFACTURER , + POWER_SUPPLY_PROP_SERIAL_NUMBER, }; enum power_supply_type {
Signature · 1 line
1.5.4.rc2-dirty
ACK
Quoted 67 lines · maximilian attems
egrep serial
/proc/acpi/battery/BAT0/info
serial number: 32090serial number can tell you from the imminent danger of beeing set on fire.
Signed-off-by maximilian attems <[email protected]>--- drivers/acpi/battery.c | 5 +++++ drivers/power/power_supply_sysfs.c | 1 + include/linux/power_supply.h | 1 + 3 files changed, 7 insertions(+), 0 deletions(-)drivers/acpi/battery.c +5
-0@@ -194,6 +194,9 @@ static int acpi_battery_get_property(struct power_supply *psy,case POWER_SUPPLY_PROP_MANUFACTURER : val->strval = battery->oem_info;break ; +case POWER_SUPPLY_PROP_SERIAL_NUMBER : + val->strval = battery->serial_number; +break ;default :return -EINVAL ; }@@ -212,6 +215,7 @@ static enum power_supply_property charge_battery_props[] = {POWER_SUPPLY_PROP_CHARGE_NOW ,POWER_SUPPLY_PROP_MODEL_NAME ,POWER_SUPPLY_PROP_MANUFACTURER , + POWER_SUPPLY_PROP_SERIAL_NUMBER, }; static enum power_supply_property energy_battery_props[] = {@@ -226,6 +230,7 @@ static enum power_supply_property energy_battery_props[] = {POWER_SUPPLY_PROP_ENERGY_NOW ,POWER_SUPPLY_PROP_MODEL_NAME ,POWER_SUPPLY_PROP_MANUFACTURER , + POWER_SUPPLY_PROP_SERIAL_NUMBER, };#endif drivers/power/power_supply_sysfs.c +1
-0@@ -117,6 +117,7 @@ static struct device_attribute power_supply_attrs[] = {/* Properties of type `const char *' */ POWER_SUPPLY_ATTR (model_name),POWER_SUPPLY_ATTR (manufacturer), + POWER_SUPPLY_ATTR(serial_number), }; static ssize_t power_supply_show_static_attrs(struct device *dev,include/linux/power_supply.h +1
-0@@ -101,6 +101,7 @@ enum power_supply_property {/* Properties of type `const char *' */ POWER_SUPPLY_PROP_MODEL_NAME ,POWER_SUPPLY_PROP_MANUFACTURER , + POWER_SUPPLY_PROP_SERIAL_NUMBER, }; enum power_supply_type {
Quoted 1 line · Alexey Starikovskiy
ACK
thanks for your quick response!
while checking the missing bits of ACPI_SYSFS_POWER versus ACPI_PROCFS_POWER i also noticed capacity granularity. is that used by anyone?
if yes i can send another patch for that too.
want to switch debian to ACPI_SYSFS_POWER.
Signature · 1 line
maks
Quoted 8 lines · maximilian attems
Quoted 1 line · Alexey Starikovskiy
ACK
thanks for your quick response!
while checking the missing bits of
ACPI_SYSFS_POWERversusACPI_PROCFS_POWERi also noticed capacity granularity. is that used by anyone?
IMHO, nobody cares about it.
Quoted 2 lines
if yes i can send another patch for that too.
SBS (sbs.c) has cycle_count field, which might be useful too, so you might want to show it as well.
Quoted 1 line
want to switch debian to
ACPI_SYSFS_POWER.
Good luck!
[ added debian hal maintainer on cc ]
Quoted 5 lines · Alexey Starikovskiy
Quoted 3 lines · maximilian attems
while checking the missing bits of
ACPI_SYSFS_POWERversusACPI_PROCFS_POWERi also noticed capacity granularity. is that used by anyone?IMHO, nobody cares about it.
ack, will add if someone cries.
Quoted 3 lines
Quoted 1 line
if yes i can send another patch for that too.
SBS (
sbs.c) hascycle_countfield, which might be useful too, so you might want to show it as well.
i see, need to testboot to see if my first try went right.
Quoted 2 lines
Quoted 1 line
want to switch debian to
ACPI_SYSFS_POWER.Good luck!
done on the linux side.
thanks. :)
got the following question:
~/src/hal$ egrep 'voltage_(max|min)_design' -r ../hald/linux/device.c: if (hal_util_get_int_from_file (path, "voltage_max_design", &voltage_design, 10)) {
any particular reason the kernel is calling it cat /sys/class/power_supply/BAT0/voltage_min_design 14400000
shall i send in a patch along the line:
- case POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN:
+ case POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN:
val->intval = battery->design_voltage * 1000;
or is it hal beeing silly?
Signature · 1 line
maks
Quoted 12 lines · maximilian attems
got the following question:
~/src/hal$ egrep 'voltage_(max|min)_design' -r ../hald/linux/device.c: if (hal_util_get_int_from_file(path, "voltage_max_design",&voltage_design, 10)) {any particular reason the kernel is calling it
cat/sys/class/power_supply/BAT0/voltage_min_design14400000shall i send in a patch along the line:
(quoted diff) +1
-1- case POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN: + case POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN: val->intval = battery->design_voltage * 1000;
Quoted 2 lines
or is it hal beeing silly?
On most new batteries design voltage is less than current voltage, thus I've chosen VOLTAGE_MIN_DESIGN.
On older batteries, current voltage may become lower than design, so I think hal should not be very strict about how they relate to each other.
Alex.
Quoted 13 lines · Alexey Starikovskiy
Quoted 12 lines · maximilian attems
got the following question:
~/src/hal$ egrep 'voltage_(max|min)_design' -r ../hald/linux/device.c: if (hal_util_get_int_from_file(path, "voltage_max_design",&voltage_design, 10)) {any particular reason the kernel is calling it
cat/sys/class/power_supply/BAT0/voltage_min_design14400000shall i send in a patch along the line:
(quoted diff) +1
-1- case POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN: + case POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN: val->intval = battery->design_voltage * 1000;
Quoted 5 lines
Quoted 2 lines
or is it hal beeing silly?
On most new batteries design voltage is less than current voltage, thus I've chosen
VOLTAGE_MIN_DESIGN. On older batteries, current voltage may become lower than design, so I
think hal should not be very strict about how they relate to each other.
I'll patch up hal to use voltage_min_design if there is no voltage_max_design available. Which should be fine as we already picked up the same value from procfs for this property.
What it does make me wonder about, is why there is a difference between MIN and MAX in the power_supply class. As this doesn't seem to have a strict meaning (or at least not for ACPI). So why not just voltage_design instead ?
Sjoerd
Signature · 2 lines
The solution to a problem changes the nature of the problem. -- Peer
Quoted 19 lines · Sjoerd Simons
Quoted 13 lines · Alexey Starikovskiy
Quoted 12 lines · maximilian attems
got the following question:
~/src/hal$ egrep 'voltage_(max|min)_design' -r ../hald/linux/device.c: if (hal_util_get_int_from_file(path, "voltage_max_design",&voltage_design, 10)) {any particular reason the kernel is calling it
cat/sys/class/power_supply/BAT0/voltage_min_design14400000shall i send in a patch along the line:
(quoted diff) +1
-1- case POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN: + case POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN: val->intval = battery->design_voltage * 1000;Quoted 4 lines
Quoted 2 lines
or is it hal beeing silly?
On most new batteries design voltage is less than current voltage, thus I've chosen
VOLTAGE_MIN_DESIGN.
On older batteries, current voltage may become lower than design, so I think hal should not be very strict about how they relate to each other.
Quoted 7 lines
I'll patch up hal to use
voltage_min_designif there is novoltage_max_designavailable. Which should be fine as we already picked up the same value from procfs for this property.What it does make me wonder about, is why there is a difference between MIN and MAX in the
power_supplyclass. As this doesn't seem to have a strict meaning (or at least not for ACPI). So why not justvoltage_designinstead ?
Don't know, may be they had battery for which both min and max voltages are known and crossing each needs to be guarded...
Regards,
Alex.
Dear Len Brown,
could you please merged acked patch,
don't feel like merging sysfs file patches in Debian on my own.
thanks for feedback
Signature · 1 line
maks
Quoted 66 lines · Alexey Starikovskiy
ACK
Quoted 64 lines · maximilian attems
egrep serial
/proc/acpi/battery/BAT0/info
serial number: 32090serial number can tell you from the imminent danger of beeing set on fire.
Signed-off-by maximilian attems <[email protected]>--- drivers/acpi/battery.c | 5 +++++ drivers/power/power_supply_sysfs.c | 1 + include/linux/power_supply.h | 1 + 3 files changed, 7 insertions(+), 0 deletions(-)drivers/acpi/battery.c +5
-0@@ -194,6 +194,9 @@ static int acpi_battery_get_property(struct power_supply *psy,case POWER_SUPPLY_PROP_MANUFACTURER : val->strval = battery->oem_info;break ; +case POWER_SUPPLY_PROP_SERIAL_NUMBER : + val->strval = battery->serial_number; +break ;default :return -EINVAL ; }@@ -212,6 +215,7 @@ static enum power_supply_property charge_battery_props[] = {POWER_SUPPLY_PROP_CHARGE_NOW ,POWER_SUPPLY_PROP_MODEL_NAME ,POWER_SUPPLY_PROP_MANUFACTURER , + POWER_SUPPLY_PROP_SERIAL_NUMBER, }; static enum power_supply_property energy_battery_props[] = {@@ -226,6 +230,7 @@ static enum power_supply_property energy_battery_props[] = {POWER_SUPPLY_PROP_ENERGY_NOW ,POWER_SUPPLY_PROP_MODEL_NAME ,POWER_SUPPLY_PROP_MANUFACTURER , + POWER_SUPPLY_PROP_SERIAL_NUMBER, };#endif diff --git a/drivers/power/power_supply_sysfs.c
b/drivers/power/power_supply_sysfs.c
index 249f61b..8feaa48 100644drivers/power/power_supply_sysfs.c +1
-0@@ -117,6 +117,7 @@ static struct device_attribute power_supply_attrs[] = {/* Properties of type `const char *' */ POWER_SUPPLY_ATTR (model_name),POWER_SUPPLY_ATTR (manufacturer), + POWER_SUPPLY_ATTR(serial_number), }; static ssize_t power_supply_show_static_attrs(struct device *dev,include/linux/power_supply.h +1
-0@@ -101,6 +101,7 @@ enum power_supply_property {/* Properties of type `const char *' */ POWER_SUPPLY_PROP_MODEL_NAME ,POWER_SUPPLY_PROP_MANUFACTURER , + POWER_SUPPLY_PROP_SERIAL_NUMBER, }; enum power_supply_type {
Applied.
thanks,
-Len
Quoted 75 lines · Alexey Starikovskiy
ACK
Quoted 60 lines · maximilian attems
egrep serial
/proc/acpi/battery/BAT0/info
serial number: 32090serial number can tell you from the imminent danger of beeing set on fire.
Signed-off-by maximilian attems <[email protected]>--- drivers/acpi/battery.c | 5 +++++ drivers/power/power_supply_sysfs.c | 1 + include/linux/power_supply.h | 1 + 3 files changed, 7 insertions(+), 0 deletions(-)drivers/acpi/battery.c +5
-0@@ -194,6 +194,9 @@ static int acpi_battery_get_property(struct power_supply *psy,case POWER_SUPPLY_PROP_MANUFACTURER : val->strval = battery->oem_info;break ; +case POWER_SUPPLY_PROP_SERIAL_NUMBER : + val->strval = battery->serial_number; +break ;default :return -EINVAL ; }@@ -212,6 +215,7 @@ static enum power_supply_property charge_battery_props[] = {POWER_SUPPLY_PROP_CHARGE_NOW ,POWER_SUPPLY_PROP_MODEL_NAME ,POWER_SUPPLY_PROP_MANUFACTURER , + POWER_SUPPLY_PROP_SERIAL_NUMBER, }; static enum power_supply_property energy_battery_props[] = {@@ -226,6 +230,7 @@ static enum power_supply_property energy_battery_props[] = {POWER_SUPPLY_PROP_ENERGY_NOW ,POWER_SUPPLY_PROP_MODEL_NAME ,POWER_SUPPLY_PROP_MANUFACTURER , + POWER_SUPPLY_PROP_SERIAL_NUMBER, };#endif drivers/power/power_supply_sysfs.c +1
-0@@ -117,6 +117,7 @@ static struct device_attribute power_supply_attrs[] = {/* Properties of type `const char *' */ POWER_SUPPLY_ATTR (model_name),POWER_SUPPLY_ATTR (manufacturer), + POWER_SUPPLY_ATTR(serial_number), }; static ssize_t power_supply_show_static_attrs(struct device *dev,include/linux/power_supply.h +0
-0include/linux/power_supply.h enum power_supply_property { · line 107
Quoted 7 lines
include/linux/power_supply.h +1
-0@@ -101,6 +101,7 @@ enum power_supply_property {/* Properties of type `const char *' */ POWER_SUPPLY_PROP_MODEL_NAME ,POWER_SUPPLY_PROP_MANUFACTURER , + POWER_SUPPLY_PROP_SERIAL_NUMBER, }; enum power_supply_type {-
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html