mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-16 16:54:20 +08:00
[PATCH] i2c: SMBus PEC support rewrite, 3 of 3
The new SMBus PEC implementation doesn't support PEC emulation on non-PEC non-I2C SMBus masters, so we can drop all related code. Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
421ef47be2
commit
585b3160f8
@ -253,13 +253,6 @@ static s32 amd8111_access(struct i2c_adapter * adap, u16 addr, unsigned short fl
|
||||
read_write = I2C_SMBUS_READ;
|
||||
break;
|
||||
|
||||
case I2C_SMBUS_WORD_DATA_PEC:
|
||||
case I2C_SMBUS_BLOCK_DATA_PEC:
|
||||
case I2C_SMBUS_PROC_CALL_PEC:
|
||||
case I2C_SMBUS_BLOCK_PROC_CALL_PEC:
|
||||
dev_warn(&adap->dev, "Unexpected software PEC transaction %d\n.", size);
|
||||
return -1;
|
||||
|
||||
default:
|
||||
dev_warn(&adap->dev, "Unsupported transaction %d\n", size);
|
||||
return -1;
|
||||
|
@ -102,8 +102,8 @@ MODULE_PARM_DESC(force_addr,
|
||||
"EXTREMELY DANGEROUS!");
|
||||
|
||||
static int i801_transaction(void);
|
||||
static int i801_block_transaction(union i2c_smbus_data *data,
|
||||
char read_write, int command);
|
||||
static int i801_block_transaction(union i2c_smbus_data *data, char read_write,
|
||||
int command, int hwpec);
|
||||
|
||||
static unsigned short i801_smba;
|
||||
static struct pci_driver i801_driver;
|
||||
@ -249,7 +249,7 @@ static int i801_transaction(void)
|
||||
|
||||
/* All-inclusive block transaction function */
|
||||
static int i801_block_transaction(union i2c_smbus_data *data, char read_write,
|
||||
int command)
|
||||
int command, int hwpec)
|
||||
{
|
||||
int i, len;
|
||||
int smbcmd;
|
||||
@ -388,7 +388,7 @@ static int i801_block_transaction(union i2c_smbus_data *data, char read_write,
|
||||
goto END;
|
||||
}
|
||||
|
||||
if(isich4 && command == I2C_SMBUS_BLOCK_DATA_PEC) {
|
||||
if (hwpec && command == I2C_SMBUS_BLOCK_DATA) {
|
||||
/* wait for INTR bit as advised by Intel */
|
||||
timeout = 0;
|
||||
do {
|
||||
@ -456,9 +456,6 @@ static s32 i801_access(struct i2c_adapter * adap, u16 addr,
|
||||
break;
|
||||
case I2C_SMBUS_BLOCK_DATA:
|
||||
case I2C_SMBUS_I2C_BLOCK_DATA:
|
||||
case I2C_SMBUS_BLOCK_DATA_PEC:
|
||||
if(hwpec && size == I2C_SMBUS_BLOCK_DATA)
|
||||
size = I2C_SMBUS_BLOCK_DATA_PEC;
|
||||
outb_p(((addr & 0x7f) << 1) | (read_write & 0x01),
|
||||
SMBHSTADD);
|
||||
outb_p(command, SMBHSTCMD);
|
||||
@ -476,7 +473,7 @@ static s32 i801_access(struct i2c_adapter * adap, u16 addr,
|
||||
outb_p(1, SMBAUXCTL); /* enable HW PEC */
|
||||
}
|
||||
if(block)
|
||||
ret = i801_block_transaction(data, read_write, size);
|
||||
ret = i801_block_transaction(data, read_write, size, hwpec);
|
||||
else {
|
||||
outb_p(xact | ENABLE_INT9, SMBHSTCNT);
|
||||
ret = i801_transaction();
|
||||
|
@ -188,13 +188,6 @@ static s32 nforce2_access(struct i2c_adapter * adap, u16 addr,
|
||||
dev_err(&adap->dev, "I2C_SMBUS_BLOCK_PROC_CALL not supported!\n");
|
||||
return -1;
|
||||
|
||||
case I2C_SMBUS_WORD_DATA_PEC:
|
||||
case I2C_SMBUS_BLOCK_DATA_PEC:
|
||||
case I2C_SMBUS_PROC_CALL_PEC:
|
||||
case I2C_SMBUS_BLOCK_PROC_CALL_PEC:
|
||||
dev_err(&adap->dev, "Unexpected software PEC transaction %d\n.", size);
|
||||
return -1;
|
||||
|
||||
default:
|
||||
dev_err(&adap->dev, "Unsupported transaction %d\n", size);
|
||||
return -1;
|
||||
|
@ -451,10 +451,6 @@ union i2c_smbus_data {
|
||||
#define I2C_SMBUS_BLOCK_DATA 5
|
||||
#define I2C_SMBUS_I2C_BLOCK_DATA 6
|
||||
#define I2C_SMBUS_BLOCK_PROC_CALL 7 /* SMBus 2.0 */
|
||||
#define I2C_SMBUS_BLOCK_DATA_PEC 8 /* SMBus 2.0 */
|
||||
#define I2C_SMBUS_PROC_CALL_PEC 9 /* SMBus 2.0 */
|
||||
#define I2C_SMBUS_BLOCK_PROC_CALL_PEC 10 /* SMBus 2.0 */
|
||||
#define I2C_SMBUS_WORD_DATA_PEC 11 /* SMBus 2.0 */
|
||||
|
||||
|
||||
/* ----- commands for the ioctl like i2c_command call:
|
||||
|
Loading…
Reference in New Issue
Block a user