Changeset 5372

Show
Ignore:
Timestamp:
10/22/08 21:24:54 (5 years ago)
Author:
khali
Message:

Use inline functions instead of macros. Macros evaluating their
arguments more than once are evil. Backport from Linux 2.6.

Location:
lm-sensors/trunk
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • lm-sensors/trunk/CHANGES

    r5371 r5372  
    1515  Module lm78: Prevent misdetection of Winbond chips 
    1616  Module lm90: Don't spam the kernel log (2.6 backport) 
     17  Module max1619: Use inline functions instead of macros (2.6 backport) 
    1718  Program pwmconfig: Fix MINSTOP and MINSTART test functions (#2340) 
    1819                     Change default for MINTEMP from 0 to 20 degrees C 
  • lm-sensors/trunk/kernel/chips/max1619.c

    r2867 r5372  
    7474 
    7575/* 
    76  * Conversions and various macros 
    77  */ 
    78  
    79 #define TEMP_FROM_REG(val)      ((val) & 0x80 ? (val)-0x100 : (val)) 
    80 #define TEMP_TO_REG(val)        ((val) < 0 ? (val)+0x100 : (val)) 
     76 * Conversions 
     77 */ 
     78 
     79static int temp_from_reg(int val) 
     80{ 
     81        return val & 0x80 ? val-0x100 : val; 
     82} 
     83 
     84static int temp_to_reg(int val) 
     85{ 
     86        return val < 0 ? val+0x100 : val; 
     87} 
    8188 
    8289/* 
     
    398405        else if (operation == SENSORS_PROC_REAL_READ) { 
    399406                max1619_update_client(client); 
    400                 results[0] = TEMP_FROM_REG(data->local_temp); 
     407                results[0] = temp_from_reg(data->local_temp); 
    401408                *nrels_mag = 1; 
    402409        } 
     
    413420        else if (operation == SENSORS_PROC_REAL_READ) { 
    414421                max1619_update_client(client); 
    415                 results[0] = TEMP_FROM_REG(data->remote_high); 
    416                 results[1] = TEMP_FROM_REG(data->remote_low); 
    417                 results[2] = TEMP_FROM_REG(data->remote_temp); 
     422                results[0] = temp_from_reg(data->remote_high); 
     423                results[1] = temp_from_reg(data->remote_low); 
     424                results[2] = temp_from_reg(data->remote_temp); 
    418425                *nrels_mag = 3; 
    419426        } else if (operation == SENSORS_PROC_REAL_WRITE) { 
    420427                if (*nrels_mag >= 1) { 
    421                         data->remote_high = TEMP_TO_REG(results[0]); 
     428                        data->remote_high = temp_to_reg(results[0]); 
    422429                        i2c_smbus_write_byte_data(client, 
    423430                                MAX1619_REG_W_REMOTE_THIGH, data->remote_high); 
    424431                } 
    425432                if (*nrels_mag >= 2) { 
    426                         data->remote_low = TEMP_TO_REG(results[1]); 
     433                        data->remote_low = temp_to_reg(results[1]); 
    427434                        i2c_smbus_write_byte_data(client, 
    428435                                MAX1619_REG_W_REMOTE_TLOW, data->remote_low); 
     
    441448        else if (operation == SENSORS_PROC_REAL_READ) { 
    442449                max1619_update_client(client); 
    443                 results[0] = TEMP_FROM_REG(data->remote_max); 
    444                 results[1] = TEMP_FROM_REG(data->remote_hyst); 
     450                results[0] = temp_from_reg(data->remote_max); 
     451                results[1] = temp_from_reg(data->remote_hyst); 
    445452                *nrels_mag = 2; 
    446453        } else if (operation == SENSORS_PROC_REAL_WRITE) { 
    447454                if (*nrels_mag >= 1) { 
    448                         data->remote_max = TEMP_TO_REG(results[0]); 
     455                        data->remote_max = temp_to_reg(results[0]); 
    449456                        i2c_smbus_write_byte_data(client, 
    450457                                MAX1619_REG_W_REMOTE_TMAX, data->remote_max); 
    451458                } 
    452459                if (*nrels_mag >= 2) { 
    453                         data->remote_hyst = TEMP_TO_REG(results[1]); 
     460                        data->remote_hyst = temp_to_reg(results[1]); 
    454461                        i2c_smbus_write_byte_data(client, 
    455462                                MAX1619_REG_W_REMOTE_THYST, data->remote_hyst);