i2c: i2c-i801 PEC code cleanups
PATCH 1/1 i2c: i2c-i801 PEC code cleanups
[PATCH] i2c: i2c-i801 PEC code cleanups
The tests leading to the use of hardware PEC in the i2c-i801 driver can be simplified.
Signed-off-by Jean Delvare <[email protected]>
Signed-off-by Greg Kroah-Hartman <[email protected]>
---
commit e8aac4a9b417643dd9739b48473790a09b8b6cbe
tree 70934ffa1a7327c62d13f09d0e1d8b74277b0a62
parent 585b3160f8212e58325bc1c0292c2ec01ac5db84
author Jean Delvare <[email protected]> Wed, 26 Oct 2005 21:34:42 +0200 committer Greg Kroah-Hartman <[email protected]> Fri, 28 Oct 2005 14:02:14 -0700
drivers/i2c/busses/i2c-i801.c | 24 ++++++++++-------------- 1 files changed, 10 insertions(+), 14 deletions(-)
drivers/i2c/busses/i2c-i801.c +10 -14
@@ -388,7 +388,7 @@ static int i801_block_transaction(union goto END; } -if (hwpec && command =I2C_SMBUS_BLOCK_DATA ) { +if (hwpec) {/* wait for INTR bit as advised by Intel */ timeout =0 ; do {
@@ -416,12 +416,13 @@ static s32 i801_access(struct i2c_adapte unsigned short flags, char read_write, u8 command, int size, union i2c_smbus_data * data) { - int hwpec = 0; + int hwpec;int block =0 ;int ret, xact =0 ; -if (isich4) - hwpec = (flags &I2C_CLIENT_PEC ) !=0 ; + hwpec = isich4 && (flags &I2C_CLIENT_PEC ) + && size !=I2C_SMBUS_QUICK + && size !=I2C_SMBUS_I2C_BLOCK_DATA ;switch (size) {case I2C_SMBUS_QUICK :
@@ -467,11 +468,9 @@ static s32 i801_access(struct i2c_adaptereturn -1 ; } -if (isich4 && hwpec) { -if (size !=I2C_SMBUS_QUICK && - size !=I2C_SMBUS_I2C_BLOCK_DATA ) -outb_p (1 ,SMBAUXCTL );/* enable HW PEC */ - } +if (hwpec) +outb_p (1 ,SMBAUXCTL );/* enable hardware PEC */ +if (block) ret =i801_block_transaction (data, read_write, size, hwpec);else {
@@ -479,11 +478,8 @@ static s32 i801_access(struct i2c_adapte ret =i801_transaction (); } -if (isich4 && hwpec) { -if (size !=I2C_SMBUS_QUICK && - size !=I2C_SMBUS_I2C_BLOCK_DATA ) -outb_p (0 ,SMBAUXCTL ); - } +if (hwpec) +outb_p (0 ,SMBAUXCTL );/* disable hardware PEC */ if (block)return ret;