diff options
-rw-r--r-- | drivers/input/touchscreen/elants_i2c.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/input/touchscreen/elants_i2c.c b/drivers/input/touchscreen/elants_i2c.c index d21ca39b0fdb..f2cb23121833 100644 --- a/drivers/input/touchscreen/elants_i2c.c +++ b/drivers/input/touchscreen/elants_i2c.c | |||
@@ -147,10 +147,11 @@ struct elants_data { | |||
147 | u8 cmd_resp[HEADER_SIZE]; | 147 | u8 cmd_resp[HEADER_SIZE]; |
148 | struct completion cmd_done; | 148 | struct completion cmd_done; |
149 | 149 | ||
150 | u8 buf[MAX_PACKET_SIZE]; | ||
151 | |||
152 | bool wake_irq_enabled; | 150 | bool wake_irq_enabled; |
153 | bool keep_power_in_suspend; | 151 | bool keep_power_in_suspend; |
152 | |||
153 | /* Must be last to be used for DMA operations */ | ||
154 | u8 buf[MAX_PACKET_SIZE] ____cacheline_aligned; | ||
154 | }; | 155 | }; |
155 | 156 | ||
156 | static int elants_i2c_send(struct i2c_client *client, | 157 | static int elants_i2c_send(struct i2c_client *client, |
@@ -863,7 +864,7 @@ static irqreturn_t elants_i2c_irq(int irq, void *_dev) | |||
863 | int i; | 864 | int i; |
864 | int len; | 865 | int len; |
865 | 866 | ||
866 | len = i2c_master_recv(client, ts->buf, sizeof(ts->buf)); | 867 | len = i2c_master_recv_dmasafe(client, ts->buf, sizeof(ts->buf)); |
867 | if (len < 0) { | 868 | if (len < 0) { |
868 | dev_err(&client->dev, "%s: failed to read data: %d\n", | 869 | dev_err(&client->dev, "%s: failed to read data: %d\n", |
869 | __func__, len); | 870 | __func__, len); |