Changeset 4417
- Timestamp:
- 05/28/07 10:57:41 (1 year ago)
- Files:
-
- lm-sensors/trunk/CHANGES (modified) (2 diffs)
- lm-sensors/trunk/kernel/include/i2c-dev.h (modified) (3 diffs)
- lm-sensors/trunk/prog/dump/i2cdump.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
lm-sensors/trunk/CHANGES
r4414 r4417 3 3 4 4 SVN HEAD 5 File i2c-dev.h: Support I2C block reads with specified length 5 6 File sensors.conf.eg: Add a dme1737 section 6 7 File lm_sensors.sysconfig: Delete, now generated by sensors-detect … … 10 11 Man page sensors.conf.5: Update the chip statement section 11 12 Module i2c-nforce2: Add nForce MCP61, MCP65 support (2.6 backport) 13 Program i2cdump: Use the new I2C block read function 12 14 Program isadump: Detect when address bit 7 is a busy flag 13 15 Fix Super-I/O exit sequence for Winbond/Fintek chips lm-sensors/trunk/kernel/include/i2c-dev.h
r3177 r4417 107 107 #define I2C_SMBUS_PROC_CALL 4 108 108 #define I2C_SMBUS_BLOCK_DATA 5 109 #define I2C_SMBUS_I2C_BLOCK_ DATA6109 #define I2C_SMBUS_I2C_BLOCK_BROKEN 6 110 110 #define I2C_SMBUS_BLOCK_PROC_CALL 7 /* SMBus 2.0 */ 111 #define I2C_SMBUS_I2C_BLOCK_DATA 8 111 112 112 113 … … 272 273 273 274 /* Returns the number of read bytes */ 275 /* Until kernel 2.6.22, the length is hardcoded to 32 bytes. If you 276 ask for less than 32 bytes, your code will only work with kernels 277 2.6.23 and later. */ 274 278 static inline __s32 i2c_smbus_read_i2c_block_data(int file, __u8 command, 275 __u8 *values) 276 { 277 union i2c_smbus_data data; 278 int i; 279 __u8 length, __u8 *values) 280 { 281 union i2c_smbus_data data; 282 int i; 283 284 if (length > 32) 285 length = 32; 286 data.block[0] = length; 279 287 if (i2c_smbus_access(file,I2C_SMBUS_READ,command, 288 length == 32 ? I2C_SMBUS_I2C_BLOCK_BROKEN : 280 289 I2C_SMBUS_I2C_BLOCK_DATA,&data)) 281 290 return -1; … … 298 307 data.block[0] = length; 299 308 return i2c_smbus_access(file,I2C_SMBUS_WRITE,command, 300 I2C_SMBUS_I2C_BLOCK_ DATA, &data);309 I2C_SMBUS_I2C_BLOCK_BROKEN, &data); 301 310 } 302 311 lm-sensors/trunk/prog/dump/i2cdump.c
r4335 r4417 317 317 for (res = 0; res < 256; res += i) { 318 318 i = i2c_smbus_read_i2c_block_data(file, 319 res, cblock + res);319 res, 32, cblock + res); 320 320 if (i <= 0) 321 321 break;
