summaryrefslogtreecommitdiffstats
path: root/kernel/drivers/input/mouse/elan_i2c_smbus.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/drivers/input/mouse/elan_i2c_smbus.c')
-rw-r--r--kernel/drivers/input/mouse/elan_i2c_smbus.c10
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;
}