diff options
Diffstat (limited to 'kernel/drivers/input/mouse/elan_i2c_smbus.c')
-rw-r--r-- | kernel/drivers/input/mouse/elan_i2c_smbus.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/kernel/drivers/input/mouse/elan_i2c_smbus.c b/kernel/drivers/input/mouse/elan_i2c_smbus.c index 30ab80dbc..cb6aecbc1 100644 --- a/kernel/drivers/input/mouse/elan_i2c_smbus.c +++ b/kernel/drivers/input/mouse/elan_i2c_smbus.c @@ -165,7 +165,8 @@ static int elan_smbus_get_version(struct i2c_client *client, return 0; } -static int elan_smbus_get_sm_version(struct i2c_client *client, u8 *version) +static int elan_smbus_get_sm_version(struct i2c_client *client, + u8 *ic_type, u8 *version) { int error; u8 val[3]; @@ -177,11 +178,12 @@ static int elan_smbus_get_sm_version(struct i2c_client *client, u8 *version) return error; } - *version = val[0]; /* XXX Why 0 and not 2 as in IAP/FW versions? */ + *version = val[0]; + *ic_type = val[1]; return 0; } -static int elan_smbus_get_product_id(struct i2c_client *client, u8 *id) +static int elan_smbus_get_product_id(struct i2c_client *client, u16 *id) { int error; u8 val[3]; @@ -193,7 +195,7 @@ static int elan_smbus_get_product_id(struct i2c_client *client, u8 *id) return error; } - *id = val[1]; + *id = be16_to_cpup((__be16 *)val); return 0; } |