Symbol: cyapa
drivers/input/mouse/cyapa.c
1001
error = mutex_lock_interruptible(&cyapa->state_sync_lock);
drivers/input/mouse/cyapa.c
1004
size = sysfs_emit(buf, "%s\n", cyapa->product_id);
drivers/input/mouse/cyapa.c
1005
mutex_unlock(&cyapa->state_sync_lock);
drivers/input/mouse/cyapa.c
1009
static int cyapa_firmware(struct cyapa *cyapa, const char *fw_name)
drivers/input/mouse/cyapa.c
1011
struct device *dev = &cyapa->client->dev;
drivers/input/mouse/cyapa.c
1022
error = cyapa->ops->check_fw(cyapa, fw);
drivers/input/mouse/cyapa.c
1037
cyapa_enable_irq_for_cmd(cyapa);
drivers/input/mouse/cyapa.c
1039
error = cyapa->ops->bl_enter(cyapa);
drivers/input/mouse/cyapa.c
1045
error = cyapa->ops->bl_activate(cyapa);
drivers/input/mouse/cyapa.c
1051
error = cyapa->ops->bl_initiate(cyapa, fw);
drivers/input/mouse/cyapa.c
1057
error = cyapa->ops->update_fw(cyapa, fw);
drivers/input/mouse/cyapa.c
1064
cyapa_disable_irq_for_cmd(cyapa);
drivers/input/mouse/cyapa.c
1076
struct cyapa *cyapa = dev_get_drvdata(dev);
drivers/input/mouse/cyapa.c
1091
if (cyapa->input) {
drivers/input/mouse/cyapa.c
1097
input_unregister_device(cyapa->input);
drivers/input/mouse/cyapa.c
1098
cyapa->input = NULL;
drivers/input/mouse/cyapa.c
1101
error = mutex_lock_interruptible(&cyapa->state_sync_lock);
drivers/input/mouse/cyapa.c
1107
cyapa_reinitialize(cyapa);
drivers/input/mouse/cyapa.c
1111
error = cyapa_firmware(cyapa, fw_name);
drivers/input/mouse/cyapa.c
1121
ret = cyapa_reinitialize(cyapa);
drivers/input/mouse/cyapa.c
1127
mutex_unlock(&cyapa->state_sync_lock);
drivers/input/mouse/cyapa.c
1136
struct cyapa *cyapa = dev_get_drvdata(dev);
drivers/input/mouse/cyapa.c
1139
error = mutex_lock_interruptible(&cyapa->state_sync_lock);
drivers/input/mouse/cyapa.c
1143
if (cyapa->operational) {
drivers/input/mouse/cyapa.c
1144
cyapa_enable_irq_for_cmd(cyapa);
drivers/input/mouse/cyapa.c
1145
error = cyapa->ops->calibrate_store(dev, attr, buf, count);
drivers/input/mouse/cyapa.c
1146
cyapa_disable_irq_for_cmd(cyapa);
drivers/input/mouse/cyapa.c
1151
mutex_unlock(&cyapa->state_sync_lock);
drivers/input/mouse/cyapa.c
1158
struct cyapa *cyapa = dev_get_drvdata(dev);
drivers/input/mouse/cyapa.c
1161
error = mutex_lock_interruptible(&cyapa->state_sync_lock);
drivers/input/mouse/cyapa.c
1165
if (cyapa->operational) {
drivers/input/mouse/cyapa.c
1166
cyapa_enable_irq_for_cmd(cyapa);
drivers/input/mouse/cyapa.c
1167
error = cyapa->ops->show_baseline(dev, attr, buf);
drivers/input/mouse/cyapa.c
1168
cyapa_disable_irq_for_cmd(cyapa);
drivers/input/mouse/cyapa.c
1173
mutex_unlock(&cyapa->state_sync_lock);
drivers/input/mouse/cyapa.c
1177
static char *cyapa_state_to_string(struct cyapa *cyapa)
drivers/input/mouse/cyapa.c
1179
switch (cyapa->state) {
drivers/input/mouse/cyapa.c
1201
struct cyapa *cyapa = dev_get_drvdata(dev);
drivers/input/mouse/cyapa.c
1205
error = mutex_lock_interruptible(&cyapa->state_sync_lock);
drivers/input/mouse/cyapa.c
1210
cyapa->gen, cyapa_state_to_string(cyapa));
drivers/input/mouse/cyapa.c
1212
mutex_unlock(&cyapa->state_sync_lock);
drivers/input/mouse/cyapa.c
1232
ATTRIBUTE_GROUPS(cyapa);
drivers/input/mouse/cyapa.c
1236
struct cyapa *cyapa = data;
drivers/input/mouse/cyapa.c
1238
regulator_disable(cyapa->vcc);
drivers/input/mouse/cyapa.c
1244
struct cyapa *cyapa;
drivers/input/mouse/cyapa.c
1260
cyapa = devm_kzalloc(dev, sizeof(struct cyapa), GFP_KERNEL);
drivers/input/mouse/cyapa.c
1261
if (!cyapa)
drivers/input/mouse/cyapa.c
1266
cyapa->smbus = true;
drivers/input/mouse/cyapa.c
1268
cyapa->client = client;
drivers/input/mouse/cyapa.c
1269
i2c_set_clientdata(client, cyapa);
drivers/input/mouse/cyapa.c
1270
sprintf(cyapa->phys, "i2c-%d-%04x/input0", client->adapter->nr,
drivers/input/mouse/cyapa.c
1273
cyapa->vcc = devm_regulator_get(dev, "vcc");
drivers/input/mouse/cyapa.c
1274
if (IS_ERR(cyapa->vcc)) {
drivers/input/mouse/cyapa.c
1275
error = PTR_ERR(cyapa->vcc);
drivers/input/mouse/cyapa.c
128
static int cyapa_i2c_write(struct cyapa *cyapa, u8 reg,
drivers/input/mouse/cyapa.c
1280
error = regulator_enable(cyapa->vcc);
drivers/input/mouse/cyapa.c
1286
error = devm_add_action_or_reset(dev, cyapa_disable_regulator, cyapa);
drivers/input/mouse/cyapa.c
1293
error = cyapa_initialize(cyapa);
drivers/input/mouse/cyapa.c
1299
error = cyapa_prepare_wakeup_controls(cyapa);
drivers/input/mouse/cyapa.c
1305
error = cyapa_start_runtime(cyapa);
drivers/input/mouse/cyapa.c
131
struct i2c_client *client = cyapa->client;
drivers/input/mouse/cyapa.c
1314
"cyapa", cyapa);
drivers/input/mouse/cyapa.c
1328
if (cyapa->operational) {
drivers/input/mouse/cyapa.c
1329
error = cyapa_create_input_dev(cyapa);
drivers/input/mouse/cyapa.c
1343
struct cyapa *cyapa = i2c_get_clientdata(client);
drivers/input/mouse/cyapa.c
1347
error = mutex_lock_interruptible(&cyapa->input->mutex);
drivers/input/mouse/cyapa.c
1351
error = mutex_lock_interruptible(&cyapa->state_sync_lock);
drivers/input/mouse/cyapa.c
1353
mutex_unlock(&cyapa->input->mutex);
drivers/input/mouse/cyapa.c
1370
if (cyapa->operational) {
drivers/input/mouse/cyapa.c
1371
power_mode = device_may_wakeup(dev) ? cyapa->suspend_power_mode
drivers/input/mouse/cyapa.c
1373
error = cyapa->ops->set_power_mode(cyapa, power_mode,
drivers/input/mouse/cyapa.c
1374
cyapa->suspend_sleep_time, CYAPA_PM_SUSPEND);
drivers/input/mouse/cyapa.c
1384
if (cyapa->dev_pwr_mode != PWR_MODE_OFF)
drivers/input/mouse/cyapa.c
1385
cyapa->ops->set_proximity(cyapa, false);
drivers/input/mouse/cyapa.c
1388
cyapa->irq_wake = (enable_irq_wake(client->irq) == 0);
drivers/input/mouse/cyapa.c
1390
mutex_unlock(&cyapa->state_sync_lock);
drivers/input/mouse/cyapa.c
1391
mutex_unlock(&cyapa->input->mutex);
drivers/input/mouse/cyapa.c
1399
struct cyapa *cyapa = i2c_get_clientdata(client);
drivers/input/mouse/cyapa.c
1402
mutex_lock(&cyapa->input->mutex);
drivers/input/mouse/cyapa.c
1403
mutex_lock(&cyapa->state_sync_lock);
drivers/input/mouse/cyapa.c
1405
if (device_may_wakeup(dev) && cyapa->irq_wake) {
drivers/input/mouse/cyapa.c
1407
cyapa->irq_wake = false;
drivers/input/mouse/cyapa.c
1414
error = cyapa_reinitialize(cyapa);
drivers/input/mouse/cyapa.c
1420
mutex_unlock(&cyapa->state_sync_lock);
drivers/input/mouse/cyapa.c
1421
mutex_unlock(&cyapa->input->mutex);
drivers/input/mouse/cyapa.c
1427
struct cyapa *cyapa = dev_get_drvdata(dev);
drivers/input/mouse/cyapa.c
1430
error = cyapa->ops->set_power_mode(cyapa,
drivers/input/mouse/cyapa.c
1431
cyapa->runtime_suspend_power_mode,
drivers/input/mouse/cyapa.c
1432
cyapa->runtime_suspend_sleep_time,
drivers/input/mouse/cyapa.c
1442
struct cyapa *cyapa = dev_get_drvdata(dev);
drivers/input/mouse/cyapa.c
1445
error = cyapa->ops->set_power_mode(cyapa,
drivers/input/mouse/cyapa.c
164
static int cyapa_get_state(struct cyapa *cyapa)
drivers/input/mouse/cyapa.c
169
bool even_addr = ((cyapa->client->addr & 0x0001) == 0);
drivers/input/mouse/cyapa.c
174
cyapa->state = CYAPA_STATE_NO_DEVICE;
drivers/input/mouse/cyapa.c
182
error = cyapa_i2c_reg_read_block(cyapa, BL_HEAD_OFFSET, BL_STATUS_SIZE,
drivers/input/mouse/cyapa.c
190
if (cyapa->smbus && (error == -ETIMEDOUT || error == -ENXIO)) {
drivers/input/mouse/cyapa.c
192
error = cyapa_read_block(cyapa,
drivers/input/mouse/cyapa.c
204
cyapa->status[REG_OP_STATUS] = status[REG_OP_STATUS];
drivers/input/mouse/cyapa.c
205
cyapa->status[REG_BL_STATUS] = status[REG_BL_STATUS];
drivers/input/mouse/cyapa.c
206
cyapa->status[REG_BL_ERROR] = status[REG_BL_ERROR];
drivers/input/mouse/cyapa.c
208
if (cyapa->gen == CYAPA_GEN_UNKNOWN ||
drivers/input/mouse/cyapa.c
209
cyapa->gen == CYAPA_GEN3) {
drivers/input/mouse/cyapa.c
210
error = cyapa_gen3_ops.state_parse(cyapa,
drivers/input/mouse/cyapa.c
215
if (cyapa->gen == CYAPA_GEN_UNKNOWN ||
drivers/input/mouse/cyapa.c
216
cyapa->gen == CYAPA_GEN6 ||
drivers/input/mouse/cyapa.c
217
cyapa->gen == CYAPA_GEN5) {
drivers/input/mouse/cyapa.c
218
error = cyapa_pip_state_parse(cyapa,
drivers/input/mouse/cyapa.c
224
if ((cyapa->gen == CYAPA_GEN_UNKNOWN ||
drivers/input/mouse/cyapa.c
225
cyapa->gen == CYAPA_GEN5) &&
drivers/input/mouse/cyapa.c
227
error = cyapa_gen5_ops.state_parse(cyapa,
drivers/input/mouse/cyapa.c
240
error = cyapa_i2c_write(cyapa, 0, 2, cmd);
drivers/input/mouse/cyapa.c
246
error = cyapa_i2c_read(cyapa, BL_HEAD_OFFSET,
drivers/input/mouse/cyapa.c
256
if (cyapa->state <= CYAPA_STATE_BL_BUSY)
drivers/input/mouse/cyapa.c
279
int cyapa_poll_state(struct cyapa *cyapa, unsigned int timeout)
drivers/input/mouse/cyapa.c
285
error = cyapa_get_state(cyapa);
drivers/input/mouse/cyapa.c
286
if (!error && cyapa->state > CYAPA_STATE_BL_BUSY)
drivers/input/mouse/cyapa.c
311
static int cyapa_check_is_operational(struct cyapa *cyapa)
drivers/input/mouse/cyapa.c
315
error = cyapa_poll_state(cyapa, 4000);
drivers/input/mouse/cyapa.c
319
switch (cyapa->gen) {
drivers/input/mouse/cyapa.c
321
cyapa->ops = &cyapa_gen6_ops;
drivers/input/mouse/cyapa.c
324
cyapa->ops = &cyapa_gen5_ops;
drivers/input/mouse/cyapa.c
327
cyapa->ops = &cyapa_gen3_ops;
drivers/input/mouse/cyapa.c
333
error = cyapa->ops->operational_check(cyapa);
drivers/input/mouse/cyapa.c
334
if (!error && cyapa_is_operational_mode(cyapa))
drivers/input/mouse/cyapa.c
335
cyapa->operational = true;
drivers/input/mouse/cyapa.c
337
cyapa->operational = false;
drivers/input/mouse/cyapa.c
348
static int cyapa_detect(struct cyapa *cyapa)
drivers/input/mouse/cyapa.c
350
struct device *dev = &cyapa->client->dev;
drivers/input/mouse/cyapa.c
353
error = cyapa_check_is_operational(cyapa);
drivers/input/mouse/cyapa.c
356
cyapa_is_bootloader_mode(cyapa)) {
drivers/input/mouse/cyapa.c
370
struct cyapa *cyapa = input_get_drvdata(input);
drivers/input/mouse/cyapa.c
371
struct i2c_client *client = cyapa->client;
drivers/input/mouse/cyapa.c
375
error = mutex_lock_interruptible(&cyapa->state_sync_lock);
drivers/input/mouse/cyapa.c
379
if (cyapa->operational) {
drivers/input/mouse/cyapa.c
385
error = cyapa->ops->set_power_mode(cyapa,
drivers/input/mouse/cyapa.c
392
error = cyapa_reinitialize(cyapa);
drivers/input/mouse/cyapa.c
393
if (error || !cyapa->operational) {
drivers/input/mouse/cyapa.c
408
mutex_unlock(&cyapa->state_sync_lock);
drivers/input/mouse/cyapa.c
414
struct cyapa *cyapa = input_get_drvdata(input);
drivers/input/mouse/cyapa.c
415
struct i2c_client *client = cyapa->client;
drivers/input/mouse/cyapa.c
416
struct device *dev = &cyapa->client->dev;
drivers/input/mouse/cyapa.c
418
mutex_lock(&cyapa->state_sync_lock);
drivers/input/mouse/cyapa.c
42
static int cyapa_reinitialize(struct cyapa *cyapa);
drivers/input/mouse/cyapa.c
425
if (cyapa->operational)
drivers/input/mouse/cyapa.c
426
cyapa->ops->set_power_mode(cyapa,
drivers/input/mouse/cyapa.c
429
mutex_unlock(&cyapa->state_sync_lock);
drivers/input/mouse/cyapa.c
432
static int cyapa_create_input_dev(struct cyapa *cyapa)
drivers/input/mouse/cyapa.c
434
struct device *dev = &cyapa->client->dev;
drivers/input/mouse/cyapa.c
438
if (!cyapa->physical_size_x || !cyapa->physical_size_y)
drivers/input/mouse/cyapa.c
44
bool cyapa_is_pip_bl_mode(struct cyapa *cyapa)
drivers/input/mouse/cyapa.c
448
input->phys = cyapa->phys;
drivers/input/mouse/cyapa.c
452
input->dev.parent = &cyapa->client->dev;
drivers/input/mouse/cyapa.c
457
input_set_drvdata(input, cyapa);
drivers/input/mouse/cyapa.c
46
if (cyapa->gen == CYAPA_GEN6 && cyapa->state == CYAPA_STATE_GEN6_BL)
drivers/input/mouse/cyapa.c
462
input_set_abs_params(input, ABS_MT_POSITION_X, 0, cyapa->max_abs_x, 0,
drivers/input/mouse/cyapa.c
464
input_set_abs_params(input, ABS_MT_POSITION_Y, 0, cyapa->max_abs_y, 0,
drivers/input/mouse/cyapa.c
466
input_set_abs_params(input, ABS_MT_PRESSURE, 0, cyapa->max_z, 0, 0);
drivers/input/mouse/cyapa.c
467
if (cyapa->gen > CYAPA_GEN3) {
drivers/input/mouse/cyapa.c
484
if (cyapa->gen >= CYAPA_GEN5) {
drivers/input/mouse/cyapa.c
49
if (cyapa->gen == CYAPA_GEN5 && cyapa->state == CYAPA_STATE_GEN5_BL)
drivers/input/mouse/cyapa.c
491
cyapa->max_abs_x / cyapa->physical_size_x);
drivers/input/mouse/cyapa.c
493
cyapa->max_abs_y / cyapa->physical_size_y);
drivers/input/mouse/cyapa.c
495
if (cyapa->btn_capability & CAPABILITY_LEFT_BTN_MASK)
drivers/input/mouse/cyapa.c
497
if (cyapa->btn_capability & CAPABILITY_MIDDLE_BTN_MASK)
drivers/input/mouse/cyapa.c
499
if (cyapa->btn_capability & CAPABILITY_RIGHT_BTN_MASK)
drivers/input/mouse/cyapa.c
502
if (cyapa->btn_capability == CAPABILITY_LEFT_BTN_MASK)
drivers/input/mouse/cyapa.c
520
cyapa->input = input;
drivers/input/mouse/cyapa.c
524
static void cyapa_enable_irq_for_cmd(struct cyapa *cyapa)
drivers/input/mouse/cyapa.c
526
struct input_dev *input = cyapa->input;
drivers/input/mouse/cyapa.c
535
if (!input || cyapa->operational)
drivers/input/mouse/cyapa.c
536
cyapa->ops->set_power_mode(cyapa,
drivers/input/mouse/cyapa.c
539
if (cyapa->gen >= CYAPA_GEN5)
drivers/input/mouse/cyapa.c
540
enable_irq(cyapa->client->irq);
drivers/input/mouse/cyapa.c
544
static void cyapa_disable_irq_for_cmd(struct cyapa *cyapa)
drivers/input/mouse/cyapa.c
546
struct input_dev *input = cyapa->input;
drivers/input/mouse/cyapa.c
549
if (cyapa->gen >= CYAPA_GEN5)
drivers/input/mouse/cyapa.c
55
bool cyapa_is_pip_app_mode(struct cyapa *cyapa)
drivers/input/mouse/cyapa.c
550
disable_irq(cyapa->client->irq);
drivers/input/mouse/cyapa.c
551
if (!input || cyapa->operational)
drivers/input/mouse/cyapa.c
552
cyapa->ops->set_power_mode(cyapa,
drivers/input/mouse/cyapa.c
57
if (cyapa->gen == CYAPA_GEN6 && cyapa->state == CYAPA_STATE_GEN6_APP)
drivers/input/mouse/cyapa.c
589
static int cyapa_initialize(struct cyapa *cyapa)
drivers/input/mouse/cyapa.c
593
cyapa->state = CYAPA_STATE_NO_DEVICE;
drivers/input/mouse/cyapa.c
594
cyapa->gen = CYAPA_GEN_UNKNOWN;
drivers/input/mouse/cyapa.c
595
mutex_init(&cyapa->state_sync_lock);
drivers/input/mouse/cyapa.c
60
if (cyapa->gen == CYAPA_GEN5 && cyapa->state == CYAPA_STATE_GEN5_APP)
drivers/input/mouse/cyapa.c
601
cyapa->suspend_power_mode = PWR_MODE_SLEEP;
drivers/input/mouse/cyapa.c
602
cyapa->suspend_sleep_time =
drivers/input/mouse/cyapa.c
603
cyapa_pwr_cmd_to_sleep_time(cyapa->suspend_power_mode);
drivers/input/mouse/cyapa.c
606
error = cyapa_gen3_ops.initialize(cyapa);
drivers/input/mouse/cyapa.c
608
error = cyapa_gen5_ops.initialize(cyapa);
drivers/input/mouse/cyapa.c
610
error = cyapa_gen6_ops.initialize(cyapa);
drivers/input/mouse/cyapa.c
614
error = cyapa_detect(cyapa);
drivers/input/mouse/cyapa.c
619
if (cyapa->operational)
drivers/input/mouse/cyapa.c
620
cyapa->ops->set_power_mode(cyapa,
drivers/input/mouse/cyapa.c
626
static int cyapa_reinitialize(struct cyapa *cyapa)
drivers/input/mouse/cyapa.c
628
struct device *dev = &cyapa->client->dev;
drivers/input/mouse/cyapa.c
629
struct input_dev *input = cyapa->input;
drivers/input/mouse/cyapa.c
636
if (cyapa->operational)
drivers/input/mouse/cyapa.c
637
cyapa->ops->set_power_mode(cyapa,
drivers/input/mouse/cyapa.c
640
error = cyapa_detect(cyapa);
drivers/input/mouse/cyapa.c
644
if (!input && cyapa->operational) {
drivers/input/mouse/cyapa.c
645
error = cyapa_create_input_dev(cyapa);
drivers/input/mouse/cyapa.c
656
if (cyapa->operational)
drivers/input/mouse/cyapa.c
657
cyapa->ops->set_power_mode(cyapa,
drivers/input/mouse/cyapa.c
659
} else if (!error && cyapa->operational) {
drivers/input/mouse/cyapa.c
66
static bool cyapa_is_bootloader_mode(struct cyapa *cyapa)
drivers/input/mouse/cyapa.c
676
struct cyapa *cyapa = dev_id;
drivers/input/mouse/cyapa.c
677
struct device *dev = &cyapa->client->dev;
drivers/input/mouse/cyapa.c
68
if (cyapa_is_pip_bl_mode(cyapa))
drivers/input/mouse/cyapa.c
684
if (cyapa->ops->irq_cmd_handler(cyapa)) {
drivers/input/mouse/cyapa.c
688
if (!cyapa->input) {
drivers/input/mouse/cyapa.c
693
cyapa->ops->sort_empty_output_data(cyapa,
drivers/input/mouse/cyapa.c
698
if (cyapa->operational) {
drivers/input/mouse/cyapa.c
699
error = cyapa->ops->irq_handler(cyapa);
drivers/input/mouse/cyapa.c
71
if (cyapa->gen == CYAPA_GEN3 &&
drivers/input/mouse/cyapa.c
714
if (!cyapa->operational || error) {
drivers/input/mouse/cyapa.c
715
if (!mutex_trylock(&cyapa->state_sync_lock)) {
drivers/input/mouse/cyapa.c
716
cyapa->ops->sort_empty_output_data(cyapa,
drivers/input/mouse/cyapa.c
72
cyapa->state >= CYAPA_STATE_BL_BUSY &&
drivers/input/mouse/cyapa.c
720
cyapa_reinitialize(cyapa);
drivers/input/mouse/cyapa.c
721
mutex_unlock(&cyapa->state_sync_lock);
drivers/input/mouse/cyapa.c
73
cyapa->state <= CYAPA_STATE_BL_ACTIVE)
drivers/input/mouse/cyapa.c
739
struct cyapa *cyapa = dev_get_drvdata(dev);
drivers/input/mouse/cyapa.c
745
error = mutex_lock_interruptible(&cyapa->state_sync_lock);
drivers/input/mouse/cyapa.c
749
pwr_cmd = cyapa->suspend_power_mode;
drivers/input/mouse/cyapa.c
750
sleep_time = cyapa->suspend_sleep_time;
drivers/input/mouse/cyapa.c
752
mutex_unlock(&cyapa->state_sync_lock);
drivers/input/mouse/cyapa.c
765
cyapa->gen == CYAPA_GEN3 ?
drivers/input/mouse/cyapa.c
778
struct cyapa *cyapa = dev_get_drvdata(dev);
drivers/input/mouse/cyapa.c
782
error = mutex_lock_interruptible(&cyapa->state_sync_lock);
drivers/input/mouse/cyapa.c
787
cyapa->suspend_power_mode = PWR_MODE_BTN_ONLY;
drivers/input/mouse/cyapa.c
789
cyapa->suspend_power_mode = PWR_MODE_OFF;
drivers/input/mouse/cyapa.c
79
static inline bool cyapa_is_operational_mode(struct cyapa *cyapa)
drivers/input/mouse/cyapa.c
791
cyapa->suspend_sleep_time = min_t(u16, sleep_time, 1000);
drivers/input/mouse/cyapa.c
792
cyapa->suspend_power_mode =
drivers/input/mouse/cyapa.c
793
cyapa_sleep_time_to_pwr_cmd(cyapa->suspend_sleep_time);
drivers/input/mouse/cyapa.c
798
mutex_unlock(&cyapa->state_sync_lock);
drivers/input/mouse/cyapa.c
81
if (cyapa_is_pip_app_mode(cyapa))
drivers/input/mouse/cyapa.c
819
struct cyapa *cyapa = data;
drivers/input/mouse/cyapa.c
821
sysfs_unmerge_group(&cyapa->client->dev.kobj,
drivers/input/mouse/cyapa.c
825
static int cyapa_prepare_wakeup_controls(struct cyapa *cyapa)
drivers/input/mouse/cyapa.c
827
struct i2c_client *client = cyapa->client;
drivers/input/mouse/cyapa.c
84
if (cyapa->gen == CYAPA_GEN3 && cyapa->state == CYAPA_STATE_OP)
drivers/input/mouse/cyapa.c
841
cyapa_remove_power_wakeup_group, cyapa);
drivers/input/mouse/cyapa.c
852
static inline int cyapa_prepare_wakeup_controls(struct cyapa *cyapa)
drivers/input/mouse/cyapa.c
863
struct cyapa *cyapa = dev_get_drvdata(dev);
drivers/input/mouse/cyapa.c
868
error = mutex_lock_interruptible(&cyapa->state_sync_lock);
drivers/input/mouse/cyapa.c
872
pwr_cmd = cyapa->runtime_suspend_power_mode;
drivers/input/mouse/cyapa.c
873
sleep_time = cyapa->runtime_suspend_sleep_time;
drivers/input/mouse/cyapa.c
875
mutex_unlock(&cyapa->state_sync_lock);
drivers/input/mouse/cyapa.c
878
cyapa->gen == CYAPA_GEN3 ?
drivers/input/mouse/cyapa.c
887
struct cyapa *cyapa = dev_get_drvdata(dev);
drivers/input/mouse/cyapa.c
903
error = mutex_lock_interruptible(&cyapa->state_sync_lock);
drivers/input/mouse/cyapa.c
907
cyapa->runtime_suspend_sleep_time = min_t(u16, time, 1000);
drivers/input/mouse/cyapa.c
908
cyapa->runtime_suspend_power_mode =
drivers/input/mouse/cyapa.c
909
cyapa_sleep_time_to_pwr_cmd(cyapa->runtime_suspend_sleep_time);
drivers/input/mouse/cyapa.c
91
static ssize_t cyapa_i2c_read(struct cyapa *cyapa, u8 reg, size_t len,
drivers/input/mouse/cyapa.c
911
mutex_unlock(&cyapa->state_sync_lock);
drivers/input/mouse/cyapa.c
934
struct cyapa *cyapa = data;
drivers/input/mouse/cyapa.c
936
sysfs_unmerge_group(&cyapa->client->dev.kobj,
drivers/input/mouse/cyapa.c
94
struct i2c_client *client = cyapa->client;
drivers/input/mouse/cyapa.c
940
static int cyapa_start_runtime(struct cyapa *cyapa)
drivers/input/mouse/cyapa.c
942
struct device *dev = &cyapa->client->dev;
drivers/input/mouse/cyapa.c
945
cyapa->runtime_suspend_power_mode = PWR_MODE_IDLE;
drivers/input/mouse/cyapa.c
946
cyapa->runtime_suspend_sleep_time =
drivers/input/mouse/cyapa.c
947
cyapa_pwr_cmd_to_sleep_time(cyapa->runtime_suspend_power_mode);
drivers/input/mouse/cyapa.c
957
cyapa);
drivers/input/mouse/cyapa.c
973
static inline int cyapa_start_runtime(struct cyapa *cyapa)
drivers/input/mouse/cyapa.c
983
struct cyapa *cyapa = dev_get_drvdata(dev);
drivers/input/mouse/cyapa.c
985
error = mutex_lock_interruptible(&cyapa->state_sync_lock);
drivers/input/mouse/cyapa.c
989
cyapa->fw_maj_ver, cyapa->fw_min_ver);
drivers/input/mouse/cyapa.c
990
mutex_unlock(&cyapa->state_sync_lock);
drivers/input/mouse/cyapa.c
997
struct cyapa *cyapa = dev_get_drvdata(dev);
drivers/input/mouse/cyapa.h
239
#define PIP_DEV_SET_PWR_STATE(cyapa, s) ((cyapa)->dev_pwr_mode = (s))
drivers/input/mouse/cyapa.h
240
#define PIP_DEV_GET_PWR_STATE(cyapa) ((cyapa)->dev_pwr_mode)
drivers/input/mouse/cyapa.h
241
#define PIP_DEV_SET_SLEEP_TIME(cyapa, t) ((cyapa)->dev_sleep_time = (t))
drivers/input/mouse/cyapa.h
242
#define PIP_DEV_GET_SLEEP_TIME(cyapa) ((cyapa)->dev_sleep_time)
drivers/input/mouse/cyapa.h
243
#define PIP_DEV_UNINIT_SLEEP_TIME(cyapa) \
drivers/input/mouse/cyapa.h
244
(((cyapa)->dev_sleep_time) == UNINIT_SLEEP_TIME)
drivers/input/mouse/cyapa.h
249
struct cyapa;
drivers/input/mouse/cyapa.h
251
typedef bool (*cb_sort)(struct cyapa *, u8 *, int);
drivers/input/mouse/cyapa.h
263
int (*check_fw)(struct cyapa *, const struct firmware *);
drivers/input/mouse/cyapa.h
264
int (*bl_enter)(struct cyapa *);
drivers/input/mouse/cyapa.h
265
int (*bl_activate)(struct cyapa *);
drivers/input/mouse/cyapa.h
266
int (*bl_initiate)(struct cyapa *, const struct firmware *);
drivers/input/mouse/cyapa.h
267
int (*update_fw)(struct cyapa *, const struct firmware *);
drivers/input/mouse/cyapa.h
268
int (*bl_deactivate)(struct cyapa *);
drivers/input/mouse/cyapa.h
275
int (*initialize)(struct cyapa *cyapa);
drivers/input/mouse/cyapa.h
277
int (*state_parse)(struct cyapa *cyapa, u8 *reg_status, int len);
drivers/input/mouse/cyapa.h
278
int (*operational_check)(struct cyapa *cyapa);
drivers/input/mouse/cyapa.h
280
int (*irq_handler)(struct cyapa *);
drivers/input/mouse/cyapa.h
281
bool (*irq_cmd_handler)(struct cyapa *);
drivers/input/mouse/cyapa.h
282
int (*sort_empty_output_data)(struct cyapa *,
drivers/input/mouse/cyapa.h
285
int (*set_power_mode)(struct cyapa *, u8, u16, enum cyapa_pm_stage);
drivers/input/mouse/cyapa.h
287
int (*set_proximity)(struct cyapa *, bool);
drivers/input/mouse/cyapa.h
387
ssize_t cyapa_i2c_reg_read_block(struct cyapa *cyapa, u8 reg, size_t len,
drivers/input/mouse/cyapa.h
389
ssize_t cyapa_smbus_read_block(struct cyapa *cyapa, u8 cmd, size_t len,
drivers/input/mouse/cyapa.h
392
ssize_t cyapa_read_block(struct cyapa *cyapa, u8 cmd_idx, u8 *values);
drivers/input/mouse/cyapa.h
394
int cyapa_poll_state(struct cyapa *cyapa, unsigned int timeout);
drivers/input/mouse/cyapa.h
399
ssize_t cyapa_i2c_pip_read(struct cyapa *cyapa, u8 *buf, size_t size);
drivers/input/mouse/cyapa.h
400
ssize_t cyapa_i2c_pip_write(struct cyapa *cyapa, u8 *buf, size_t size);
drivers/input/mouse/cyapa.h
401
int cyapa_empty_pip_output_data(struct cyapa *cyapa,
drivers/input/mouse/cyapa.h
403
int cyapa_i2c_pip_cmd_irq_sync(struct cyapa *cyapa,
drivers/input/mouse/cyapa.h
409
int cyapa_pip_state_parse(struct cyapa *cyapa, u8 *reg_data, int len);
drivers/input/mouse/cyapa.h
410
bool cyapa_pip_sort_system_info_data(struct cyapa *cyapa, u8 *buf, int len);
drivers/input/mouse/cyapa.h
411
bool cyapa_sort_tsg_pip_bl_resp_data(struct cyapa *cyapa, u8 *data, int len);
drivers/input/mouse/cyapa.h
412
int cyapa_pip_deep_sleep(struct cyapa *cyapa, u8 state);
drivers/input/mouse/cyapa.h
413
bool cyapa_sort_tsg_pip_app_resp_data(struct cyapa *cyapa, u8 *data, int len);
drivers/input/mouse/cyapa.h
414
int cyapa_pip_bl_exit(struct cyapa *cyapa);
drivers/input/mouse/cyapa.h
415
int cyapa_pip_bl_enter(struct cyapa *cyapa);
drivers/input/mouse/cyapa.h
418
bool cyapa_is_pip_bl_mode(struct cyapa *cyapa);
drivers/input/mouse/cyapa.h
419
bool cyapa_is_pip_app_mode(struct cyapa *cyapa);
drivers/input/mouse/cyapa.h
420
int cyapa_pip_cmd_state_initialize(struct cyapa *cyapa);
drivers/input/mouse/cyapa.h
422
int cyapa_pip_resume_scanning(struct cyapa *cyapa);
drivers/input/mouse/cyapa.h
423
int cyapa_pip_suspend_scanning(struct cyapa *cyapa);
drivers/input/mouse/cyapa.h
425
int cyapa_pip_check_fw(struct cyapa *cyapa, const struct firmware *fw);
drivers/input/mouse/cyapa.h
426
int cyapa_pip_bl_initiate(struct cyapa *cyapa, const struct firmware *fw);
drivers/input/mouse/cyapa.h
427
int cyapa_pip_do_fw_update(struct cyapa *cyapa, const struct firmware *fw);
drivers/input/mouse/cyapa.h
428
int cyapa_pip_bl_activate(struct cyapa *cyapa);
drivers/input/mouse/cyapa.h
429
int cyapa_pip_bl_deactivate(struct cyapa *cyapa);
drivers/input/mouse/cyapa.h
433
int cyapa_pip_set_proximity(struct cyapa *cyapa, bool enable);
drivers/input/mouse/cyapa.h
435
bool cyapa_pip_irq_cmd_handler(struct cyapa *cyapa);
drivers/input/mouse/cyapa.h
436
int cyapa_pip_irq_handler(struct cyapa *cyapa);
drivers/input/mouse/cyapa_gen3.c
1000
cyapa->fw_maj_ver = query_data[15];
drivers/input/mouse/cyapa_gen3.c
1001
cyapa->fw_min_ver = query_data[16];
drivers/input/mouse/cyapa_gen3.c
1003
cyapa->btn_capability = query_data[19] & CAPABILITY_BTN_MASK;
drivers/input/mouse/cyapa_gen3.c
1005
cyapa->gen = query_data[20] & 0x0f;
drivers/input/mouse/cyapa_gen3.c
1007
cyapa->max_abs_x = ((query_data[21] & 0xf0) << 4) | query_data[22];
drivers/input/mouse/cyapa_gen3.c
1008
cyapa->max_abs_y = ((query_data[21] & 0x0f) << 8) | query_data[23];
drivers/input/mouse/cyapa_gen3.c
1010
cyapa->physical_size_x =
drivers/input/mouse/cyapa_gen3.c
1012
cyapa->physical_size_y =
drivers/input/mouse/cyapa_gen3.c
1015
cyapa->max_z = 255;
drivers/input/mouse/cyapa_gen3.c
1020
static int cyapa_gen3_bl_query_data(struct cyapa *cyapa)
drivers/input/mouse/cyapa_gen3.c
1025
ret = cyapa_i2c_reg_read_block(cyapa, 0, CYAPA_CMD_LEN, bl_data);
drivers/input/mouse/cyapa_gen3.c
1037
cyapa->fw_maj_ver = bl_data[GEN3_BL_IDLE_FW_MAJ_VER_OFFSET];
drivers/input/mouse/cyapa_gen3.c
1038
cyapa->fw_min_ver = bl_data[GEN3_BL_IDLE_FW_MIN_VER_OFFSET];
drivers/input/mouse/cyapa_gen3.c
1058
static int cyapa_gen3_do_operational_check(struct cyapa *cyapa)
drivers/input/mouse/cyapa_gen3.c
1060
struct device *dev = &cyapa->client->dev;
drivers/input/mouse/cyapa_gen3.c
1063
switch (cyapa->state) {
drivers/input/mouse/cyapa_gen3.c
1065
error = cyapa_gen3_bl_deactivate(cyapa);
drivers/input/mouse/cyapa_gen3.c
1074
cyapa_gen3_bl_query_data(cyapa);
drivers/input/mouse/cyapa_gen3.c
1076
error = cyapa_gen3_bl_exit(cyapa);
drivers/input/mouse/cyapa_gen3.c
1088
error = cyapa_gen3_set_power_mode(cyapa,
drivers/input/mouse/cyapa_gen3.c
1093
error = cyapa_gen3_get_query_data(cyapa);
drivers/input/mouse/cyapa_gen3.c
1098
if (cyapa->gen != CYAPA_GEN3) {
drivers/input/mouse/cyapa_gen3.c
1100
cyapa->gen);
drivers/input/mouse/cyapa_gen3.c
1105
if (memcmp(cyapa->product_id, product_id,
drivers/input/mouse/cyapa_gen3.c
1108
cyapa->product_id);
drivers/input/mouse/cyapa_gen3.c
1124
static bool cyapa_gen3_irq_cmd_handler(struct cyapa *cyapa)
drivers/input/mouse/cyapa_gen3.c
1127
if (cyapa->gen != CYAPA_GEN3)
drivers/input/mouse/cyapa_gen3.c
1130
if (cyapa->operational)
drivers/input/mouse/cyapa_gen3.c
1145
static int cyapa_gen3_event_process(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen3.c
1148
struct input_dev *input = cyapa->input;
drivers/input/mouse/cyapa_gen3.c
1169
if (cyapa->btn_capability & CAPABILITY_LEFT_BTN_MASK)
drivers/input/mouse/cyapa_gen3.c
1172
if (cyapa->btn_capability & CAPABILITY_MIDDLE_BTN_MASK)
drivers/input/mouse/cyapa_gen3.c
1175
if (cyapa->btn_capability & CAPABILITY_RIGHT_BTN_MASK)
drivers/input/mouse/cyapa_gen3.c
1183
static int cyapa_gen3_irq_handler(struct cyapa *cyapa)
drivers/input/mouse/cyapa_gen3.c
1185
struct device *dev = &cyapa->client->dev;
drivers/input/mouse/cyapa_gen3.c
1189
ret = cyapa_read_block(cyapa, CYAPA_CMD_GROUP_DATA, (u8 *)&data);
drivers/input/mouse/cyapa_gen3.c
1203
return cyapa_gen3_event_process(cyapa, &data);
drivers/input/mouse/cyapa_gen3.c
1212
static int cyapa_gen3_try_poll_handler(struct cyapa *cyapa)
drivers/input/mouse/cyapa_gen3.c
1217
ret = cyapa_read_block(cyapa, CYAPA_CMD_GROUP_DATA, (u8 *)&data);
drivers/input/mouse/cyapa_gen3.c
1226
return cyapa_gen3_event_process(cyapa, &data);
drivers/input/mouse/cyapa_gen3.c
1230
static int cyapa_gen3_initialize(struct cyapa *cyapa) { return 0; }
drivers/input/mouse/cyapa_gen3.c
1231
static int cyapa_gen3_bl_initiate(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen3.c
1233
static int cyapa_gen3_empty_output_data(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen3.c
229
static int cyapa_gen3_try_poll_handler(struct cyapa *cyapa);
drivers/input/mouse/cyapa_gen3.c
244
ssize_t cyapa_smbus_read_block(struct cyapa *cyapa, u8 cmd, size_t len,
drivers/input/mouse/cyapa_gen3.c
251
struct i2c_client *client = cyapa->client;
drivers/input/mouse/cyapa_gen3.c
277
static s32 cyapa_read_byte(struct cyapa *cyapa, u8 cmd_idx)
drivers/input/mouse/cyapa_gen3.c
281
if (cyapa->smbus) {
drivers/input/mouse/cyapa_gen3.c
287
return i2c_smbus_read_byte_data(cyapa->client, cmd);
drivers/input/mouse/cyapa_gen3.c
290
static s32 cyapa_write_byte(struct cyapa *cyapa, u8 cmd_idx, u8 value)
drivers/input/mouse/cyapa_gen3.c
294
if (cyapa->smbus) {
drivers/input/mouse/cyapa_gen3.c
300
return i2c_smbus_write_byte_data(cyapa->client, cmd, value);
drivers/input/mouse/cyapa_gen3.c
303
ssize_t cyapa_i2c_reg_read_block(struct cyapa *cyapa, u8 reg, size_t len,
drivers/input/mouse/cyapa_gen3.c
306
return i2c_smbus_read_i2c_block_data(cyapa->client, reg, len, values);
drivers/input/mouse/cyapa_gen3.c
309
static ssize_t cyapa_i2c_reg_write_block(struct cyapa *cyapa, u8 reg,
drivers/input/mouse/cyapa_gen3.c
312
return i2c_smbus_write_i2c_block_data(cyapa->client, reg, len, values);
drivers/input/mouse/cyapa_gen3.c
315
ssize_t cyapa_read_block(struct cyapa *cyapa, u8 cmd_idx, u8 *values)
drivers/input/mouse/cyapa_gen3.c
320
if (cyapa->smbus) {
drivers/input/mouse/cyapa_gen3.c
323
return cyapa_smbus_read_block(cyapa, cmd, len, values);
drivers/input/mouse/cyapa_gen3.c
327
return cyapa_i2c_reg_read_block(cyapa, cmd, len, values);
drivers/input/mouse/cyapa_gen3.c
334
static int cyapa_gen3_state_parse(struct cyapa *cyapa, u8 *reg_data, int len)
drivers/input/mouse/cyapa_gen3.c
336
cyapa->state = CYAPA_STATE_NO_DEVICE;
drivers/input/mouse/cyapa_gen3.c
349
cyapa->gen = CYAPA_GEN3;
drivers/input/mouse/cyapa_gen3.c
350
cyapa->state = CYAPA_STATE_BL_IDLE;
drivers/input/mouse/cyapa_gen3.c
354
cyapa->gen = CYAPA_GEN3;
drivers/input/mouse/cyapa_gen3.c
356
cyapa->state = CYAPA_STATE_BL_BUSY;
drivers/input/mouse/cyapa_gen3.c
360
cyapa->state = CYAPA_STATE_BL_ACTIVE;
drivers/input/mouse/cyapa_gen3.c
362
cyapa->state = CYAPA_STATE_BL_IDLE;
drivers/input/mouse/cyapa_gen3.c
374
cyapa->gen = CYAPA_GEN3;
drivers/input/mouse/cyapa_gen3.c
375
cyapa->state = CYAPA_STATE_OP;
drivers/input/mouse/cyapa_gen3.c
380
cyapa->gen = CYAPA_GEN3;
drivers/input/mouse/cyapa_gen3.c
381
cyapa->state = CYAPA_STATE_OP;
drivers/input/mouse/cyapa_gen3.c
384
cyapa->gen = CYAPA_GEN3;
drivers/input/mouse/cyapa_gen3.c
385
cyapa->state = CYAPA_STATE_BL_BUSY;
drivers/input/mouse/cyapa_gen3.c
388
if (cyapa->gen == CYAPA_GEN3 && (cyapa->state == CYAPA_STATE_OP ||
drivers/input/mouse/cyapa_gen3.c
389
cyapa->state == CYAPA_STATE_BL_IDLE ||
drivers/input/mouse/cyapa_gen3.c
390
cyapa->state == CYAPA_STATE_BL_ACTIVE ||
drivers/input/mouse/cyapa_gen3.c
391
cyapa->state == CYAPA_STATE_BL_BUSY))
drivers/input/mouse/cyapa_gen3.c
409
static int cyapa_gen3_bl_enter(struct cyapa *cyapa)
drivers/input/mouse/cyapa_gen3.c
414
error = cyapa_poll_state(cyapa, 500);
drivers/input/mouse/cyapa_gen3.c
417
if (cyapa->state == CYAPA_STATE_BL_IDLE) {
drivers/input/mouse/cyapa_gen3.c
422
if (cyapa->state != CYAPA_STATE_OP)
drivers/input/mouse/cyapa_gen3.c
425
cyapa->operational = false;
drivers/input/mouse/cyapa_gen3.c
426
cyapa->state = CYAPA_STATE_NO_DEVICE;
drivers/input/mouse/cyapa_gen3.c
427
error = cyapa_write_byte(cyapa, CYAPA_CMD_SOFT_RESET, 0x01);
drivers/input/mouse/cyapa_gen3.c
434
error = cyapa_poll_state(cyapa, 500);
drivers/input/mouse/cyapa_gen3.c
443
if ((cyapa->state == CYAPA_STATE_BL_IDLE) &&
drivers/input/mouse/cyapa_gen3.c
444
!(cyapa->status[REG_BL_STATUS] & BL_STATUS_WATCHDOG))
drivers/input/mouse/cyapa_gen3.c
451
if ((cyapa->state != CYAPA_STATE_BL_IDLE) ||
drivers/input/mouse/cyapa_gen3.c
452
(cyapa->status[REG_BL_STATUS] & BL_STATUS_WATCHDOG))
drivers/input/mouse/cyapa_gen3.c
458
static int cyapa_gen3_bl_activate(struct cyapa *cyapa)
drivers/input/mouse/cyapa_gen3.c
462
error = cyapa_i2c_reg_write_block(cyapa, 0, sizeof(bl_activate),
drivers/input/mouse/cyapa_gen3.c
469
error = cyapa_poll_state(cyapa, 11000);
drivers/input/mouse/cyapa_gen3.c
472
if (cyapa->state != CYAPA_STATE_BL_ACTIVE)
drivers/input/mouse/cyapa_gen3.c
478
static int cyapa_gen3_bl_deactivate(struct cyapa *cyapa)
drivers/input/mouse/cyapa_gen3.c
482
error = cyapa_i2c_reg_write_block(cyapa, 0, sizeof(bl_deactivate),
drivers/input/mouse/cyapa_gen3.c
489
error = cyapa_poll_state(cyapa, 500);
drivers/input/mouse/cyapa_gen3.c
492
if (cyapa->state != CYAPA_STATE_BL_IDLE)
drivers/input/mouse/cyapa_gen3.c
510
static int cyapa_gen3_bl_exit(struct cyapa *cyapa)
drivers/input/mouse/cyapa_gen3.c
514
error = cyapa_i2c_reg_write_block(cyapa, 0, sizeof(bl_exit), bl_exit);
drivers/input/mouse/cyapa_gen3.c
529
error = cyapa_poll_state(cyapa, 4000);
drivers/input/mouse/cyapa_gen3.c
532
if (cyapa->state != CYAPA_STATE_OP)
drivers/input/mouse/cyapa_gen3.c
564
static int cyapa_gen3_check_fw(struct cyapa *cyapa, const struct firmware *fw)
drivers/input/mouse/cyapa_gen3.c
566
struct device *dev = &cyapa->client->dev;
drivers/input/mouse/cyapa_gen3.c
608
static int cyapa_gen3_write_buffer(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen3.c
623
error = cyapa_i2c_reg_write_block(cyapa, 0, cmd_len + 1, cmd);
drivers/input/mouse/cyapa_gen3.c
646
static int cyapa_gen3_write_fw_block(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen3.c
666
ret = cyapa_gen3_write_buffer(cyapa, (u8 *)&write_block_cmd,
drivers/input/mouse/cyapa_gen3.c
677
ret = cyapa_i2c_reg_read_block(cyapa, BL_HEAD_OFFSET,
drivers/input/mouse/cyapa_gen3.c
698
static int cyapa_gen3_write_blocks(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen3.c
710
error = cyapa_gen3_write_fw_block(cyapa, block, data);
drivers/input/mouse/cyapa_gen3.c
717
static int cyapa_gen3_do_fw_update(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen3.c
720
struct device *dev = &cyapa->client->dev;
drivers/input/mouse/cyapa_gen3.c
724
error = cyapa_gen3_write_blocks(cyapa,
drivers/input/mouse/cyapa_gen3.c
733
error = cyapa_gen3_write_blocks(cyapa,
drivers/input/mouse/cyapa_gen3.c
748
struct cyapa *cyapa = dev_get_drvdata(dev);
drivers/input/mouse/cyapa_gen3.c
752
ret = cyapa_read_byte(cyapa, CYAPA_CMD_DEV_STATUS);
drivers/input/mouse/cyapa_gen3.c
764
ret = cyapa_write_byte(cyapa, CYAPA_CMD_SOFT_RESET,
drivers/input/mouse/cyapa_gen3.c
781
ret = cyapa_read_byte(cyapa, CYAPA_CMD_DEV_STATUS);
drivers/input/mouse/cyapa_gen3.c
802
struct cyapa *cyapa = dev_get_drvdata(dev);
drivers/input/mouse/cyapa_gen3.c
807
ret = cyapa_read_byte(cyapa, CYAPA_CMD_DEV_STATUS);
drivers/input/mouse/cyapa_gen3.c
819
ret = cyapa_write_byte(cyapa, CYAPA_CMD_SOFT_RESET,
drivers/input/mouse/cyapa_gen3.c
831
ret = cyapa_read_byte(cyapa, CYAPA_CMD_DEV_STATUS);
drivers/input/mouse/cyapa_gen3.c
847
ret = cyapa_read_byte(cyapa, CYAPA_CMD_MAX_BASELINE);
drivers/input/mouse/cyapa_gen3.c
854
ret = cyapa_read_byte(cyapa, CYAPA_CMD_MIN_BASELINE);
drivers/input/mouse/cyapa_gen3.c
907
static int cyapa_gen3_set_power_mode(struct cyapa *cyapa, u8 power_mode,
drivers/input/mouse/cyapa_gen3.c
910
struct input_dev *input = cyapa->input;
drivers/input/mouse/cyapa_gen3.c
917
if (cyapa->state != CYAPA_STATE_OP)
drivers/input/mouse/cyapa_gen3.c
922
ret = cyapa_read_byte(cyapa, CYAPA_CMD_POWER_MODE);
drivers/input/mouse/cyapa_gen3.c
943
ret = cyapa_write_byte(cyapa, CYAPA_CMD_POWER_MODE, power);
drivers/input/mouse/cyapa_gen3.c
955
if (cyapa->operational &&
drivers/input/mouse/cyapa_gen3.c
967
cyapa_gen3_try_poll_handler(cyapa);
drivers/input/mouse/cyapa_gen3.c
976
static int cyapa_gen3_set_proximity(struct cyapa *cyapa, bool enable)
drivers/input/mouse/cyapa_gen3.c
981
static int cyapa_gen3_get_query_data(struct cyapa *cyapa)
drivers/input/mouse/cyapa_gen3.c
986
if (cyapa->state != CYAPA_STATE_OP)
drivers/input/mouse/cyapa_gen3.c
989
ret = cyapa_read_block(cyapa, CYAPA_CMD_GROUP_QUERY, query_data);
drivers/input/mouse/cyapa_gen3.c
993
memcpy(&cyapa->product_id[0], &query_data[0], 5);
drivers/input/mouse/cyapa_gen3.c
994
cyapa->product_id[5] = '-';
drivers/input/mouse/cyapa_gen3.c
995
memcpy(&cyapa->product_id[6], &query_data[5], 6);
drivers/input/mouse/cyapa_gen3.c
996
cyapa->product_id[12] = '-';
drivers/input/mouse/cyapa_gen3.c
997
memcpy(&cyapa->product_id[13], &query_data[11], 2);
drivers/input/mouse/cyapa_gen3.c
998
cyapa->product_id[15] = '\0';
drivers/input/mouse/cyapa_gen5.c
1003
cyapa->gen = CYAPA_GEN5;
drivers/input/mouse/cyapa_gen5.c
1004
cyapa->state = CYAPA_STATE_GEN5_BL;
drivers/input/mouse/cyapa_gen5.c
1010
gen5_report_data_header_parse(cyapa, reg_data);
drivers/input/mouse/cyapa_gen5.c
1013
gen5_cmd_resp_header_parse(cyapa, reg_data);
drivers/input/mouse/cyapa_gen5.c
1016
if (cyapa->gen == CYAPA_GEN5) {
drivers/input/mouse/cyapa_gen5.c
1023
cyapa_empty_pip_output_data(cyapa, NULL, NULL, NULL);
drivers/input/mouse/cyapa_gen5.c
1025
if (cyapa->state == CYAPA_STATE_GEN5_APP ||
drivers/input/mouse/cyapa_gen5.c
1026
cyapa->state == CYAPA_STATE_GEN5_BL)
drivers/input/mouse/cyapa_gen5.c
1045
int cyapa_pip_bl_initiate(struct cyapa *cyapa, const struct firmware *fw)
drivers/input/mouse/cyapa_gen5.c
1064
cyapa_empty_pip_output_data(cyapa, NULL, NULL, NULL);
drivers/input/mouse/cyapa_gen5.c
1104
error = cyapa_i2c_pip_cmd_irq_sync(cyapa,
drivers/input/mouse/cyapa_gen5.c
1116
static bool cyapa_sort_pip_bl_exit_data(struct cyapa *cyapa, u8 *buf, int len)
drivers/input/mouse/cyapa_gen5.c
1136
int cyapa_pip_bl_exit(struct cyapa *cyapa)
drivers/input/mouse/cyapa_gen5.c
1148
error = cyapa_i2c_pip_cmd_irq_sync(cyapa,
drivers/input/mouse/cyapa_gen5.c
1166
int cyapa_pip_bl_enter(struct cyapa *cyapa)
drivers/input/mouse/cyapa_gen5.c
1173
error = cyapa_poll_state(cyapa, 500);
drivers/input/mouse/cyapa_gen5.c
1178
if (cyapa_is_pip_bl_mode(cyapa))
drivers/input/mouse/cyapa_gen5.c
1180
else if (!cyapa_is_pip_app_mode(cyapa))
drivers/input/mouse/cyapa_gen5.c
1184
cyapa_empty_pip_output_data(cyapa, NULL, NULL, NULL);
drivers/input/mouse/cyapa_gen5.c
1192
error = cyapa_i2c_pip_cmd_irq_sync(cyapa,
drivers/input/mouse/cyapa_gen5.c
1200
cyapa->operational = false;
drivers/input/mouse/cyapa_gen5.c
1201
if (cyapa->gen == CYAPA_GEN5)
drivers/input/mouse/cyapa_gen5.c
1202
cyapa->state = CYAPA_STATE_GEN5_BL;
drivers/input/mouse/cyapa_gen5.c
1203
else if (cyapa->gen == CYAPA_GEN6)
drivers/input/mouse/cyapa_gen5.c
1204
cyapa->state = CYAPA_STATE_GEN6_BL;
drivers/input/mouse/cyapa_gen5.c
1208
static int cyapa_pip_fw_head_check(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen5.c
1214
switch (cyapa->gen) {
drivers/input/mouse/cyapa_gen5.c
1222
if (cyapa->platform_ver < 2) {
drivers/input/mouse/cyapa_gen5.c
1239
int cyapa_pip_check_fw(struct cyapa *cyapa, const struct firmware *fw)
drivers/input/mouse/cyapa_gen5.c
1241
struct device *dev = &cyapa->client->dev;
drivers/input/mouse/cyapa_gen5.c
1253
if (cyapa_pip_fw_head_check(cyapa,
drivers/input/mouse/cyapa_gen5.c
1314
static int cyapa_pip_write_fw_block(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen5.c
1370
error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cmd, cmd_len,
drivers/input/mouse/cyapa_gen5.c
1381
int cyapa_pip_do_fw_update(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen5.c
1384
struct device *dev = &cyapa->client->dev;
drivers/input/mouse/cyapa_gen5.c
1390
cyapa_empty_pip_output_data(cyapa, NULL, NULL, NULL);
drivers/input/mouse/cyapa_gen5.c
1400
error = cyapa_pip_write_fw_block(cyapa, &image_records[i]);
drivers/input/mouse/cyapa_gen5.c
1411
static int cyapa_gen5_change_power_state(struct cyapa *cyapa, u8 power_state)
drivers/input/mouse/cyapa_gen5.c
1420
error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cmd, sizeof(cmd),
drivers/input/mouse/cyapa_gen5.c
1430
static int cyapa_gen5_set_interval_time(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen5.c
1476
error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cmd, cmd_len,
drivers/input/mouse/cyapa_gen5.c
1487
static int cyapa_gen5_get_interval_time(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen5.c
1530
error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cmd, cmd_len,
drivers/input/mouse/cyapa_gen5.c
1545
static int cyapa_gen5_disable_pip_report(struct cyapa *cyapa)
drivers/input/mouse/cyapa_gen5.c
1564
error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cmd, sizeof(cmd),
drivers/input/mouse/cyapa_gen5.c
1575
int cyapa_pip_set_proximity(struct cyapa *cyapa, bool enable)
drivers/input/mouse/cyapa_gen5.c
1585
error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cmd, sizeof(cmd),
drivers/input/mouse/cyapa_gen5.c
1597
int cyapa_pip_deep_sleep(struct cyapa *cyapa, u8 state)
drivers/input/mouse/cyapa_gen5.c
1606
error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cmd, sizeof(cmd),
drivers/input/mouse/cyapa_gen5.c
1615
static int cyapa_gen5_set_power_mode(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen5.c
1618
struct device *dev = &cyapa->client->dev;
drivers/input/mouse/cyapa_gen5.c
1622
if (cyapa->state != CYAPA_STATE_GEN5_APP)
drivers/input/mouse/cyapa_gen5.c
1625
cyapa_set_pip_pm_state(cyapa, pm_stage);
drivers/input/mouse/cyapa_gen5.c
1627
if (PIP_DEV_GET_PWR_STATE(cyapa) == UNINIT_PWR_MODE) {
drivers/input/mouse/cyapa_gen5.c
1633
PIP_DEV_SET_PWR_STATE(cyapa, PWR_MODE_OFF);
drivers/input/mouse/cyapa_gen5.c
1636
if (PIP_DEV_UNINIT_SLEEP_TIME(cyapa) &&
drivers/input/mouse/cyapa_gen5.c
1637
PIP_DEV_GET_PWR_STATE(cyapa) != PWR_MODE_OFF)
drivers/input/mouse/cyapa_gen5.c
1638
if (cyapa_gen5_get_interval_time(cyapa,
drivers/input/mouse/cyapa_gen5.c
1640
&cyapa->dev_sleep_time) != 0)
drivers/input/mouse/cyapa_gen5.c
1641
PIP_DEV_SET_SLEEP_TIME(cyapa, UNINIT_SLEEP_TIME);
drivers/input/mouse/cyapa_gen5.c
1643
if (PIP_DEV_GET_PWR_STATE(cyapa) == power_mode) {
drivers/input/mouse/cyapa_gen5.c
1647
PIP_DEV_GET_SLEEP_TIME(cyapa) == sleep_time) {
drivers/input/mouse/cyapa_gen5.c
1654
error = cyapa_pip_deep_sleep(cyapa, PIP_DEEP_SLEEP_STATE_OFF);
drivers/input/mouse/cyapa_gen5.c
1660
PIP_DEV_SET_PWR_STATE(cyapa, PWR_MODE_OFF);
drivers/input/mouse/cyapa_gen5.c
1669
if (PIP_DEV_GET_PWR_STATE(cyapa) == PWR_MODE_OFF) {
drivers/input/mouse/cyapa_gen5.c
1670
error = cyapa_pip_deep_sleep(cyapa, PIP_DEEP_SLEEP_STATE_ON);
drivers/input/mouse/cyapa_gen5.c
1678
error = cyapa_gen5_change_power_state(cyapa,
drivers/input/mouse/cyapa_gen5.c
1685
PIP_DEV_SET_PWR_STATE(cyapa, PWR_MODE_FULL_ACTIVE);
drivers/input/mouse/cyapa_gen5.c
1687
error = cyapa_gen5_change_power_state(cyapa,
drivers/input/mouse/cyapa_gen5.c
1694
PIP_DEV_SET_PWR_STATE(cyapa, PWR_MODE_BTN_ONLY);
drivers/input/mouse/cyapa_gen5.c
1701
if (PIP_DEV_UNINIT_SLEEP_TIME(cyapa) ||
drivers/input/mouse/cyapa_gen5.c
1702
sleep_time != PIP_DEV_GET_SLEEP_TIME(cyapa))
drivers/input/mouse/cyapa_gen5.c
1703
if (cyapa_gen5_set_interval_time(cyapa,
drivers/input/mouse/cyapa_gen5.c
1706
PIP_DEV_SET_SLEEP_TIME(cyapa, sleep_time);
drivers/input/mouse/cyapa_gen5.c
1712
error = cyapa_gen5_change_power_state(cyapa, power_state);
drivers/input/mouse/cyapa_gen5.c
1730
cyapa_gen5_disable_pip_report(cyapa);
drivers/input/mouse/cyapa_gen5.c
1732
PIP_DEV_SET_PWR_STATE(cyapa,
drivers/input/mouse/cyapa_gen5.c
1737
cyapa_reset_pip_pm_state(cyapa);
drivers/input/mouse/cyapa_gen5.c
1741
int cyapa_pip_resume_scanning(struct cyapa *cyapa)
drivers/input/mouse/cyapa_gen5.c
1749
cyapa_empty_pip_output_data(cyapa, NULL, NULL, NULL);
drivers/input/mouse/cyapa_gen5.c
1752
error = cyapa_i2c_pip_cmd_irq_sync(cyapa,
drivers/input/mouse/cyapa_gen5.c
1760
cyapa_empty_pip_output_data(cyapa, NULL, NULL, NULL);
drivers/input/mouse/cyapa_gen5.c
1765
int cyapa_pip_suspend_scanning(struct cyapa *cyapa)
drivers/input/mouse/cyapa_gen5.c
1773
cyapa_empty_pip_output_data(cyapa, NULL, NULL, NULL);
drivers/input/mouse/cyapa_gen5.c
1776
error = cyapa_i2c_pip_cmd_irq_sync(cyapa,
drivers/input/mouse/cyapa_gen5.c
1784
cyapa_empty_pip_output_data(cyapa, NULL, NULL, NULL);
drivers/input/mouse/cyapa_gen5.c
1789
static int cyapa_pip_calibrate_pwcs(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen5.c
1799
cyapa_empty_pip_output_data(cyapa, NULL, NULL, NULL);
drivers/input/mouse/cyapa_gen5.c
1809
error = cyapa_i2c_pip_cmd_irq_sync(cyapa,
drivers/input/mouse/cyapa_gen5.c
1824
struct cyapa *cyapa = dev_get_drvdata(dev);
drivers/input/mouse/cyapa_gen5.c
1828
error = cyapa_pip_suspend_scanning(cyapa);
drivers/input/mouse/cyapa_gen5.c
1833
calibrate_error = cyapa_pip_calibrate_pwcs(cyapa,
drivers/input/mouse/cyapa_gen5.c
1839
calibrate_error = cyapa_pip_calibrate_pwcs(cyapa,
drivers/input/mouse/cyapa_gen5.c
1846
error = cyapa_pip_resume_scanning(cyapa);
drivers/input/mouse/cyapa_gen5.c
1902
static void cyapa_gen5_guess_electrodes(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen5.c
1905
if (cyapa->electrodes_rx != 0) {
drivers/input/mouse/cyapa_gen5.c
1906
*electrodes_rx = cyapa->electrodes_rx;
drivers/input/mouse/cyapa_gen5.c
1907
*electrodes_tx = (cyapa->electrodes_x == *electrodes_rx) ?
drivers/input/mouse/cyapa_gen5.c
1908
cyapa->electrodes_y : cyapa->electrodes_x;
drivers/input/mouse/cyapa_gen5.c
1910
*electrodes_tx = min(cyapa->electrodes_x, cyapa->electrodes_y);
drivers/input/mouse/cyapa_gen5.c
1911
*electrodes_rx = max(cyapa->electrodes_x, cyapa->electrodes_y);
drivers/input/mouse/cyapa_gen5.c
1933
static int cyapa_gen5_read_idac_data(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen5.c
1975
if (cyapa->aligned_electrodes_rx == 0) {
drivers/input/mouse/cyapa_gen5.c
1976
cyapa_gen5_guess_electrodes(cyapa,
drivers/input/mouse/cyapa_gen5.c
1978
cyapa->aligned_electrodes_rx =
drivers/input/mouse/cyapa_gen5.c
1982
(cyapa->aligned_electrodes_rx + 7) & ~7u;
drivers/input/mouse/cyapa_gen5.c
1992
offset = cyapa->aligned_electrodes_rx * (*data_size);
drivers/input/mouse/cyapa_gen5.c
1993
if (cyapa->electrodes_rx == cyapa->electrodes_x)
drivers/input/mouse/cyapa_gen5.c
1994
electrodes_tx = cyapa->electrodes_y;
drivers/input/mouse/cyapa_gen5.c
1996
electrodes_tx = cyapa->electrodes_x;
drivers/input/mouse/cyapa_gen5.c
1997
max_element_cnt = ((cyapa->aligned_electrodes_rx + 7) &
drivers/input/mouse/cyapa_gen5.c
2001
max_element_cnt = cyapa->electrodes_x +
drivers/input/mouse/cyapa_gen5.c
2002
cyapa->electrodes_y;
drivers/input/mouse/cyapa_gen5.c
2023
error = cyapa_i2c_pip_cmd_irq_sync(cyapa,
drivers/input/mouse/cyapa_gen5.c
2067
tmp_count < cyapa->aligned_electrodes_rx &&
drivers/input/mouse/cyapa_gen5.c
2101
if (tmp_count == cyapa->aligned_electrodes_rx) {
drivers/input/mouse/cyapa_gen5.c
2102
cyapa->electrodes_rx = cyapa->electrodes_rx ?
drivers/input/mouse/cyapa_gen5.c
2103
cyapa->electrodes_rx : electrodes_rx;
drivers/input/mouse/cyapa_gen5.c
2105
cyapa->electrodes_rx = cyapa->electrodes_rx ?
drivers/input/mouse/cyapa_gen5.c
2106
cyapa->electrodes_rx : electrodes_rx;
drivers/input/mouse/cyapa_gen5.c
2107
cyapa->aligned_electrodes_rx = electrodes_rx;
drivers/input/mouse/cyapa_gen5.c
2109
cyapa->electrodes_rx = cyapa->electrodes_rx ?
drivers/input/mouse/cyapa_gen5.c
2110
cyapa->electrodes_rx : electrodes_tx;
drivers/input/mouse/cyapa_gen5.c
2111
cyapa->aligned_electrodes_rx = tmp_count;
drivers/input/mouse/cyapa_gen5.c
2122
static int cyapa_gen5_read_mutual_idac_data(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen5.c
2133
error = cyapa_gen5_read_idac_data(cyapa,
drivers/input/mouse/cyapa_gen5.c
2141
error = cyapa_gen5_read_idac_data(cyapa,
drivers/input/mouse/cyapa_gen5.c
2149
static int cyapa_gen5_read_self_idac_data(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen5.c
2160
error = cyapa_gen5_read_idac_data(cyapa,
drivers/input/mouse/cyapa_gen5.c
2170
error = cyapa_gen5_read_idac_data(cyapa,
drivers/input/mouse/cyapa_gen5.c
2178
static ssize_t cyapa_gen5_execute_panel_scan(struct cyapa *cyapa)
drivers/input/mouse/cyapa_gen5.c
2193
error = cyapa_i2c_pip_cmd_irq_sync(cyapa,
drivers/input/mouse/cyapa_gen5.c
2206
static int cyapa_gen5_read_panel_scan_raw_data(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen5.c
2253
error = cyapa_i2c_pip_cmd_irq_sync(cyapa,
drivers/input/mouse/cyapa_gen5.c
2304
struct cyapa *cyapa = dev_get_drvdata(dev);
drivers/input/mouse/cyapa_gen5.c
2318
if (!cyapa_is_pip_app_mode(cyapa))
drivers/input/mouse/cyapa_gen5.c
2322
error = cyapa_pip_suspend_scanning(cyapa);
drivers/input/mouse/cyapa_gen5.c
2328
error = cyapa_gen5_read_mutual_idac_data(cyapa,
drivers/input/mouse/cyapa_gen5.c
2336
error = cyapa_gen5_read_self_idac_data(cyapa,
drivers/input/mouse/cyapa_gen5.c
2344
error = cyapa_gen5_execute_panel_scan(cyapa);
drivers/input/mouse/cyapa_gen5.c
2349
error = cyapa_gen5_read_panel_scan_raw_data(cyapa,
drivers/input/mouse/cyapa_gen5.c
2352
cyapa->electrodes_x * cyapa->electrodes_y,
drivers/input/mouse/cyapa_gen5.c
2360
error = cyapa_gen5_read_panel_scan_raw_data(cyapa,
drivers/input/mouse/cyapa_gen5.c
2363
cyapa->electrodes_x + cyapa->electrodes_y,
drivers/input/mouse/cyapa_gen5.c
2371
error = cyapa_gen5_read_panel_scan_raw_data(cyapa,
drivers/input/mouse/cyapa_gen5.c
2374
cyapa->electrodes_x * cyapa->electrodes_y,
drivers/input/mouse/cyapa_gen5.c
2382
error = cyapa_gen5_read_panel_scan_raw_data(cyapa,
drivers/input/mouse/cyapa_gen5.c
2385
cyapa->electrodes_x + cyapa->electrodes_y,
drivers/input/mouse/cyapa_gen5.c
2393
error = cyapa_gen5_read_panel_scan_raw_data(cyapa,
drivers/input/mouse/cyapa_gen5.c
2396
cyapa->electrodes_x * cyapa->electrodes_y,
drivers/input/mouse/cyapa_gen5.c
2404
error = cyapa_gen5_read_panel_scan_raw_data(cyapa,
drivers/input/mouse/cyapa_gen5.c
2407
cyapa->electrodes_x + cyapa->electrodes_y,
drivers/input/mouse/cyapa_gen5.c
2416
resume_error = cyapa_pip_resume_scanning(cyapa);
drivers/input/mouse/cyapa_gen5.c
2437
bool cyapa_pip_sort_system_info_data(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen5.c
2447
static int cyapa_gen5_bl_query_data(struct cyapa *cyapa)
drivers/input/mouse/cyapa_gen5.c
2454
error = cyapa_i2c_pip_cmd_irq_sync(cyapa,
drivers/input/mouse/cyapa_gen5.c
2462
memcpy(&cyapa->product_id[0], &resp_data[8], 5);
drivers/input/mouse/cyapa_gen5.c
2463
cyapa->product_id[5] = '-';
drivers/input/mouse/cyapa_gen5.c
2464
memcpy(&cyapa->product_id[6], &resp_data[13], 6);
drivers/input/mouse/cyapa_gen5.c
2465
cyapa->product_id[12] = '-';
drivers/input/mouse/cyapa_gen5.c
2466
memcpy(&cyapa->product_id[13], &resp_data[19], 2);
drivers/input/mouse/cyapa_gen5.c
2467
cyapa->product_id[15] = '\0';
drivers/input/mouse/cyapa_gen5.c
2469
cyapa->fw_maj_ver = resp_data[22];
drivers/input/mouse/cyapa_gen5.c
2470
cyapa->fw_min_ver = resp_data[23];
drivers/input/mouse/cyapa_gen5.c
2472
cyapa->platform_ver = (resp_data[26] >> PIP_BL_PLATFORM_VER_SHIFT) &
drivers/input/mouse/cyapa_gen5.c
2478
static int cyapa_gen5_get_query_data(struct cyapa *cyapa)
drivers/input/mouse/cyapa_gen5.c
2486
error = cyapa_i2c_pip_cmd_irq_sync(cyapa,
drivers/input/mouse/cyapa_gen5.c
2498
cyapa->platform_ver = (resp_data[49] >> PIP_BL_PLATFORM_VER_SHIFT) &
drivers/input/mouse/cyapa_gen5.c
2500
if (cyapa->gen == CYAPA_GEN5 && cyapa->platform_ver < 2) {
drivers/input/mouse/cyapa_gen5.c
2502
cyapa->fw_maj_ver = resp_data[15];
drivers/input/mouse/cyapa_gen5.c
2503
cyapa->fw_min_ver = resp_data[16];
drivers/input/mouse/cyapa_gen5.c
2505
cyapa->fw_maj_ver = resp_data[9];
drivers/input/mouse/cyapa_gen5.c
2506
cyapa->fw_min_ver = resp_data[10];
drivers/input/mouse/cyapa_gen5.c
2509
cyapa->electrodes_x = resp_data[52];
drivers/input/mouse/cyapa_gen5.c
2510
cyapa->electrodes_y = resp_data[53];
drivers/input/mouse/cyapa_gen5.c
2512
cyapa->physical_size_x = get_unaligned_le16(&resp_data[54]) / 100;
drivers/input/mouse/cyapa_gen5.c
2513
cyapa->physical_size_y = get_unaligned_le16(&resp_data[56]) / 100;
drivers/input/mouse/cyapa_gen5.c
2515
cyapa->max_abs_x = get_unaligned_le16(&resp_data[58]);
drivers/input/mouse/cyapa_gen5.c
2516
cyapa->max_abs_y = get_unaligned_le16(&resp_data[60]);
drivers/input/mouse/cyapa_gen5.c
2518
cyapa->max_z = get_unaligned_le16(&resp_data[62]);
drivers/input/mouse/cyapa_gen5.c
2520
cyapa->x_origin = resp_data[64] & 0x01;
drivers/input/mouse/cyapa_gen5.c
2521
cyapa->y_origin = resp_data[65] & 0x01;
drivers/input/mouse/cyapa_gen5.c
2523
cyapa->btn_capability = (resp_data[70] << 3) & CAPABILITY_BTN_MASK;
drivers/input/mouse/cyapa_gen5.c
2525
memcpy(&cyapa->product_id[0], &resp_data[33], 5);
drivers/input/mouse/cyapa_gen5.c
2526
cyapa->product_id[5] = '-';
drivers/input/mouse/cyapa_gen5.c
2527
memcpy(&cyapa->product_id[6], &resp_data[38], 6);
drivers/input/mouse/cyapa_gen5.c
2528
cyapa->product_id[12] = '-';
drivers/input/mouse/cyapa_gen5.c
2529
memcpy(&cyapa->product_id[13], &resp_data[44], 2);
drivers/input/mouse/cyapa_gen5.c
2530
cyapa->product_id[15] = '\0';
drivers/input/mouse/cyapa_gen5.c
2532
if (!cyapa->electrodes_x || !cyapa->electrodes_y ||
drivers/input/mouse/cyapa_gen5.c
2533
!cyapa->physical_size_x || !cyapa->physical_size_y ||
drivers/input/mouse/cyapa_gen5.c
2534
!cyapa->max_abs_x || !cyapa->max_abs_y || !cyapa->max_z)
drivers/input/mouse/cyapa_gen5.c
2540
static int cyapa_gen5_do_operational_check(struct cyapa *cyapa)
drivers/input/mouse/cyapa_gen5.c
2542
struct device *dev = &cyapa->client->dev;
drivers/input/mouse/cyapa_gen5.c
2545
if (cyapa->gen != CYAPA_GEN5)
drivers/input/mouse/cyapa_gen5.c
2548
switch (cyapa->state) {
drivers/input/mouse/cyapa_gen5.c
2550
error = cyapa_pip_bl_exit(cyapa);
drivers/input/mouse/cyapa_gen5.c
2553
cyapa_gen5_bl_query_data(cyapa);
drivers/input/mouse/cyapa_gen5.c
2557
cyapa->state = CYAPA_STATE_GEN5_APP;
drivers/input/mouse/cyapa_gen5.c
2567
error = cyapa_gen5_set_power_mode(cyapa,
drivers/input/mouse/cyapa_gen5.c
2574
if (cyapa->platform_ver >= 2) {
drivers/input/mouse/cyapa_gen5.c
2575
error = cyapa_pip_set_proximity(cyapa, true);
drivers/input/mouse/cyapa_gen5.c
2583
error = cyapa_gen5_get_query_data(cyapa);
drivers/input/mouse/cyapa_gen5.c
2587
if (memcmp(cyapa->product_id, product_id,
drivers/input/mouse/cyapa_gen5.c
2590
__func__, cyapa->product_id);
drivers/input/mouse/cyapa_gen5.c
2606
bool cyapa_pip_irq_cmd_handler(struct cyapa *cyapa)
drivers/input/mouse/cyapa_gen5.c
2608
struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip;
drivers/input/mouse/cyapa_gen5.c
2621
cyapa_i2c_pip_read(cyapa, pip->irq_cmd_buf,
drivers/input/mouse/cyapa_gen5.c
2627
cyapa_i2c_pip_read(cyapa,
drivers/input/mouse/cyapa_gen5.c
2630
pip->resp_sort_func(cyapa,
drivers/input/mouse/cyapa_gen5.c
2648
cyapa_empty_pip_output_data(cyapa,
drivers/input/mouse/cyapa_gen5.c
2674
static void cyapa_pip_report_buttons(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen5.c
2677
struct input_dev *input = cyapa->input;
drivers/input/mouse/cyapa_gen5.c
2682
if (cyapa->btn_capability & CAPABILITY_LEFT_BTN_MASK) {
drivers/input/mouse/cyapa_gen5.c
2686
if (cyapa->btn_capability & CAPABILITY_MIDDLE_BTN_MASK) {
drivers/input/mouse/cyapa_gen5.c
2690
if (cyapa->btn_capability & CAPABILITY_RIGHT_BTN_MASK) {
drivers/input/mouse/cyapa_gen5.c
2698
static void cyapa_pip_report_proximity(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen5.c
2701
struct input_dev *input = cyapa->input;
drivers/input/mouse/cyapa_gen5.c
2709
static void cyapa_pip_report_slot_data(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen5.c
2712
struct input_dev *input = cyapa->input;
drivers/input/mouse/cyapa_gen5.c
2723
if (cyapa->x_origin)
drivers/input/mouse/cyapa_gen5.c
2724
x = cyapa->max_abs_x - x;
drivers/input/mouse/cyapa_gen5.c
2726
if (cyapa->y_origin)
drivers/input/mouse/cyapa_gen5.c
2727
y = cyapa->max_abs_y - y;
drivers/input/mouse/cyapa_gen5.c
2747
static void cyapa_pip_report_touches(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen5.c
2750
struct input_dev *input = cyapa->input;
drivers/input/mouse/cyapa_gen5.c
2758
cyapa_pip_report_slot_data(cyapa,
drivers/input/mouse/cyapa_gen5.c
2765
int cyapa_pip_irq_handler(struct cyapa *cyapa)
drivers/input/mouse/cyapa_gen5.c
2767
struct device *dev = &cyapa->client->dev;
drivers/input/mouse/cyapa_gen5.c
2772
if (!cyapa_is_pip_app_mode(cyapa)) {
drivers/input/mouse/cyapa_gen5.c
2774
cyapa->gen, cyapa->state);
drivers/input/mouse/cyapa_gen5.c
2778
ret = cyapa_i2c_pip_read(cyapa, (u8 *)&report_data,
drivers/input/mouse/cyapa_gen5.c
2799
ret = cyapa_i2c_pip_read(cyapa, (u8 *)&report_data, report_len);
drivers/input/mouse/cyapa_gen5.c
2806
return cyapa_pip_event_process(cyapa, &report_data);
drivers/input/mouse/cyapa_gen5.c
2809
static int cyapa_pip_event_process(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen5.c
2812
struct device *dev = &cyapa->client->dev;
drivers/input/mouse/cyapa_gen5.c
2874
cyapa_pip_report_touches(cyapa, report_data);
drivers/input/mouse/cyapa_gen5.c
2876
cyapa_pip_report_proximity(cyapa, report_data);
drivers/input/mouse/cyapa_gen5.c
2878
cyapa_pip_report_buttons(cyapa, report_data);
drivers/input/mouse/cyapa_gen5.c
2883
int cyapa_pip_bl_activate(struct cyapa *cyapa) { return 0; }
drivers/input/mouse/cyapa_gen5.c
2884
int cyapa_pip_bl_deactivate(struct cyapa *cyapa) { return 0; }
drivers/input/mouse/cyapa_gen5.c
345
static int cyapa_pip_event_process(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen5.c
348
int cyapa_pip_cmd_state_initialize(struct cyapa *cyapa)
drivers/input/mouse/cyapa_gen5.c
350
struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip;
drivers/input/mouse/cyapa_gen5.c
364
cyapa->dev_pwr_mode = UNINIT_PWR_MODE;
drivers/input/mouse/cyapa_gen5.c
365
cyapa->dev_sleep_time = UNINIT_SLEEP_TIME;
drivers/input/mouse/cyapa_gen5.c
371
ssize_t cyapa_i2c_pip_read(struct cyapa *cyapa, u8 *buf, size_t size)
drivers/input/mouse/cyapa_gen5.c
381
ret = i2c_master_recv(cyapa->client, buf, size);
drivers/input/mouse/cyapa_gen5.c
391
ssize_t cyapa_i2c_pip_write(struct cyapa *cyapa, u8 *buf, size_t size)
drivers/input/mouse/cyapa_gen5.c
398
ret = i2c_master_send(cyapa->client, buf, size);
drivers/input/mouse/cyapa_gen5.c
406
static void cyapa_set_pip_pm_state(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen5.c
409
struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip;
drivers/input/mouse/cyapa_gen5.c
416
static void cyapa_reset_pip_pm_state(struct cyapa *cyapa)
drivers/input/mouse/cyapa_gen5.c
418
struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip;
drivers/input/mouse/cyapa_gen5.c
426
static enum cyapa_pm_stage cyapa_get_pip_pm_state(struct cyapa *cyapa)
drivers/input/mouse/cyapa_gen5.c
428
struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip;
drivers/input/mouse/cyapa_gen5.c
442
int cyapa_empty_pip_output_data(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen5.c
445
struct input_dev *input = cyapa->input;
drivers/input/mouse/cyapa_gen5.c
446
struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip;
drivers/input/mouse/cyapa_gen5.c
447
enum cyapa_pm_stage pm_stage = cyapa_get_pip_pm_state(cyapa);
drivers/input/mouse/cyapa_gen5.c
479
error = cyapa_i2c_pip_read(cyapa, pip->empty_buf,
drivers/input/mouse/cyapa_gen5.c
495
func(cyapa, pip->empty_buf, length)) {
drivers/input/mouse/cyapa_gen5.c
505
error = cyapa_i2c_pip_read(cyapa, pip->empty_buf, length);
drivers/input/mouse/cyapa_gen5.c
515
func(cyapa, pip->empty_buf, length)) {
drivers/input/mouse/cyapa_gen5.c
521
} else if (cyapa->operational &&
drivers/input/mouse/cyapa_gen5.c
526
cyapa_pip_event_process(cyapa,
drivers/input/mouse/cyapa_gen5.c
537
struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen5.c
541
struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip;
drivers/input/mouse/cyapa_gen5.c
548
error = cyapa_i2c_pip_write(cyapa, cmd, cmd_len);
drivers/input/mouse/cyapa_gen5.c
566
struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen5.c
572
struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip;
drivers/input/mouse/cyapa_gen5.c
578
error = cyapa_i2c_pip_write(cyapa, cmd, cmd_len);
drivers/input/mouse/cyapa_gen5.c
590
error = cyapa_empty_pip_output_data(cyapa,
drivers/input/mouse/cyapa_gen5.c
606
struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen5.c
613
struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip;
drivers/input/mouse/cyapa_gen5.c
641
error = cyapa_do_i2c_pip_cmd_irq_sync(cyapa, cmd, cmd_len,
drivers/input/mouse/cyapa_gen5.c
650
error = cyapa_empty_pip_output_data(cyapa,
drivers/input/mouse/cyapa_gen5.c
657
error = cyapa_do_i2c_pip_cmd_polling(cyapa, cmd, cmd_len,
drivers/input/mouse/cyapa_gen5.c
670
bool cyapa_sort_tsg_pip_bl_resp_data(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen5.c
685
bool cyapa_sort_tsg_pip_app_resp_data(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen5.c
688
struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip;
drivers/input/mouse/cyapa_gen5.c
712
static bool cyapa_sort_pip_application_launch_data(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen5.c
728
static bool cyapa_sort_gen5_hid_descriptor_data(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen5.c
756
static bool cyapa_sort_pip_deep_sleep_data(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen5.c
768
static int gen5_idle_state_parse(struct cyapa *cyapa)
drivers/input/mouse/cyapa_gen5.c
781
cyapa_empty_pip_output_data(cyapa, NULL, NULL, NULL);
drivers/input/mouse/cyapa_gen5.c
784
ret = cyapa_i2c_pip_read(cyapa, resp_data, 3);
drivers/input/mouse/cyapa_gen5.c
791
cyapa->gen = CYAPA_GEN5;
drivers/input/mouse/cyapa_gen5.c
793
cyapa_empty_pip_output_data(cyapa, NULL, NULL, NULL);
drivers/input/mouse/cyapa_gen5.c
799
error = cyapa_i2c_pip_cmd_irq_sync(cyapa,
drivers/input/mouse/cyapa_gen5.c
817
cyapa->state = CYAPA_STATE_GEN5_BL;
drivers/input/mouse/cyapa_gen5.c
824
cyapa->state = CYAPA_STATE_GEN5_APP;
drivers/input/mouse/cyapa_gen5.c
827
cyapa->state = CYAPA_STATE_NO_DEVICE;
drivers/input/mouse/cyapa_gen5.c
834
static int gen5_hid_description_header_parse(struct cyapa *cyapa, u8 *reg_data)
drivers/input/mouse/cyapa_gen5.c
848
ret = cyapa_i2c_pip_read(cyapa, resp_data,
drivers/input/mouse/cyapa_gen5.c
861
cyapa->gen = CYAPA_GEN5;
drivers/input/mouse/cyapa_gen5.c
862
cyapa->state = CYAPA_STATE_GEN5_BL;
drivers/input/mouse/cyapa_gen5.c
868
cyapa->gen = CYAPA_GEN5;
drivers/input/mouse/cyapa_gen5.c
869
cyapa->state = CYAPA_STATE_GEN5_APP;
drivers/input/mouse/cyapa_gen5.c
875
cyapa->gen = CYAPA_GEN5;
drivers/input/mouse/cyapa_gen5.c
876
cyapa->state = CYAPA_STATE_GEN5_BL;
drivers/input/mouse/cyapa_gen5.c
882
cyapa->gen = CYAPA_GEN5;
drivers/input/mouse/cyapa_gen5.c
883
cyapa->state = CYAPA_STATE_GEN5_APP;
drivers/input/mouse/cyapa_gen5.c
886
cyapa->state = CYAPA_STATE_NO_DEVICE;
drivers/input/mouse/cyapa_gen5.c
892
static int gen5_report_data_header_parse(struct cyapa *cyapa, u8 *reg_data)
drivers/input/mouse/cyapa_gen5.c
918
cyapa->gen = CYAPA_GEN5;
drivers/input/mouse/cyapa_gen5.c
919
cyapa->state = CYAPA_STATE_GEN5_APP;
drivers/input/mouse/cyapa_gen5.c
923
static int gen5_cmd_resp_header_parse(struct cyapa *cyapa, u8 *reg_data)
drivers/input/mouse/cyapa_gen5.c
925
struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip;
drivers/input/mouse/cyapa_gen5.c
935
ret = cyapa_i2c_pip_read(cyapa, pip->empty_buf, length);
drivers/input/mouse/cyapa_gen5.c
944
cyapa->gen = CYAPA_GEN5;
drivers/input/mouse/cyapa_gen5.c
945
cyapa->state = CYAPA_STATE_GEN5_BL;
drivers/input/mouse/cyapa_gen5.c
948
cyapa->gen = CYAPA_GEN5;
drivers/input/mouse/cyapa_gen5.c
949
cyapa->state = CYAPA_STATE_GEN5_APP;
drivers/input/mouse/cyapa_gen5.c
960
cyapa->gen = CYAPA_GEN5;
drivers/input/mouse/cyapa_gen5.c
961
cyapa->state = CYAPA_STATE_GEN5_BL;
drivers/input/mouse/cyapa_gen5.c
967
cyapa->gen = CYAPA_GEN5;
drivers/input/mouse/cyapa_gen5.c
968
cyapa->state = CYAPA_STATE_GEN5_APP;
drivers/input/mouse/cyapa_gen5.c
971
cyapa->state = CYAPA_STATE_NO_DEVICE;
drivers/input/mouse/cyapa_gen5.c
977
static int cyapa_gen5_state_parse(struct cyapa *cyapa, u8 *reg_data, int len)
drivers/input/mouse/cyapa_gen5.c
984
cyapa->state = CYAPA_STATE_NO_DEVICE;
drivers/input/mouse/cyapa_gen5.c
989
gen5_idle_state_parse(cyapa);
drivers/input/mouse/cyapa_gen5.c
993
gen5_hid_description_header_parse(cyapa, reg_data);
drivers/input/mouse/cyapa_gen5.c
998
cyapa->gen = CYAPA_GEN5;
drivers/input/mouse/cyapa_gen5.c
999
cyapa->state = CYAPA_STATE_GEN5_APP;
drivers/input/mouse/cyapa_gen6.c
116
error = cyapa_i2c_pip_cmd_irq_sync(cyapa,
drivers/input/mouse/cyapa_gen6.c
136
int cyapa_pip_state_parse(struct cyapa *cyapa, u8 *reg_data, int len)
drivers/input/mouse/cyapa_gen6.c
145
cyapa->state = CYAPA_STATE_NO_DEVICE;
drivers/input/mouse/cyapa_gen6.c
148
cyapa_pip_deep_sleep(cyapa, PIP_DEEP_SLEEP_STATE_ON);
drivers/input/mouse/cyapa_gen6.c
151
cyapa_empty_pip_output_data(cyapa, NULL, NULL, NULL);
drivers/input/mouse/cyapa_gen6.c
158
error = cyapa_i2c_pip_cmd_irq_sync(cyapa,
drivers/input/mouse/cyapa_gen6.c
176
error = cyapa_get_pip_fixed_info(cyapa, &pip_info, is_bootloader);
drivers/input/mouse/cyapa_gen6.c
181
cyapa->gen = CYAPA_GEN6;
drivers/input/mouse/cyapa_gen6.c
182
cyapa->state = is_bootloader ? CYAPA_STATE_GEN6_BL
drivers/input/mouse/cyapa_gen6.c
186
cyapa->gen = CYAPA_GEN5;
drivers/input/mouse/cyapa_gen6.c
187
cyapa->state = is_bootloader ? CYAPA_STATE_GEN5_BL
drivers/input/mouse/cyapa_gen6.c
194
static int cyapa_gen6_read_sys_info(struct cyapa *cyapa)
drivers/input/mouse/cyapa_gen6.c
204
error = cyapa_i2c_pip_cmd_irq_sync(cyapa,
drivers/input/mouse/cyapa_gen6.c
216
cyapa->platform_ver = (resp_data[67] >> PIP_BL_PLATFORM_VER_SHIFT) &
drivers/input/mouse/cyapa_gen6.c
218
cyapa->fw_maj_ver = resp_data[9];
drivers/input/mouse/cyapa_gen6.c
219
cyapa->fw_min_ver = resp_data[10];
drivers/input/mouse/cyapa_gen6.c
221
cyapa->electrodes_x = resp_data[33];
drivers/input/mouse/cyapa_gen6.c
222
cyapa->electrodes_y = resp_data[34];
drivers/input/mouse/cyapa_gen6.c
224
cyapa->physical_size_x = get_unaligned_le16(&resp_data[35]) / 100;
drivers/input/mouse/cyapa_gen6.c
225
cyapa->physical_size_y = get_unaligned_le16(&resp_data[37]) / 100;
drivers/input/mouse/cyapa_gen6.c
227
cyapa->max_abs_x = get_unaligned_le16(&resp_data[39]);
drivers/input/mouse/cyapa_gen6.c
228
cyapa->max_abs_y = get_unaligned_le16(&resp_data[41]);
drivers/input/mouse/cyapa_gen6.c
230
cyapa->max_z = get_unaligned_le16(&resp_data[43]);
drivers/input/mouse/cyapa_gen6.c
232
cyapa->x_origin = resp_data[45] & 0x01;
drivers/input/mouse/cyapa_gen6.c
233
cyapa->y_origin = resp_data[46] & 0x01;
drivers/input/mouse/cyapa_gen6.c
235
cyapa->btn_capability = (resp_data[70] << 3) & CAPABILITY_BTN_MASK;
drivers/input/mouse/cyapa_gen6.c
237
memcpy(&cyapa->product_id[0], &resp_data[51], 5);
drivers/input/mouse/cyapa_gen6.c
238
cyapa->product_id[5] = '-';
drivers/input/mouse/cyapa_gen6.c
239
memcpy(&cyapa->product_id[6], &resp_data[56], 6);
drivers/input/mouse/cyapa_gen6.c
240
cyapa->product_id[12] = '-';
drivers/input/mouse/cyapa_gen6.c
241
memcpy(&cyapa->product_id[13], &resp_data[62], 2);
drivers/input/mouse/cyapa_gen6.c
242
cyapa->product_id[15] = '\0';
drivers/input/mouse/cyapa_gen6.c
246
cyapa->electrodes_rx =
drivers/input/mouse/cyapa_gen6.c
247
rotat_align ? cyapa->electrodes_y : cyapa->electrodes_x;
drivers/input/mouse/cyapa_gen6.c
248
cyapa->aligned_electrodes_rx = (cyapa->electrodes_rx + 3) & ~3u;
drivers/input/mouse/cyapa_gen6.c
250
if (!cyapa->electrodes_x || !cyapa->electrodes_y ||
drivers/input/mouse/cyapa_gen6.c
251
!cyapa->physical_size_x || !cyapa->physical_size_y ||
drivers/input/mouse/cyapa_gen6.c
252
!cyapa->max_abs_x || !cyapa->max_abs_y || !cyapa->max_z)
drivers/input/mouse/cyapa_gen6.c
258
static int cyapa_gen6_bl_read_app_info(struct cyapa *cyapa)
drivers/input/mouse/cyapa_gen6.c
265
error = cyapa_i2c_pip_cmd_irq_sync(cyapa,
drivers/input/mouse/cyapa_gen6.c
273
cyapa->fw_maj_ver = resp_data[8];
drivers/input/mouse/cyapa_gen6.c
274
cyapa->fw_min_ver = resp_data[9];
drivers/input/mouse/cyapa_gen6.c
276
cyapa->platform_ver = (resp_data[12] >> PIP_BL_PLATFORM_VER_SHIFT) &
drivers/input/mouse/cyapa_gen6.c
279
memcpy(&cyapa->product_id[0], &resp_data[13], 5);
drivers/input/mouse/cyapa_gen6.c
280
cyapa->product_id[5] = '-';
drivers/input/mouse/cyapa_gen6.c
281
memcpy(&cyapa->product_id[6], &resp_data[18], 6);
drivers/input/mouse/cyapa_gen6.c
282
cyapa->product_id[12] = '-';
drivers/input/mouse/cyapa_gen6.c
283
memcpy(&cyapa->product_id[13], &resp_data[24], 2);
drivers/input/mouse/cyapa_gen6.c
284
cyapa->product_id[15] = '\0';
drivers/input/mouse/cyapa_gen6.c
290
static int cyapa_gen6_config_dev_irq(struct cyapa *cyapa, u8 cmd_code)
drivers/input/mouse/cyapa_gen6.c
298
error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cmd, sizeof(cmd),
drivers/input/mouse/cyapa_gen6.c
309
static int cyapa_gen6_set_proximity(struct cyapa *cyapa, bool enable)
drivers/input/mouse/cyapa_gen6.c
313
cyapa_gen6_config_dev_irq(cyapa, GEN6_DISABLE_CMD_IRQ);
drivers/input/mouse/cyapa_gen6.c
314
error = cyapa_pip_set_proximity(cyapa, enable);
drivers/input/mouse/cyapa_gen6.c
315
cyapa_gen6_config_dev_irq(cyapa, GEN6_ENABLE_CMD_IRQ);
drivers/input/mouse/cyapa_gen6.c
320
static int cyapa_gen6_change_power_state(struct cyapa *cyapa, u8 power_mode)
drivers/input/mouse/cyapa_gen6.c
328
error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cmd, sizeof(cmd),
drivers/input/mouse/cyapa_gen6.c
341
static int cyapa_gen6_set_interval_setting(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen6.c
372
error = cyapa_i2c_pip_cmd_irq_sync(cyapa,
drivers/input/mouse/cyapa_gen6.c
388
static int cyapa_gen6_get_interval_setting(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen6.c
398
error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cmd, sizeof(cmd),
drivers/input/mouse/cyapa_gen6.c
412
static int cyapa_gen6_deep_sleep(struct cyapa *cyapa, u8 state)
drivers/input/mouse/cyapa_gen6.c
422
cyapa_i2c_pip_write(cyapa, ping, sizeof(ping));
drivers/input/mouse/cyapa_gen6.c
424
return cyapa_pip_deep_sleep(cyapa, state);
drivers/input/mouse/cyapa_gen6.c
427
static int cyapa_gen6_set_power_mode(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen6.c
430
struct device *dev = &cyapa->client->dev;
drivers/input/mouse/cyapa_gen6.c
432
&cyapa->gen6_interval_setting;
drivers/input/mouse/cyapa_gen6.c
436
if (cyapa->state != CYAPA_STATE_GEN6_APP)
drivers/input/mouse/cyapa_gen6.c
439
if (PIP_DEV_GET_PWR_STATE(cyapa) == UNINIT_PWR_MODE) {
drivers/input/mouse/cyapa_gen6.c
445
PIP_DEV_SET_PWR_STATE(cyapa, PWR_MODE_OFF);
drivers/input/mouse/cyapa_gen6.c
448
if (PIP_DEV_UNINIT_SLEEP_TIME(cyapa) &&
drivers/input/mouse/cyapa_gen6.c
449
PIP_DEV_GET_PWR_STATE(cyapa) != PWR_MODE_OFF)
drivers/input/mouse/cyapa_gen6.c
450
PIP_DEV_SET_SLEEP_TIME(cyapa, UNINIT_SLEEP_TIME);
drivers/input/mouse/cyapa_gen6.c
452
if (PIP_DEV_GET_PWR_STATE(cyapa) == power_mode) {
drivers/input/mouse/cyapa_gen6.c
456
PIP_DEV_GET_SLEEP_TIME(cyapa) == sleep_time) {
drivers/input/mouse/cyapa_gen6.c
463
cyapa_gen6_config_dev_irq(cyapa, GEN6_DISABLE_CMD_IRQ);
drivers/input/mouse/cyapa_gen6.c
465
error = cyapa_gen6_deep_sleep(cyapa, PIP_DEEP_SLEEP_STATE_OFF);
drivers/input/mouse/cyapa_gen6.c
471
PIP_DEV_SET_PWR_STATE(cyapa, PWR_MODE_OFF);
drivers/input/mouse/cyapa_gen6.c
480
if (PIP_DEV_GET_PWR_STATE(cyapa) == PWR_MODE_OFF) {
drivers/input/mouse/cyapa_gen6.c
481
error = cyapa_gen6_deep_sleep(cyapa, PIP_DEEP_SLEEP_STATE_ON);
drivers/input/mouse/cyapa_gen6.c
492
cyapa_gen6_config_dev_irq(cyapa, GEN6_DISABLE_CMD_IRQ);
drivers/input/mouse/cyapa_gen6.c
495
error = cyapa_gen6_change_power_state(cyapa,
drivers/input/mouse/cyapa_gen6.c
502
PIP_DEV_SET_PWR_STATE(cyapa, PWR_MODE_FULL_ACTIVE);
drivers/input/mouse/cyapa_gen6.c
505
cyapa_gen6_get_interval_setting(cyapa, interval_setting);
drivers/input/mouse/cyapa_gen6.c
508
error = cyapa_gen6_change_power_state(cyapa,
drivers/input/mouse/cyapa_gen6.c
515
PIP_DEV_SET_PWR_STATE(cyapa, PWR_MODE_BTN_ONLY);
drivers/input/mouse/cyapa_gen6.c
534
cyapa_gen6_set_interval_setting(cyapa,
drivers/input/mouse/cyapa_gen6.c
538
error = cyapa_gen6_change_power_state(cyapa, lp_mode);
drivers/input/mouse/cyapa_gen6.c
545
PIP_DEV_SET_SLEEP_TIME(cyapa, sleep_time);
drivers/input/mouse/cyapa_gen6.c
546
PIP_DEV_SET_PWR_STATE(cyapa,
drivers/input/mouse/cyapa_gen6.c
551
cyapa_gen6_config_dev_irq(cyapa, GEN6_ENABLE_CMD_IRQ);
drivers/input/mouse/cyapa_gen6.c
555
static int cyapa_gen6_initialize(struct cyapa *cyapa)
drivers/input/mouse/cyapa_gen6.c
560
static int cyapa_pip_retrieve_data_structure(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen6.c
584
error = cyapa_i2c_pip_cmd_irq_sync(cyapa,
drivers/input/mouse/cyapa_gen6.c
608
struct cyapa *cyapa = dev_get_drvdata(dev);
drivers/input/mouse/cyapa_gen6.c
616
if (!cyapa_is_pip_app_mode(cyapa))
drivers/input/mouse/cyapa_gen6.c
620
error = cyapa_pip_suspend_scanning(cyapa);
drivers/input/mouse/cyapa_gen6.c
626
error = cyapa_pip_retrieve_data_structure(cyapa, 0, data_len,
drivers/input/mouse/cyapa_gen6.c
643
error = cyapa_pip_retrieve_data_structure(cyapa, 0, data_len,
drivers/input/mouse/cyapa_gen6.c
656
resume_error = cyapa_pip_resume_scanning(cyapa);
drivers/input/mouse/cyapa_gen6.c
665
static int cyapa_gen6_operational_check(struct cyapa *cyapa)
drivers/input/mouse/cyapa_gen6.c
667
struct device *dev = &cyapa->client->dev;
drivers/input/mouse/cyapa_gen6.c
670
if (cyapa->gen != CYAPA_GEN6)
drivers/input/mouse/cyapa_gen6.c
673
switch (cyapa->state) {
drivers/input/mouse/cyapa_gen6.c
675
error = cyapa_pip_bl_exit(cyapa);
drivers/input/mouse/cyapa_gen6.c
678
cyapa_gen6_bl_read_app_info(cyapa);
drivers/input/mouse/cyapa_gen6.c
682
cyapa->state = CYAPA_STATE_GEN6_APP;
drivers/input/mouse/cyapa_gen6.c
692
error = cyapa_gen6_set_power_mode(cyapa,
drivers/input/mouse/cyapa_gen6.c
699
error = cyapa_pip_set_proximity(cyapa, true);
drivers/input/mouse/cyapa_gen6.c
705
error = cyapa_gen6_read_sys_info(cyapa);
drivers/input/mouse/cyapa_gen6.c
709
if (memcmp(cyapa->product_id, product_id,
drivers/input/mouse/cyapa_gen6.c
712
__func__, cyapa->product_id);
drivers/input/mouse/cyapa_gen6.c
75
static bool cyapa_sort_pip_hid_descriptor_data(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen6.c
88
static int cyapa_get_pip_fixed_info(struct cyapa *cyapa,
drivers/input/mouse/cyapa_gen6.c
99
error = cyapa_i2c_pip_cmd_irq_sync(cyapa,