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

hwmon: (tmp401) Reorganize code to get rid of static forward declarations

Signed-off-by: Andre Prendel <andre.prendel@gmx.de>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Jean Delvare <khali@linux-fr.org>

authored by

Andre Prendel and committed by
Jean Delvare
ea63c2b9 2b76d80a

+97 -108
+97 -108
drivers/hwmon/tmp401.c
··· 92 92 #define TMP411_DEVICE_ID 0x12 93 93 94 94 /* 95 - * Functions declarations 96 - */ 97 - 98 - static int tmp401_probe(struct i2c_client *client, 99 - const struct i2c_device_id *id); 100 - static int tmp401_detect(struct i2c_client *client, 101 - struct i2c_board_info *info); 102 - static int tmp401_remove(struct i2c_client *client); 103 - static struct tmp401_data *tmp401_update_device(struct device *dev); 104 - 105 - /* 106 95 * Driver data (common to all clients) 107 96 */ 108 97 ··· 101 112 { } 102 113 }; 103 114 MODULE_DEVICE_TABLE(i2c, tmp401_id); 104 - 105 - static struct i2c_driver tmp401_driver = { 106 - .class = I2C_CLASS_HWMON, 107 - .driver = { 108 - .name = "tmp401", 109 - }, 110 - .probe = tmp401_probe, 111 - .remove = tmp401_remove, 112 - .id_table = tmp401_id, 113 - .detect = tmp401_detect, 114 - .address_list = normal_i2c, 115 - }; 116 115 117 116 /* 118 117 * Client data (each client gets its own) ··· 169 192 temp = SENSORS_LIMIT(temp, 0, 127000); 170 193 171 194 return (temp + 500) / 1000; 195 + } 196 + 197 + static struct tmp401_data *tmp401_update_device_reg16( 198 + struct i2c_client *client, struct tmp401_data *data) 199 + { 200 + int i; 201 + 202 + for (i = 0; i < 2; i++) { 203 + /* 204 + * High byte must be read first immediately followed 205 + * by the low byte 206 + */ 207 + data->temp[i] = i2c_smbus_read_byte_data(client, 208 + TMP401_TEMP_MSB[i]) << 8; 209 + data->temp[i] |= i2c_smbus_read_byte_data(client, 210 + TMP401_TEMP_LSB[i]); 211 + data->temp_low[i] = i2c_smbus_read_byte_data(client, 212 + TMP401_TEMP_LOW_LIMIT_MSB_READ[i]) << 8; 213 + data->temp_low[i] |= i2c_smbus_read_byte_data(client, 214 + TMP401_TEMP_LOW_LIMIT_LSB[i]); 215 + data->temp_high[i] = i2c_smbus_read_byte_data(client, 216 + TMP401_TEMP_HIGH_LIMIT_MSB_READ[i]) << 8; 217 + data->temp_high[i] |= i2c_smbus_read_byte_data(client, 218 + TMP401_TEMP_HIGH_LIMIT_LSB[i]); 219 + data->temp_crit[i] = i2c_smbus_read_byte_data(client, 220 + TMP401_TEMP_CRIT_LIMIT[i]); 221 + 222 + if (data->kind == tmp411) { 223 + data->temp_lowest[i] = i2c_smbus_read_byte_data(client, 224 + TMP411_TEMP_LOWEST_MSB[i]) << 8; 225 + data->temp_lowest[i] |= i2c_smbus_read_byte_data( 226 + client, TMP411_TEMP_LOWEST_LSB[i]); 227 + 228 + data->temp_highest[i] = i2c_smbus_read_byte_data( 229 + client, TMP411_TEMP_HIGHEST_MSB[i]) << 8; 230 + data->temp_highest[i] |= i2c_smbus_read_byte_data( 231 + client, TMP411_TEMP_HIGHEST_LSB[i]); 232 + } 233 + } 234 + return data; 235 + } 236 + 237 + static struct tmp401_data *tmp401_update_device(struct device *dev) 238 + { 239 + struct i2c_client *client = to_i2c_client(dev); 240 + struct tmp401_data *data = i2c_get_clientdata(client); 241 + 242 + mutex_lock(&data->update_lock); 243 + 244 + if (time_after(jiffies, data->last_updated + HZ) || !data->valid) { 245 + data->status = i2c_smbus_read_byte_data(client, TMP401_STATUS); 246 + data->config = i2c_smbus_read_byte_data(client, 247 + TMP401_CONFIG_READ); 248 + tmp401_update_device_reg16(client, data); 249 + 250 + data->temp_crit_hyst = i2c_smbus_read_byte_data(client, 251 + TMP401_TEMP_CRIT_HYST); 252 + 253 + data->last_updated = jiffies; 254 + data->valid = 1; 255 + } 256 + 257 + mutex_unlock(&data->update_lock); 258 + 259 + return data; 172 260 } 173 261 174 262 static ssize_t show_temp_value(struct device *dev, ··· 577 535 return 0; 578 536 } 579 537 538 + static int tmp401_remove(struct i2c_client *client) 539 + { 540 + struct tmp401_data *data = i2c_get_clientdata(client); 541 + int i; 542 + 543 + if (data->hwmon_dev) 544 + hwmon_device_unregister(data->hwmon_dev); 545 + 546 + for (i = 0; i < ARRAY_SIZE(tmp401_attr); i++) 547 + device_remove_file(&client->dev, &tmp401_attr[i].dev_attr); 548 + 549 + if (data->kind == tmp411) { 550 + for (i = 0; i < ARRAY_SIZE(tmp411_attr); i++) 551 + device_remove_file(&client->dev, 552 + &tmp411_attr[i].dev_attr); 553 + } 554 + 555 + kfree(data); 556 + return 0; 557 + } 558 + 580 559 static int tmp401_probe(struct i2c_client *client, 581 560 const struct i2c_device_id *id) 582 561 { ··· 650 587 return err; 651 588 } 652 589 653 - static int tmp401_remove(struct i2c_client *client) 654 - { 655 - struct tmp401_data *data = i2c_get_clientdata(client); 656 - int i; 657 - 658 - if (data->hwmon_dev) 659 - hwmon_device_unregister(data->hwmon_dev); 660 - 661 - for (i = 0; i < ARRAY_SIZE(tmp401_attr); i++) 662 - device_remove_file(&client->dev, &tmp401_attr[i].dev_attr); 663 - 664 - if (data->kind == tmp411) { 665 - for (i = 0; i < ARRAY_SIZE(tmp411_attr); i++) 666 - device_remove_file(&client->dev, 667 - &tmp411_attr[i].dev_attr); 668 - } 669 - 670 - kfree(data); 671 - return 0; 672 - } 673 - 674 - static struct tmp401_data *tmp401_update_device_reg16( 675 - struct i2c_client *client, struct tmp401_data *data) 676 - { 677 - int i; 678 - 679 - for (i = 0; i < 2; i++) { 680 - /* 681 - * High byte must be read first immediately followed 682 - * by the low byte 683 - */ 684 - data->temp[i] = i2c_smbus_read_byte_data(client, 685 - TMP401_TEMP_MSB[i]) << 8; 686 - data->temp[i] |= i2c_smbus_read_byte_data(client, 687 - TMP401_TEMP_LSB[i]); 688 - data->temp_low[i] = i2c_smbus_read_byte_data(client, 689 - TMP401_TEMP_LOW_LIMIT_MSB_READ[i]) << 8; 690 - data->temp_low[i] |= i2c_smbus_read_byte_data(client, 691 - TMP401_TEMP_LOW_LIMIT_LSB[i]); 692 - data->temp_high[i] = i2c_smbus_read_byte_data(client, 693 - TMP401_TEMP_HIGH_LIMIT_MSB_READ[i]) << 8; 694 - data->temp_high[i] |= i2c_smbus_read_byte_data(client, 695 - TMP401_TEMP_HIGH_LIMIT_LSB[i]); 696 - data->temp_crit[i] = i2c_smbus_read_byte_data(client, 697 - TMP401_TEMP_CRIT_LIMIT[i]); 698 - 699 - if (data->kind == tmp411) { 700 - data->temp_lowest[i] = i2c_smbus_read_byte_data(client, 701 - TMP411_TEMP_LOWEST_MSB[i]) << 8; 702 - data->temp_lowest[i] |= i2c_smbus_read_byte_data( 703 - client, TMP411_TEMP_LOWEST_LSB[i]); 704 - 705 - data->temp_highest[i] = i2c_smbus_read_byte_data( 706 - client, TMP411_TEMP_HIGHEST_MSB[i]) << 8; 707 - data->temp_highest[i] |= i2c_smbus_read_byte_data( 708 - client, TMP411_TEMP_HIGHEST_LSB[i]); 709 - } 710 - } 711 - return data; 712 - } 713 - 714 - static struct tmp401_data *tmp401_update_device(struct device *dev) 715 - { 716 - struct i2c_client *client = to_i2c_client(dev); 717 - struct tmp401_data *data = i2c_get_clientdata(client); 718 - 719 - mutex_lock(&data->update_lock); 720 - 721 - if (time_after(jiffies, data->last_updated + HZ) || !data->valid) { 722 - data->status = i2c_smbus_read_byte_data(client, TMP401_STATUS); 723 - data->config = i2c_smbus_read_byte_data(client, 724 - TMP401_CONFIG_READ); 725 - tmp401_update_device_reg16(client, data); 726 - 727 - data->temp_crit_hyst = i2c_smbus_read_byte_data(client, 728 - TMP401_TEMP_CRIT_HYST); 729 - 730 - data->last_updated = jiffies; 731 - data->valid = 1; 732 - } 733 - 734 - mutex_unlock(&data->update_lock); 735 - 736 - return data; 737 - } 590 + static struct i2c_driver tmp401_driver = { 591 + .class = I2C_CLASS_HWMON, 592 + .driver = { 593 + .name = "tmp401", 594 + }, 595 + .probe = tmp401_probe, 596 + .remove = tmp401_remove, 597 + .id_table = tmp401_id, 598 + .detect = tmp401_detect, 599 + .address_list = normal_i2c, 600 + }; 738 601 739 602 static int __init tmp401_init(void) 740 603 {