Commit 81194cd2 authored by Kyle McMartin's avatar Kyle McMartin Committed by Guenter Roeck

acpi_power_meter: use the same struct {rw,ro}_sensor_template for both

We don't need both, when we can just key the read/write off of the
presence of the .set member.
Signed-off-by: default avatarKyle McMartin <kyle@redhat.com>
Signed-off-by: default avatarGuenter Roeck <guenter.roeck@ericsson.com>
parent f71f5a55
...@@ -107,15 +107,7 @@ struct acpi_power_meter_resource { ...@@ -107,15 +107,7 @@ struct acpi_power_meter_resource {
struct kobject *holders_dir; struct kobject *holders_dir;
}; };
struct ro_sensor_template { struct sensor_template {
char *label;
ssize_t (*show)(struct device *dev,
struct device_attribute *devattr,
char *buf);
int index;
};
struct rw_sensor_template {
char *label; char *label;
ssize_t (*show)(struct device *dev, ssize_t (*show)(struct device *dev,
struct device_attribute *devattr, struct device_attribute *devattr,
...@@ -470,50 +462,125 @@ static ssize_t show_name(struct device *dev, ...@@ -470,50 +462,125 @@ static ssize_t show_name(struct device *dev,
} }
/* Sensor descriptions. If you add a sensor, update NUM_SENSORS above! */ /* Sensor descriptions. If you add a sensor, update NUM_SENSORS above! */
static struct ro_sensor_template meter_ro_attrs[] = { static struct sensor_template meter_ro_attrs[] = {
{POWER_AVERAGE_NAME, show_power, 0}, {
{"power1_accuracy", show_accuracy, 0}, .label = POWER_AVERAGE_NAME,
{"power1_average_interval_min", show_val, 0}, .show = show_power,
{"power1_average_interval_max", show_val, 1}, .index = 0,
{"power1_is_battery", show_val, 5}, },
{NULL, NULL, 0}, {
.label = "power1_accuracy",
.show = show_accuracy,
.index = 0,
},
{ .label = "power1_average_interval_min",
.show = show_val,
.index = 0
},
{
.label = "power1_average_interval_max",
.show = show_val,
.index = 1,
},
{
.label = "power1_is_battery",
.show = show_val,
.index = 5,
},
{},
}; };
static struct rw_sensor_template meter_rw_attrs[] = { static struct sensor_template meter_rw_attrs[] = {
{POWER_AVG_INTERVAL_NAME, show_avg_interval, set_avg_interval, 0}, {
{NULL, NULL, NULL, 0}, .label = POWER_AVG_INTERVAL_NAME,
.show = show_avg_interval,
.set = set_avg_interval,
.index = 0,
},
{},
}; };
static struct ro_sensor_template misc_cap_attrs[] = { static struct sensor_template misc_cap_attrs[] = {
{"power1_cap_min", show_val, 2}, {
{"power1_cap_max", show_val, 3}, .label = "power1_cap_min",
{"power1_cap_hyst", show_val, 4}, .show = show_val,
{POWER_ALARM_NAME, show_val, 6}, .index = 2,
{NULL, NULL, 0}, },
{
.label = "power1_cap_max",
.show = show_val,
.index = 3,
},
{
.label = "power1_cap_hyst",
.show = show_val,
.index = 4,
},
{
.label = POWER_ALARM_NAME,
.show = show_val,
.index = 6,
},
{},
}; };
static struct ro_sensor_template ro_cap_attrs[] = { static struct sensor_template ro_cap_attrs[] = {
{POWER_CAP_NAME, show_cap, 0}, {
{NULL, NULL, 0}, .label = POWER_CAP_NAME,
.show = show_cap,
.index = 0,
},
{},
}; };
static struct rw_sensor_template rw_cap_attrs[] = { static struct sensor_template rw_cap_attrs[] = {
{POWER_CAP_NAME, show_cap, set_cap, 0}, {
{NULL, NULL, NULL, 0}, .label = POWER_CAP_NAME,
.show = show_cap,
.set = set_cap,
.index = 0,
},
{},
}; };
static struct rw_sensor_template trip_attrs[] = { static struct sensor_template trip_attrs[] = {
{"power1_average_min", show_val, set_trip, 7}, {
{"power1_average_max", show_val, set_trip, 8}, .label = "power1_average_min",
{NULL, NULL, NULL, 0}, .show = show_val,
.set = set_trip,
.index = 7,
},
{
.label = "power1_average_max",
.show = show_val,
.set = set_trip,
.index = 8,
},
{},
}; };
static struct ro_sensor_template misc_attrs[] = { static struct sensor_template misc_attrs[] = {
{"name", show_name, 0}, {
{"power1_model_number", show_str, 0}, .label = "name",
{"power1_oem_info", show_str, 2}, .show = show_name,
{"power1_serial_number", show_str, 1}, .index = 0,
{NULL, NULL, 0}, },
{
.label = "power1_model_number",
.show = show_str,
.index = 0,
},
{
.label = "power1_oem_info",
.show = show_str,
.index = 2,
},
{
.label = "power1_serial_number",
.show = show_str,
.index = 1,
},
{},
}; };
/* Read power domain data */ /* Read power domain data */
...@@ -620,7 +687,7 @@ static int read_domain_devices(struct acpi_power_meter_resource *resource) ...@@ -620,7 +687,7 @@ static int read_domain_devices(struct acpi_power_meter_resource *resource)
/* Registration and deregistration */ /* Registration and deregistration */
static int register_ro_attrs(struct acpi_power_meter_resource *resource, static int register_ro_attrs(struct acpi_power_meter_resource *resource,
struct ro_sensor_template *ro) struct sensor_template *ro)
{ {
struct device *dev = &resource->acpi_dev->dev; struct device *dev = &resource->acpi_dev->dev;
struct sensor_device_attribute *sensors = struct sensor_device_attribute *sensors =
...@@ -649,7 +716,7 @@ static int register_ro_attrs(struct acpi_power_meter_resource *resource, ...@@ -649,7 +716,7 @@ static int register_ro_attrs(struct acpi_power_meter_resource *resource,
} }
static int register_rw_attrs(struct acpi_power_meter_resource *resource, static int register_rw_attrs(struct acpi_power_meter_resource *resource,
struct rw_sensor_template *rw) struct sensor_template *rw)
{ {
struct device *dev = &resource->acpi_dev->dev; struct device *dev = &resource->acpi_dev->dev;
struct sensor_device_attribute *sensors = struct sensor_device_attribute *sensors =
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment