From 2edf1e036b2d7342490f00439f09e2fc7da872e0 Mon Sep 17 00:00:00 2001 From: Shantanu Jain Date: Fri, 31 Mar 2017 03:52:56 -0700 Subject: Revert "input: synaptics_dsx: remove array declaration in write function" This reverts commit bcde95e2e697 ("input: synaptics_dsx: remove array declaration in write function"). Change-Id: I49d05213a473d35bd6ab7fb4149f69ec56f18a8b Signed-off-by: Shantanu Jain --- .../touchscreen/synaptics_dsx/synaptics_dsx_core.c | 8 +------- .../touchscreen/synaptics_dsx/synaptics_dsx_core.h | 3 --- .../touchscreen/synaptics_dsx/synaptics_dsx_i2c.c | 23 ++++------------------ 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) { -- cgit v1.2.3