mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-30 01:56:42 +07:00
Input: atmel_mxt_ts - optimize writing of object table entries
Write each object using a single bulk i2c write transfer. Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
This commit is contained in:
parent
9638ab7c9c
commit
cf94bc09c8
@ -655,7 +655,8 @@ static int mxt_check_reg_init(struct mxt_data *data)
|
|||||||
struct mxt_object *object;
|
struct mxt_object *object;
|
||||||
struct device *dev = &data->client->dev;
|
struct device *dev = &data->client->dev;
|
||||||
int index = 0;
|
int index = 0;
|
||||||
int i, j, config_offset;
|
int i, size;
|
||||||
|
int ret;
|
||||||
|
|
||||||
if (!pdata->config) {
|
if (!pdata->config) {
|
||||||
dev_dbg(dev, "No cfg data defined, skipping reg init\n");
|
dev_dbg(dev, "No cfg data defined, skipping reg init\n");
|
||||||
@ -668,18 +669,17 @@ static int mxt_check_reg_init(struct mxt_data *data)
|
|||||||
if (!mxt_object_writable(object->type))
|
if (!mxt_object_writable(object->type))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
for (j = 0;
|
size = (object->size + 1) * (object->instances + 1);
|
||||||
j < (object->size + 1) * (object->instances + 1);
|
if (index + size > pdata->config_length) {
|
||||||
j++) {
|
dev_err(dev, "Not enough config data!\n");
|
||||||
config_offset = index + j;
|
return -EINVAL;
|
||||||
if (config_offset > pdata->config_length) {
|
|
||||||
dev_err(dev, "Not enough config data!\n");
|
|
||||||
return -EINVAL;
|
|
||||||
}
|
|
||||||
mxt_write_object(data, object->type, j,
|
|
||||||
pdata->config[config_offset]);
|
|
||||||
}
|
}
|
||||||
index += (object->size + 1) * (object->instances + 1);
|
|
||||||
|
ret = __mxt_write_reg(data->client, object->start_address,
|
||||||
|
size, &pdata->config[index]);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
index += size;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user