summaryrefslogtreecommitdiff
path: root/drivers/input/touchscreen
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2017-04-03 06:24:44 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2017-04-03 06:24:44 -0700
commitf87be11d388cccb80e82076112a2a8cb31703c1e (patch)
tree79b9c42fd6f77271b6296c7992a85d5b6e639047 /drivers/input/touchscreen
parent787f4b3b7d9619cae049c0bbabae447474b7ad24 (diff)
parent2edf1e036b2d7342490f00439f09e2fc7da872e0 (diff)
Merge "Revert "input: synaptics_dsx: remove array declaration in write function""
Diffstat (limited to 'drivers/input/touchscreen')
-rw-r--r--drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_core.c8
-rw-r--r--drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_core.h3
-rw-r--r--drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_i2c.c23
3 files changed, 5 insertions, 29 deletions
diff --git a/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_core.c b/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_core.c
index 3e85cb5e2ebc..206941708141 100644
--- a/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_core.c
+++ b/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_core.c
@@ -3666,7 +3666,7 @@ static int synaptics_rmi4_probe(struct platform_device *pdev)
return -EINVAL;
}
- rmi4_data = devm_kzalloc(&pdev->dev, sizeof(*rmi4_data), GFP_KERNEL);
+ rmi4_data = kzalloc(sizeof(*rmi4_data), GFP_KERNEL);
if (!rmi4_data) {
dev_err(&pdev->dev,
"%s: Failed to alloc mem for rmi4_data\n",
@@ -3684,12 +3684,6 @@ static int synaptics_rmi4_probe(struct platform_device *pdev)
rmi4_data->fingers_on_2d = false;
rmi4_data->update_coords = true;
- rmi4_data->write_buf = devm_kzalloc(&pdev->dev, I2C_WRITE_BUF_MAX_LEN,
- GFP_KERNEL);
- if (!rmi4_data->write_buf)
- return -ENOMEM;
- rmi4_data->write_buf_len = I2C_WRITE_BUF_MAX_LEN;
-
rmi4_data->irq_enable = synaptics_rmi4_irq_enable;
rmi4_data->reset_device = synaptics_rmi4_reset_device;
diff --git a/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_core.h b/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_core.h
index a642092e2f63..7d7e045d7917 100644
--- a/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_core.h
+++ b/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_core.h
@@ -101,7 +101,6 @@
#define PINCTRL_STATE_RELEASE "pmx_ts_release"
#define SYNA_FW_NAME_MAX_LEN 50
-#define I2C_WRITE_BUF_MAX_LEN 32
enum exp_fn {
RMI_DEV = 0,
@@ -278,8 +277,6 @@ struct synaptics_rmi4_data {
unsigned char no_sleep_setting;
unsigned char intr_mask[MAX_INTR_REGISTERS];
unsigned char *button_txrx_mapping;
- unsigned char *write_buf;
- unsigned short write_buf_len;
unsigned short num_of_intr_regs;
unsigned short f01_query_base_addr;
unsigned short f01_cmd_base_addr;
diff --git a/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_i2c.c b/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_i2c.c
index 0be7e0bc9045..0b3fbaf9f462 100644
--- a/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_i2c.c
+++ b/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_i2c.c
@@ -134,33 +134,18 @@ static int synaptics_rmi4_i2c_write(struct synaptics_rmi4_data *rmi4_data,
{
int retval;
unsigned char retry;
+ unsigned char buf[length + 1];
struct i2c_client *i2c = to_i2c_client(rmi4_data->pdev->dev.parent);
struct i2c_msg msg[] = {
{
.addr = i2c->addr,
.flags = 0,
.len = length + 1,
+ .buf = buf,
}
};
mutex_lock(&rmi4_data->rmi4_io_ctrl_mutex);
- /*
- * Reassign memory for write_buf in case length is greater than 32 bytes
- */
- if (rmi4_data->write_buf_len < length + 1) {
- devm_kfree(rmi4_data->pdev->dev.parent, rmi4_data->write_buf);
- rmi4_data->write_buf = devm_kzalloc(rmi4_data->pdev->dev.parent,
- length + 1, GFP_KERNEL);
- if (!rmi4_data->write_buf) {
- rmi4_data->write_buf_len = 0;
- retval = -ENOMEM;
- goto exit;
- }
- rmi4_data->write_buf_len = length + 1;
- }
-
- /* Assign the write_buf of driver structure to i2c_msg buf */
- msg[0].buf = rmi4_data->write_buf;
retval = synaptics_rmi4_i2c_set_page(rmi4_data, addr);
if (retval != PAGE_SELECT_LEN) {
@@ -168,8 +153,8 @@ static int synaptics_rmi4_i2c_write(struct synaptics_rmi4_data *rmi4_data,
goto exit;
}
- rmi4_data->write_buf[0] = addr & MASK_8BIT;
- memcpy(&rmi4_data->write_buf[1], &data[0], length);
+ buf[0] = addr & MASK_8BIT;
+ memcpy(&buf[1], &data[0], length);
for (retry = 0; retry < SYN_I2C_RETRY_TIMES; retry++) {
if (i2c_transfer(i2c->adapter, msg, 1) == 1) {