Hi Daniel, > Write each object using a single bulk i2c write transfer. > > Signed-off-by: Daniel Kurtz <djkurtz@xxxxxxxxxxxx> > Reviewed-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx> > --- > drivers/input/touchscreen/atmel_mxt_ts.c | 28 ++++++++++++++-------------- > 1 files changed, 14 insertions(+), 14 deletions(-) > > diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c > index a865967..3abc5b0 100644 > --- a/drivers/input/touchscreen/atmel_mxt_ts.c > +++ b/drivers/input/touchscreen/atmel_mxt_ts.c > @@ -628,33 +628,33 @@ end: > static int mxt_check_reg_init(struct mxt_data *data) > { > const struct mxt_platform_data *pdata = data->pdata; > - struct mxt_object *object; > struct device *dev = &data->client->dev; > - int index = 0; > - int i, j, config_offset, config_size; > + int i, offset; > + int ret; > > if (!pdata->config) { > dev_dbg(dev, "No cfg data defined, skipping reg init\n"); > return 0; > } > > - for (i = 0; i < data->info.object_num; i++) { > - object = data->object_table + i; > + for (offset = 0, i = 0; i < data->info.object_num; i++) { > + struct mxt_object *object = &data->object_table[i]; > + size_t config_size; > > if (!mxt_object_writable(object->type)) > continue; > > config_size = object->size * object->instances; > - for (j = 0; j < config_size; j++) { > - config_offset = index + j; > - 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]); > + if (offset + config_size > pdata->config_length) { > + dev_err(dev, "Not enough config data!\n"); > + return -EINVAL; > } > - index += config_size; > + > + ret = mxt_write_reg(data->client, object->start_address, > + config_size, &pdata->config[offset]); How big is config_size? Removing the need for a stack copy here would be better, see patch 11. > + if (ret) > + return ret; > + offset += config_size; > } > > return 0; > -- > 1.7.7.3 > Thanks, Henrik -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html