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

hwmon: (lm80) Rearrange code to avoid forward declarations

Avoid need for forward declarations by rearranging code.

No functional change.

Signed-off-by: Guenter Roeck <linux@roeck-us.net>

+139 -151
+139 -151
drivers/hwmon/lm80.c
··· 140 140 u16 alarms; /* Register encoding, combined */ 141 141 }; 142 142 143 - /* 144 - * Functions declaration 145 - */ 143 + static int lm80_read_value(struct i2c_client *client, u8 reg) 144 + { 145 + return i2c_smbus_read_byte_data(client, reg); 146 + } 146 147 147 - static int lm80_probe(struct i2c_client *client, 148 - const struct i2c_device_id *id); 149 - static int lm80_detect(struct i2c_client *client, struct i2c_board_info *info); 150 - static void lm80_init_client(struct i2c_client *client); 151 - static struct lm80_data *lm80_update_device(struct device *dev); 152 - static int lm80_read_value(struct i2c_client *client, u8 reg); 153 - static int lm80_write_value(struct i2c_client *client, u8 reg, u8 value); 148 + static int lm80_write_value(struct i2c_client *client, u8 reg, u8 value) 149 + { 150 + return i2c_smbus_write_byte_data(client, reg, value); 151 + } 154 152 155 - /* 156 - * Driver data (common to all clients) 157 - */ 153 + /* Called when we have found a new LM80 and after read errors */ 154 + static void lm80_init_client(struct i2c_client *client) 155 + { 156 + /* 157 + * Reset all except Watchdog values and last conversion values 158 + * This sets fan-divs to 2, among others. This makes most other 159 + * initializations unnecessary 160 + */ 161 + lm80_write_value(client, LM80_REG_CONFIG, 0x80); 162 + /* Set 11-bit temperature resolution */ 163 + lm80_write_value(client, LM80_REG_RES, 0x08); 158 164 159 - static const struct i2c_device_id lm80_id[] = { 160 - { "lm80", 0 }, 161 - { "lm96080", 1 }, 162 - { } 163 - }; 164 - MODULE_DEVICE_TABLE(i2c, lm80_id); 165 + /* Start monitoring */ 166 + lm80_write_value(client, LM80_REG_CONFIG, 0x01); 167 + } 165 168 166 - static struct i2c_driver lm80_driver = { 167 - .class = I2C_CLASS_HWMON, 168 - .driver = { 169 - .name = "lm80", 170 - }, 171 - .probe = lm80_probe, 172 - .id_table = lm80_id, 173 - .detect = lm80_detect, 174 - .address_list = normal_i2c, 175 - }; 169 + static struct lm80_data *lm80_update_device(struct device *dev) 170 + { 171 + struct lm80_data *data = dev_get_drvdata(dev); 172 + struct i2c_client *client = data->client; 173 + int i; 174 + int rv; 175 + int prev_rv; 176 + struct lm80_data *ret = data; 177 + 178 + mutex_lock(&data->update_lock); 179 + 180 + if (data->error) 181 + lm80_init_client(client); 182 + 183 + if (time_after(jiffies, data->last_updated + 2 * HZ) || !data->valid) { 184 + dev_dbg(dev, "Starting lm80 update\n"); 185 + for (i = 0; i <= 6; i++) { 186 + rv = lm80_read_value(client, LM80_REG_IN(i)); 187 + if (rv < 0) 188 + goto abort; 189 + data->in[i_input][i] = rv; 190 + 191 + rv = lm80_read_value(client, LM80_REG_IN_MIN(i)); 192 + if (rv < 0) 193 + goto abort; 194 + data->in[i_min][i] = rv; 195 + 196 + rv = lm80_read_value(client, LM80_REG_IN_MAX(i)); 197 + if (rv < 0) 198 + goto abort; 199 + data->in[i_max][i] = rv; 200 + } 201 + 202 + rv = lm80_read_value(client, LM80_REG_FAN1); 203 + if (rv < 0) 204 + goto abort; 205 + data->fan[f_input][0] = rv; 206 + 207 + rv = lm80_read_value(client, LM80_REG_FAN_MIN(1)); 208 + if (rv < 0) 209 + goto abort; 210 + data->fan[f_min][0] = rv; 211 + 212 + rv = lm80_read_value(client, LM80_REG_FAN2); 213 + if (rv < 0) 214 + goto abort; 215 + data->fan[f_input][1] = rv; 216 + 217 + rv = lm80_read_value(client, LM80_REG_FAN_MIN(2)); 218 + if (rv < 0) 219 + goto abort; 220 + data->fan[f_min][1] = rv; 221 + 222 + prev_rv = rv = lm80_read_value(client, LM80_REG_TEMP); 223 + if (rv < 0) 224 + goto abort; 225 + rv = lm80_read_value(client, LM80_REG_RES); 226 + if (rv < 0) 227 + goto abort; 228 + data->temp[t_input] = (prev_rv << 8) | (rv & 0xf0); 229 + 230 + for (i = t_input + 1; i < t_num_temp; i++) { 231 + rv = lm80_read_value(client, temp_regs[i]); 232 + if (rv < 0) 233 + goto abort; 234 + data->temp[i] = rv << 8; 235 + } 236 + 237 + rv = lm80_read_value(client, LM80_REG_FANDIV); 238 + if (rv < 0) 239 + goto abort; 240 + data->fan_div[0] = (rv >> 2) & 0x03; 241 + data->fan_div[1] = (rv >> 4) & 0x03; 242 + 243 + prev_rv = rv = lm80_read_value(client, LM80_REG_ALARM1); 244 + if (rv < 0) 245 + goto abort; 246 + rv = lm80_read_value(client, LM80_REG_ALARM2); 247 + if (rv < 0) 248 + goto abort; 249 + data->alarms = prev_rv + (rv << 8); 250 + 251 + data->last_updated = jiffies; 252 + data->valid = 1; 253 + data->error = 0; 254 + } 255 + goto done; 256 + 257 + abort: 258 + ret = ERR_PTR(rv); 259 + data->valid = 0; 260 + data->error = 1; 261 + 262 + done: 263 + mutex_unlock(&data->update_lock); 264 + 265 + return ret; 266 + } 176 267 177 268 /* 178 269 * Sysfs stuff ··· 644 553 return PTR_ERR_OR_ZERO(hwmon_dev); 645 554 } 646 555 647 - static int lm80_read_value(struct i2c_client *client, u8 reg) 648 - { 649 - return i2c_smbus_read_byte_data(client, reg); 650 - } 556 + /* 557 + * Driver data (common to all clients) 558 + */ 651 559 652 - static int lm80_write_value(struct i2c_client *client, u8 reg, u8 value) 653 - { 654 - return i2c_smbus_write_byte_data(client, reg, value); 655 - } 560 + static const struct i2c_device_id lm80_id[] = { 561 + { "lm80", 0 }, 562 + { "lm96080", 1 }, 563 + { } 564 + }; 565 + MODULE_DEVICE_TABLE(i2c, lm80_id); 656 566 657 - /* Called when we have found a new LM80. */ 658 - static void lm80_init_client(struct i2c_client *client) 659 - { 660 - /* 661 - * Reset all except Watchdog values and last conversion values 662 - * This sets fan-divs to 2, among others. This makes most other 663 - * initializations unnecessary 664 - */ 665 - lm80_write_value(client, LM80_REG_CONFIG, 0x80); 666 - /* Set 11-bit temperature resolution */ 667 - lm80_write_value(client, LM80_REG_RES, 0x08); 668 - 669 - /* Start monitoring */ 670 - lm80_write_value(client, LM80_REG_CONFIG, 0x01); 671 - } 672 - 673 - static struct lm80_data *lm80_update_device(struct device *dev) 674 - { 675 - struct lm80_data *data = dev_get_drvdata(dev); 676 - struct i2c_client *client = data->client; 677 - int i; 678 - int rv; 679 - int prev_rv; 680 - struct lm80_data *ret = data; 681 - 682 - mutex_lock(&data->update_lock); 683 - 684 - if (data->error) 685 - lm80_init_client(client); 686 - 687 - if (time_after(jiffies, data->last_updated + 2 * HZ) || !data->valid) { 688 - dev_dbg(dev, "Starting lm80 update\n"); 689 - for (i = 0; i <= 6; i++) { 690 - rv = lm80_read_value(client, LM80_REG_IN(i)); 691 - if (rv < 0) 692 - goto abort; 693 - data->in[i_input][i] = rv; 694 - 695 - rv = lm80_read_value(client, LM80_REG_IN_MIN(i)); 696 - if (rv < 0) 697 - goto abort; 698 - data->in[i_min][i] = rv; 699 - 700 - rv = lm80_read_value(client, LM80_REG_IN_MAX(i)); 701 - if (rv < 0) 702 - goto abort; 703 - data->in[i_max][i] = rv; 704 - } 705 - 706 - rv = lm80_read_value(client, LM80_REG_FAN1); 707 - if (rv < 0) 708 - goto abort; 709 - data->fan[f_input][0] = rv; 710 - 711 - rv = lm80_read_value(client, LM80_REG_FAN_MIN(1)); 712 - if (rv < 0) 713 - goto abort; 714 - data->fan[f_min][0] = rv; 715 - 716 - rv = lm80_read_value(client, LM80_REG_FAN2); 717 - if (rv < 0) 718 - goto abort; 719 - data->fan[f_input][1] = rv; 720 - 721 - rv = lm80_read_value(client, LM80_REG_FAN_MIN(2)); 722 - if (rv < 0) 723 - goto abort; 724 - data->fan[f_min][1] = rv; 725 - 726 - prev_rv = rv = lm80_read_value(client, LM80_REG_TEMP); 727 - if (rv < 0) 728 - goto abort; 729 - rv = lm80_read_value(client, LM80_REG_RES); 730 - if (rv < 0) 731 - goto abort; 732 - data->temp[t_input] = (prev_rv << 8) | (rv & 0xf0); 733 - 734 - for (i = t_input + 1; i < t_num_temp; i++) { 735 - rv = lm80_read_value(client, temp_regs[i]); 736 - if (rv < 0) 737 - goto abort; 738 - data->temp[i] = rv << 8; 739 - } 740 - 741 - rv = lm80_read_value(client, LM80_REG_FANDIV); 742 - if (rv < 0) 743 - goto abort; 744 - data->fan_div[0] = (rv >> 2) & 0x03; 745 - data->fan_div[1] = (rv >> 4) & 0x03; 746 - 747 - prev_rv = rv = lm80_read_value(client, LM80_REG_ALARM1); 748 - if (rv < 0) 749 - goto abort; 750 - rv = lm80_read_value(client, LM80_REG_ALARM2); 751 - if (rv < 0) 752 - goto abort; 753 - data->alarms = prev_rv + (rv << 8); 754 - 755 - data->last_updated = jiffies; 756 - data->valid = 1; 757 - data->error = 0; 758 - } 759 - goto done; 760 - 761 - abort: 762 - ret = ERR_PTR(rv); 763 - data->valid = 0; 764 - data->error = 1; 765 - 766 - done: 767 - mutex_unlock(&data->update_lock); 768 - 769 - return ret; 770 - } 567 + static struct i2c_driver lm80_driver = { 568 + .class = I2C_CLASS_HWMON, 569 + .driver = { 570 + .name = "lm80", 571 + }, 572 + .probe = lm80_probe, 573 + .id_table = lm80_id, 574 + .detect = lm80_detect, 575 + .address_list = normal_i2c, 576 + }; 771 577 772 578 module_i2c_driver(lm80_driver); 773 579