aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/input/touchscreen/atmel_mxt_ts.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/input/touchscreen/atmel_mxt_ts.c')
-rw-r--r--drivers/input/touchscreen/atmel_mxt_ts.c33
1 files changed, 11 insertions, 22 deletions
diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c
index 19d4ea65ea01..42e645062c20 100644
--- a/drivers/input/touchscreen/atmel_mxt_ts.c
+++ b/drivers/input/touchscreen/atmel_mxt_ts.c
@@ -236,7 +236,6 @@ struct mxt_object {
236struct mxt_message { 236struct mxt_message {
237 u8 reportid; 237 u8 reportid;
238 u8 message[7]; 238 u8 message[7];
239 u8 checksum;
240}; 239};
241 240
242struct mxt_finger { 241struct mxt_finger {
@@ -326,17 +325,12 @@ static bool mxt_object_writable(unsigned int type)
326} 325}
327 326
328static void mxt_dump_message(struct device *dev, 327static void mxt_dump_message(struct device *dev,
329 struct mxt_message *message) 328 struct mxt_message *message)
330{ 329{
331 dev_dbg(dev, "reportid:\t0x%x\n", message->reportid); 330 dev_dbg(dev, "reportid: %u\tmessage: %02x %02x %02x %02x %02x %02x %02x\n",
332 dev_dbg(dev, "message1:\t0x%x\n", message->message[0]); 331 message->reportid, message->message[0], message->message[1],
333 dev_dbg(dev, "message2:\t0x%x\n", message->message[1]); 332 message->message[2], message->message[3], message->message[4],
334 dev_dbg(dev, "message3:\t0x%x\n", message->message[2]); 333 message->message[5], message->message[6]);
335 dev_dbg(dev, "message4:\t0x%x\n", message->message[3]);
336 dev_dbg(dev, "message5:\t0x%x\n", message->message[4]);
337 dev_dbg(dev, "message6:\t0x%x\n", message->message[5]);
338 dev_dbg(dev, "message7:\t0x%x\n", message->message[6]);
339 dev_dbg(dev, "checksum:\t0x%x\n", message->checksum);
340} 334}
341 335
342static int mxt_check_bootloader(struct i2c_client *client, 336static int mxt_check_bootloader(struct i2c_client *client,
@@ -506,7 +500,7 @@ static int mxt_write_object(struct mxt_data *data,
506 u16 reg; 500 u16 reg;
507 501
508 object = mxt_get_object(data, type); 502 object = mxt_get_object(data, type);
509 if (!object) 503 if (!object || offset >= object->size + 1)
510 return -EINVAL; 504 return -EINVAL;
511 505
512 reg = object->start_address; 506 reg = object->start_address;
@@ -1049,8 +1043,8 @@ static ssize_t mxt_update_fw_store(struct device *dev,
1049 return count; 1043 return count;
1050} 1044}
1051 1045
1052static DEVICE_ATTR(object, 0444, mxt_object_show, NULL); 1046static DEVICE_ATTR(object, S_IRUGO, mxt_object_show, NULL);
1053static DEVICE_ATTR(update_fw, 0664, NULL, mxt_update_fw_store); 1047static DEVICE_ATTR(update_fw, S_IWUSR, NULL, mxt_update_fw_store);
1054 1048
1055static struct attribute *mxt_attrs[] = { 1049static struct attribute *mxt_attrs[] = {
1056 &dev_attr_object.attr, 1050 &dev_attr_object.attr,
@@ -1201,7 +1195,7 @@ static int __devexit mxt_remove(struct i2c_client *client)
1201 return 0; 1195 return 0;
1202} 1196}
1203 1197
1204#ifdef CONFIG_PM 1198#ifdef CONFIG_PM_SLEEP
1205static int mxt_suspend(struct device *dev) 1199static int mxt_suspend(struct device *dev)
1206{ 1200{
1207 struct i2c_client *client = to_i2c_client(dev); 1201 struct i2c_client *client = to_i2c_client(dev);
@@ -1239,13 +1233,10 @@ static int mxt_resume(struct device *dev)
1239 1233
1240 return 0; 1234 return 0;
1241} 1235}
1242
1243static const struct dev_pm_ops mxt_pm_ops = {
1244 .suspend = mxt_suspend,
1245 .resume = mxt_resume,
1246};
1247#endif 1236#endif
1248 1237
1238static SIMPLE_DEV_PM_OPS(mxt_pm_ops, mxt_suspend, mxt_resume);
1239
1249static const struct i2c_device_id mxt_id[] = { 1240static const struct i2c_device_id mxt_id[] = {
1250 { "qt602240_ts", 0 }, 1241 { "qt602240_ts", 0 },
1251 { "atmel_mxt_ts", 0 }, 1242 { "atmel_mxt_ts", 0 },
@@ -1258,9 +1249,7 @@ static struct i2c_driver mxt_driver = {
1258 .driver = { 1249 .driver = {
1259 .name = "atmel_mxt_ts", 1250 .name = "atmel_mxt_ts",
1260 .owner = THIS_MODULE, 1251 .owner = THIS_MODULE,
1261#ifdef CONFIG_PM
1262 .pm = &mxt_pm_ops, 1252 .pm = &mxt_pm_ops,
1263#endif
1264 }, 1253 },
1265 .probe = mxt_probe, 1254 .probe = mxt_probe,
1266 .remove = __devexit_p(mxt_remove), 1255 .remove = __devexit_p(mxt_remove),