Lines Matching refs:data

95 static void surface3_spi_process_touch(struct surface3_ts_data *ts_data, u8 *data)
99 timestamp = get_unaligned_le16(&data[15]);
104 finger = (struct surface3_ts_data_finger *)&data[17 +
160 static void surface3_spi_process_pen(struct surface3_ts_data *ts_data, u8 *data)
164 pen = (struct surface3_ts_data_pen *)&data[15];
175 u8 *data = ts_data->rd_buf;
177 if (memcmp(header, data, sizeof(header)))
180 __func__, (int)sizeof(header), data);
182 switch (data[9]) {
184 surface3_spi_process_touch(ts_data, data);
187 surface3_spi_process_pen(ts_data, data);
192 __func__, data[9]);
199 struct surface3_ts_data *data = dev_id;
201 if (surface3_spi_read(data))
204 dev_dbg(&data->spi->dev, "%s received -> %*ph\n",
205 __func__, SURFACE3_PACKET_SIZE, data->rd_buf);
206 surface3_spi_process(data);
211 static void surface3_spi_power(struct surface3_ts_data *data, bool on)
213 gpiod_set_value(data->gpiod_rst[0], on);
214 gpiod_set_value(data->gpiod_rst[1], on);
224 static int surface3_spi_get_gpio_config(struct surface3_ts_data *data)
231 dev = &data->spi->dev;
246 data->gpiod_rst[i] = gpiod;
252 static int surface3_spi_create_touch_input(struct surface3_ts_data *data)
257 input = devm_input_allocate_device(&data->spi->dev);
261 data->input_dev = input;
280 dev_err(&data->spi->dev,
288 static int surface3_spi_create_pen_input(struct surface3_ts_data *data)
293 input = devm_input_allocate_device(&data->spi->dev);
297 data->pen_input_dev = input;
298 data->pen_tool = BTN_TOOL_PEN;
321 dev_err(&data->spi->dev,
331 struct surface3_ts_data *data;
341 data = devm_kzalloc(&spi->dev, sizeof(*data), GFP_KERNEL);
342 if (!data)
345 data->spi = spi;
346 spi_set_drvdata(spi, data);
348 error = surface3_spi_get_gpio_config(data);
352 surface3_spi_power(data, true);
353 surface3_spi_power(data, false);
354 surface3_spi_power(data, true);
356 error = surface3_spi_create_touch_input(data);
360 error = surface3_spi_create_pen_input(data);
367 "Surface3-irq", data);
377 struct surface3_ts_data *data = spi_get_drvdata(spi);
379 disable_irq(data->spi->irq);
381 surface3_spi_power(data, false);
389 struct surface3_ts_data *data = spi_get_drvdata(spi);
391 surface3_spi_power(data, true);
393 enable_irq(data->spi->irq);