Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

hwmon: (smsc47m192) Avoid forward declaration

Reorder functions to avoid forward declaration.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>

authored by

Axel Lin and committed by
Guenter Roeck
94314e25 28681d71

+77 -84
+77 -84
drivers/hwmon/smsc47m192.c
··· 112 112 u8 vrm; 113 113 }; 114 114 115 - static int smsc47m192_probe(struct i2c_client *client, 116 - const struct i2c_device_id *id); 117 - static int smsc47m192_detect(struct i2c_client *client, 118 - struct i2c_board_info *info); 119 - static int smsc47m192_remove(struct i2c_client *client); 120 - static struct smsc47m192_data *smsc47m192_update_device(struct device *dev); 115 + static struct smsc47m192_data *smsc47m192_update_device(struct device *dev) 116 + { 117 + struct i2c_client *client = to_i2c_client(dev); 118 + struct smsc47m192_data *data = i2c_get_clientdata(client); 119 + int i, config; 121 120 122 - static const struct i2c_device_id smsc47m192_id[] = { 123 - { "smsc47m192", 0 }, 124 - { } 125 - }; 126 - MODULE_DEVICE_TABLE(i2c, smsc47m192_id); 121 + mutex_lock(&data->update_lock); 127 122 128 - static struct i2c_driver smsc47m192_driver = { 129 - .class = I2C_CLASS_HWMON, 130 - .driver = { 131 - .name = "smsc47m192", 132 - }, 133 - .probe = smsc47m192_probe, 134 - .remove = smsc47m192_remove, 135 - .id_table = smsc47m192_id, 136 - .detect = smsc47m192_detect, 137 - .address_list = normal_i2c, 138 - }; 123 + if (time_after(jiffies, data->last_updated + HZ + HZ / 2) 124 + || !data->valid) { 125 + u8 sfr = i2c_smbus_read_byte_data(client, SMSC47M192_REG_SFR); 126 + 127 + dev_dbg(&client->dev, "Starting smsc47m192 update\n"); 128 + 129 + for (i = 0; i <= 7; i++) { 130 + data->in[i] = i2c_smbus_read_byte_data(client, 131 + SMSC47M192_REG_IN(i)); 132 + data->in_min[i] = i2c_smbus_read_byte_data(client, 133 + SMSC47M192_REG_IN_MIN(i)); 134 + data->in_max[i] = i2c_smbus_read_byte_data(client, 135 + SMSC47M192_REG_IN_MAX(i)); 136 + } 137 + for (i = 0; i < 3; i++) { 138 + data->temp[i] = i2c_smbus_read_byte_data(client, 139 + SMSC47M192_REG_TEMP[i]); 140 + data->temp_max[i] = i2c_smbus_read_byte_data(client, 141 + SMSC47M192_REG_TEMP_MAX[i]); 142 + data->temp_min[i] = i2c_smbus_read_byte_data(client, 143 + SMSC47M192_REG_TEMP_MIN[i]); 144 + } 145 + for (i = 1; i < 3; i++) 146 + data->temp_offset[i] = i2c_smbus_read_byte_data(client, 147 + SMSC47M192_REG_TEMP_OFFSET(i)); 148 + /* 149 + * first offset is temp_offset[0] if SFR bit 4 is set, 150 + * temp_offset[1] otherwise 151 + */ 152 + if (sfr & 0x10) { 153 + data->temp_offset[0] = data->temp_offset[1]; 154 + data->temp_offset[1] = 0; 155 + } else 156 + data->temp_offset[0] = 0; 157 + 158 + data->vid = i2c_smbus_read_byte_data(client, SMSC47M192_REG_VID) 159 + & 0x0f; 160 + config = i2c_smbus_read_byte_data(client, 161 + SMSC47M192_REG_CONFIG); 162 + if (config & 0x20) 163 + data->vid |= (i2c_smbus_read_byte_data(client, 164 + SMSC47M192_REG_VID4) & 0x01) << 4; 165 + data->alarms = i2c_smbus_read_byte_data(client, 166 + SMSC47M192_REG_ALARM1) | 167 + (i2c_smbus_read_byte_data(client, 168 + SMSC47M192_REG_ALARM2) << 8); 169 + 170 + data->last_updated = jiffies; 171 + data->valid = 1; 172 + } 173 + 174 + mutex_unlock(&data->update_lock); 175 + 176 + return data; 177 + } 139 178 140 179 /* Voltages */ 141 180 static ssize_t show_in(struct device *dev, struct device_attribute *attr, ··· 646 607 return 0; 647 608 } 648 609 649 - static struct smsc47m192_data *smsc47m192_update_device(struct device *dev) 650 - { 651 - struct i2c_client *client = to_i2c_client(dev); 652 - struct smsc47m192_data *data = i2c_get_clientdata(client); 653 - int i, config; 610 + static const struct i2c_device_id smsc47m192_id[] = { 611 + { "smsc47m192", 0 }, 612 + { } 613 + }; 614 + MODULE_DEVICE_TABLE(i2c, smsc47m192_id); 654 615 655 - mutex_lock(&data->update_lock); 656 - 657 - if (time_after(jiffies, data->last_updated + HZ + HZ / 2) 658 - || !data->valid) { 659 - u8 sfr = i2c_smbus_read_byte_data(client, SMSC47M192_REG_SFR); 660 - 661 - dev_dbg(&client->dev, "Starting smsc47m192 update\n"); 662 - 663 - for (i = 0; i <= 7; i++) { 664 - data->in[i] = i2c_smbus_read_byte_data(client, 665 - SMSC47M192_REG_IN(i)); 666 - data->in_min[i] = i2c_smbus_read_byte_data(client, 667 - SMSC47M192_REG_IN_MIN(i)); 668 - data->in_max[i] = i2c_smbus_read_byte_data(client, 669 - SMSC47M192_REG_IN_MAX(i)); 670 - } 671 - for (i = 0; i < 3; i++) { 672 - data->temp[i] = i2c_smbus_read_byte_data(client, 673 - SMSC47M192_REG_TEMP[i]); 674 - data->temp_max[i] = i2c_smbus_read_byte_data(client, 675 - SMSC47M192_REG_TEMP_MAX[i]); 676 - data->temp_min[i] = i2c_smbus_read_byte_data(client, 677 - SMSC47M192_REG_TEMP_MIN[i]); 678 - } 679 - for (i = 1; i < 3; i++) 680 - data->temp_offset[i] = i2c_smbus_read_byte_data(client, 681 - SMSC47M192_REG_TEMP_OFFSET(i)); 682 - /* 683 - * first offset is temp_offset[0] if SFR bit 4 is set, 684 - * temp_offset[1] otherwise 685 - */ 686 - if (sfr & 0x10) { 687 - data->temp_offset[0] = data->temp_offset[1]; 688 - data->temp_offset[1] = 0; 689 - } else 690 - data->temp_offset[0] = 0; 691 - 692 - data->vid = i2c_smbus_read_byte_data(client, SMSC47M192_REG_VID) 693 - & 0x0f; 694 - config = i2c_smbus_read_byte_data(client, 695 - SMSC47M192_REG_CONFIG); 696 - if (config & 0x20) 697 - data->vid |= (i2c_smbus_read_byte_data(client, 698 - SMSC47M192_REG_VID4) & 0x01) << 4; 699 - data->alarms = i2c_smbus_read_byte_data(client, 700 - SMSC47M192_REG_ALARM1) | 701 - (i2c_smbus_read_byte_data(client, 702 - SMSC47M192_REG_ALARM2) << 8); 703 - 704 - data->last_updated = jiffies; 705 - data->valid = 1; 706 - } 707 - 708 - mutex_unlock(&data->update_lock); 709 - 710 - return data; 711 - } 616 + static struct i2c_driver smsc47m192_driver = { 617 + .class = I2C_CLASS_HWMON, 618 + .driver = { 619 + .name = "smsc47m192", 620 + }, 621 + .probe = smsc47m192_probe, 622 + .remove = smsc47m192_remove, 623 + .id_table = smsc47m192_id, 624 + .detect = smsc47m192_detect, 625 + .address_list = normal_i2c, 626 + }; 712 627 713 628 module_i2c_driver(smsc47m192_driver); 714 629