hwmon: (adm1021) Avoid forward declaration
PATCH 1/1 hwmon: (adm1021) Avoid forward declaration
Reorder functions to avoid forward declaration.
--- drivers/hwmon/adm1021.c | 175 +++++++++++++++++++++++------------------------- 1 file changed, 83 insertions(+), 92 deletions(-)
drivers/hwmon/adm1021.c +81 -90
@@ -98,41 +98,63 @@ struct adm1021_data {u8 remote_temp_offset_prec; }; -static int adm1021_probe (struct i2c_client *client, -const struct i2c_device_id *id); -static int adm1021_detect (struct i2c_client *client, -struct i2c_board_info *info); -static void adm1021_init_client (struct i2c_client *client); -static struct adm1021_data *adm1021_update_device (struct device *dev); -/* (amalysh) read only mode, otherwise any limit's writing confuse BIOS */ static bool read_only; +static struct adm1021_data *adm1021_update_device (struct device *dev) +{ +struct adm1021_data *data =dev_get_drvdata (dev); +struct i2c_client *client = data->client; -static const struct i2c_device_id adm1021_id[] = { - {"adm1021" , adm1021 }, - {"adm1023" , adm1023 }, - {"max1617" , max1617 }, - {"max1617a" , max1617a }, - {"thmc10" , thmc10 }, - {"lm84" , lm84 }, - {"gl523sm" , gl523sm }, - {"mc1066" , mc1066 }, - { } -}; -MODULE_DEVICE_TABLE (i2c, adm1021_id); +mutex_lock (&data->update_lock); -/* This is the driver that will be inserted */ -static struct i2c_driver adm1021_driver = { - .class =I2C_CLASS_HWMON , - .driver = { - .name ="adm1021" , - }, - .probe = adm1021_probe, - .id_table = adm1021_id, - .detect = adm1021_detect, - .address_list = normal_i2c, -}; +if (time_after (jiffies, data->last_updated +HZ +HZ /2 ) + || !data->valid) { +int i; + +dev_dbg (dev,"Starting adm1021 update\n" ); + +for (i =0 ; i <2 ; i++) { + data->temp[i] =1000 * + (s8 )i2c_smbus_read_byte_data ( + client,ADM1021_REG_TEMP (i)); + data->temp_max[i] =1000 * + (s8 )i2c_smbus_read_byte_data ( + client,ADM1021_REG_TOS_R (i)); +if (data->type != lm84) { + data->temp_min[i] =1000 * + (s8 )i2c_smbus_read_byte_data (client, +ADM1021_REG_THYST_R (i)); + } + } + data->alarms =i2c_smbus_read_byte_data (client, +ADM1021_REG_STATUS ) &0x7c ; +if (data->type = adm1023) { +/* +* The ADM1023 provides 3 extra bits of precision for +* the remote sensor in extra registers. +*/ + data->temp[1 ] +=125 * (i2c_smbus_read_byte_data ( + client,ADM1023_REG_REM_TEMP_PREC ) >>5 ); + data->temp_max[1 ] +=125 * (i2c_smbus_read_byte_data ( + client,ADM1023_REG_REM_TOS_PREC ) >>5 ); + data->temp_min[1 ] +=125 * (i2c_smbus_read_byte_data ( + client,ADM1023_REG_REM_THYST_PREC ) >>5 ); + data->remote_temp_offset +i2c_smbus_read_byte_data (client, +ADM1023_REG_REM_OFFSET ); + data->remote_temp_offset_prec +i2c_smbus_read_byte_data (client, +ADM1023_REG_REM_OFFSET_PREC ); + } + data->last_updated = jiffies; + data->valid =1 ; + } + +mutex_unlock (&data->update_lock); + +return data; +}static ssize_t show_temp (struct device *dev,struct device_attribute *devattr,char *buf)
@@ -409,6 +431,15 @@ static int adm1021_detect(struct i2c_client *client,return 0 ; } +static void adm1021_init_client (struct i2c_client *client) +{ +/* Enable ADC and disable suspend mode */ +i2c_smbus_write_byte_data (client,ADM1021_REG_CONFIG_W , +i2c_smbus_read_byte_data (client,ADM1021_REG_CONFIG_R ) &0xBF ); +/* Set Conversion rate to 1/sec (this can be tinkered with) */ +i2c_smbus_write_byte_data (client,ADM1021_REG_CONV_RATE_W ,0x04 ); +} +static int adm1021_probe (struct i2c_client *client,const struct i2c_device_id *id) {
@@ -438,69 +469,29 @@ static int adm1021_probe(struct i2c_client *client,return PTR_ERR_OR_ZERO (hwmon_dev); } -static void adm1021_init_client (struct i2c_client *client) -{ -/* Enable ADC and disable suspend mode */ -i2c_smbus_write_byte_data (client,ADM1021_REG_CONFIG_W , -i2c_smbus_read_byte_data (client,ADM1021_REG_CONFIG_R ) &0xBF ); -/* Set Conversion rate to 1/sec (this can be tinkered with) */ -i2c_smbus_write_byte_data (client,ADM1021_REG_CONV_RATE_W ,0x04 ); -} - -static struct adm1021_data *adm1021_update_device (struct device *dev) -{ -struct adm1021_data *data =dev_get_drvdata (dev); -struct i2c_client *client = data->client; - -mutex_lock (&data->update_lock); - -if (time_after (jiffies, data->last_updated +HZ +HZ /2 ) - || !data->valid) { -int i; - -dev_dbg (dev,"Starting adm1021 update\n" ); - -for (i =0 ; i <2 ; i++) { - data->temp[i] =1000 * - (s8 )i2c_smbus_read_byte_data ( - client,ADM1021_REG_TEMP (i)); - data->temp_max[i] =1000 * - (s8 )i2c_smbus_read_byte_data ( - client,ADM1021_REG_TOS_R (i)); -if (data->type != lm84) { - data->temp_min[i] =1000 * - (s8 )i2c_smbus_read_byte_data (client, -ADM1021_REG_THYST_R (i)); - } - } - data->alarms =i2c_smbus_read_byte_data (client, -ADM1021_REG_STATUS ) &0x7c ; -if (data->type = adm1023) { -/* -* The ADM1023 provides 3 extra bits of precision for -* the remote sensor in extra registers. -*/ - data->temp[1 ] +=125 * (i2c_smbus_read_byte_data ( - client,ADM1023_REG_REM_TEMP_PREC ) >>5 ); - data->temp_max[1 ] +=125 * (i2c_smbus_read_byte_data ( - client,ADM1023_REG_REM_TOS_PREC ) >>5 ); - data->temp_min[1 ] +=125 * (i2c_smbus_read_byte_data ( - client,ADM1023_REG_REM_THYST_PREC ) >>5 ); - data->remote_temp_offset -i2c_smbus_read_byte_data (client, -ADM1023_REG_REM_OFFSET ); - data->remote_temp_offset_prec -i2c_smbus_read_byte_data (client, -ADM1023_REG_REM_OFFSET_PREC ); - } - data->last_updated = jiffies; - data->valid =1 ; - } - -mutex_unlock (&data->update_lock); +static const struct i2c_device_id adm1021_id[] = { + {"adm1021" , adm1021 }, + {"adm1023" , adm1023 }, + {"max1617" , max1617 }, + {"max1617a" , max1617a }, + {"thmc10" , thmc10 }, + {"lm84" , lm84 }, + {"gl523sm" , gl523sm }, + {"mc1066" , mc1066 }, + { } +}; +MODULE_DEVICE_TABLE (i2c, adm1021_id); -return data; -} +static struct i2c_driver adm1021_driver = { + .class =I2C_CLASS_HWMON , + .driver = { + .name ="adm1021" , + }, + .probe = adm1021_probe, + .id_table = adm1021_id, + .detect = adm1021_detect, + .address_list = normal_i2c, +};module_i2c_driver (adm1021_driver);
Signature · 9 lines
1.9.1 _______________________________________________ lm-sensors mailing list [email protected] http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
Guenter Roeck
maintainerQuoted 3 lines · Axel Lin
Reorder functions to avoid forward declaration.
Signed-off-by Axel Lin <[email protected]>
Hi Axel,
did you write module test scripts for any of those by any chance ? Just asking, since it would save me some time.
The module test script for the adm1021 driver exposes a cache problem when writing temperature limits. temp_min and temp_max are expected to be stored in milli-degrees C but are stored in degrees C. Feel free to send a patch to fix the problem if you have time.
Thanks,
Guenter
_______________________________________________
lm-sensors mailing list
[email protected]
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
2014-07-03 22:12 GMT+08:00 Guenter Roeck <[email protected]>:
Quoted 11 lines · Axel Lin
Quoted 4 lines
Reorder functions to avoid forward declaration.
Signed-off-by Axel Lin <[email protected]>Hi Axel,
did you write module test scripts for any of those by any chance ? Just asking, since it would save me some time.
No, not yet.
I need to study how to write the module test scripts first.
Quoted 5 lines
The module test script for the adm1021 driver exposes a cache problem when writing temperature limits.
temp_minandtemp_maxare expected to be stored in milli-degrees C but are stored in degrees C. Feel free to send a patch to fix the problem if you have time.
Ok. Thanks for the report and the nice test tool.
Regards,
Axel
_______________________________________________
lm-sensors mailing list
[email protected]
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
Quoted 3 lines · Axel Lin
Reorder functions to avoid forward declaration.
Signed-off-by Axel Lin <[email protected]>
Applied to -next.
Thanks,
Guenter
_______________________________________________
lm-sensors mailing list
[email protected]
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
Guenter Roeck
maintainerQuoted 8 lines · Axel Lin
2014-07-03 22:12 GMT+08:00 Guenter Roeck <[email protected]>:
Quoted 7 lines · Axel Lin
Quoted 4 lines
Reorder functions to avoid forward declaration.
Signed-off-by Axel Lin <[email protected]>
Quoted 7 lines
Quoted 4 lines
Hi Axel,
did you write module test scripts for any of those by any chance ? Just asking, since it would save me some time.
No, not yet.
I need to study how to write the module test scripts first.
No problem, just asking.
Thanks,
Guenter
_______________________________________________
lm-sensors mailing list
[email protected]
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors