cyapa 42 drivers/input/mouse/cyapa.c static int cyapa_reinitialize(struct cyapa *cyapa); cyapa 44 drivers/input/mouse/cyapa.c bool cyapa_is_pip_bl_mode(struct cyapa *cyapa) cyapa 46 drivers/input/mouse/cyapa.c if (cyapa->gen == CYAPA_GEN6 && cyapa->state == CYAPA_STATE_GEN6_BL) cyapa 49 drivers/input/mouse/cyapa.c if (cyapa->gen == CYAPA_GEN5 && cyapa->state == CYAPA_STATE_GEN5_BL) cyapa 55 drivers/input/mouse/cyapa.c bool cyapa_is_pip_app_mode(struct cyapa *cyapa) cyapa 57 drivers/input/mouse/cyapa.c if (cyapa->gen == CYAPA_GEN6 && cyapa->state == CYAPA_STATE_GEN6_APP) cyapa 60 drivers/input/mouse/cyapa.c if (cyapa->gen == CYAPA_GEN5 && cyapa->state == CYAPA_STATE_GEN5_APP) cyapa 66 drivers/input/mouse/cyapa.c static bool cyapa_is_bootloader_mode(struct cyapa *cyapa) cyapa 68 drivers/input/mouse/cyapa.c if (cyapa_is_pip_bl_mode(cyapa)) cyapa 71 drivers/input/mouse/cyapa.c if (cyapa->gen == CYAPA_GEN3 && cyapa 72 drivers/input/mouse/cyapa.c cyapa->state >= CYAPA_STATE_BL_BUSY && cyapa 73 drivers/input/mouse/cyapa.c cyapa->state <= CYAPA_STATE_BL_ACTIVE) cyapa 79 drivers/input/mouse/cyapa.c static inline bool cyapa_is_operational_mode(struct cyapa *cyapa) cyapa 81 drivers/input/mouse/cyapa.c if (cyapa_is_pip_app_mode(cyapa)) cyapa 84 drivers/input/mouse/cyapa.c if (cyapa->gen == CYAPA_GEN3 && cyapa->state == CYAPA_STATE_OP) cyapa 91 drivers/input/mouse/cyapa.c static ssize_t cyapa_i2c_read(struct cyapa *cyapa, u8 reg, size_t len, cyapa 94 drivers/input/mouse/cyapa.c struct i2c_client *client = cyapa->client; cyapa 128 drivers/input/mouse/cyapa.c static int cyapa_i2c_write(struct cyapa *cyapa, u8 reg, cyapa 131 drivers/input/mouse/cyapa.c struct i2c_client *client = cyapa->client; cyapa 164 drivers/input/mouse/cyapa.c static int cyapa_get_state(struct cyapa *cyapa) cyapa 169 drivers/input/mouse/cyapa.c bool even_addr = ((cyapa->client->addr & 0x0001) == 0); cyapa 174 drivers/input/mouse/cyapa.c cyapa->state = CYAPA_STATE_NO_DEVICE; cyapa 182 drivers/input/mouse/cyapa.c error = cyapa_i2c_reg_read_block(cyapa, BL_HEAD_OFFSET, BL_STATUS_SIZE, cyapa 190 drivers/input/mouse/cyapa.c if (cyapa->smbus && (error == -ETIMEDOUT || error == -ENXIO)) { cyapa 192 drivers/input/mouse/cyapa.c error = cyapa_read_block(cyapa, cyapa 204 drivers/input/mouse/cyapa.c cyapa->status[REG_OP_STATUS] = status[REG_OP_STATUS]; cyapa 205 drivers/input/mouse/cyapa.c cyapa->status[REG_BL_STATUS] = status[REG_BL_STATUS]; cyapa 206 drivers/input/mouse/cyapa.c cyapa->status[REG_BL_ERROR] = status[REG_BL_ERROR]; cyapa 208 drivers/input/mouse/cyapa.c if (cyapa->gen == CYAPA_GEN_UNKNOWN || cyapa 209 drivers/input/mouse/cyapa.c cyapa->gen == CYAPA_GEN3) { cyapa 210 drivers/input/mouse/cyapa.c error = cyapa_gen3_ops.state_parse(cyapa, cyapa 215 drivers/input/mouse/cyapa.c if (cyapa->gen == CYAPA_GEN_UNKNOWN || cyapa 216 drivers/input/mouse/cyapa.c cyapa->gen == CYAPA_GEN6 || cyapa 217 drivers/input/mouse/cyapa.c cyapa->gen == CYAPA_GEN5) { cyapa 218 drivers/input/mouse/cyapa.c error = cyapa_pip_state_parse(cyapa, cyapa 224 drivers/input/mouse/cyapa.c if ((cyapa->gen == CYAPA_GEN_UNKNOWN || cyapa 225 drivers/input/mouse/cyapa.c cyapa->gen == CYAPA_GEN5) && cyapa 227 drivers/input/mouse/cyapa.c error = cyapa_gen5_ops.state_parse(cyapa, cyapa 240 drivers/input/mouse/cyapa.c error = cyapa_i2c_write(cyapa, 0, 2, cmd); cyapa 246 drivers/input/mouse/cyapa.c error = cyapa_i2c_read(cyapa, BL_HEAD_OFFSET, cyapa 256 drivers/input/mouse/cyapa.c if (cyapa->state <= CYAPA_STATE_BL_BUSY) cyapa 279 drivers/input/mouse/cyapa.c int cyapa_poll_state(struct cyapa *cyapa, unsigned int timeout) cyapa 285 drivers/input/mouse/cyapa.c error = cyapa_get_state(cyapa); cyapa 286 drivers/input/mouse/cyapa.c if (!error && cyapa->state > CYAPA_STATE_BL_BUSY) cyapa 311 drivers/input/mouse/cyapa.c static int cyapa_check_is_operational(struct cyapa *cyapa) cyapa 315 drivers/input/mouse/cyapa.c error = cyapa_poll_state(cyapa, 4000); cyapa 319 drivers/input/mouse/cyapa.c switch (cyapa->gen) { cyapa 321 drivers/input/mouse/cyapa.c cyapa->ops = &cyapa_gen6_ops; cyapa 324 drivers/input/mouse/cyapa.c cyapa->ops = &cyapa_gen5_ops; cyapa 327 drivers/input/mouse/cyapa.c cyapa->ops = &cyapa_gen3_ops; cyapa 333 drivers/input/mouse/cyapa.c error = cyapa->ops->operational_check(cyapa); cyapa 334 drivers/input/mouse/cyapa.c if (!error && cyapa_is_operational_mode(cyapa)) cyapa 335 drivers/input/mouse/cyapa.c cyapa->operational = true; cyapa 337 drivers/input/mouse/cyapa.c cyapa->operational = false; cyapa 348 drivers/input/mouse/cyapa.c static int cyapa_detect(struct cyapa *cyapa) cyapa 350 drivers/input/mouse/cyapa.c struct device *dev = &cyapa->client->dev; cyapa 353 drivers/input/mouse/cyapa.c error = cyapa_check_is_operational(cyapa); cyapa 356 drivers/input/mouse/cyapa.c cyapa_is_bootloader_mode(cyapa)) { cyapa 370 drivers/input/mouse/cyapa.c struct cyapa *cyapa = input_get_drvdata(input); cyapa 371 drivers/input/mouse/cyapa.c struct i2c_client *client = cyapa->client; cyapa 375 drivers/input/mouse/cyapa.c error = mutex_lock_interruptible(&cyapa->state_sync_lock); cyapa 379 drivers/input/mouse/cyapa.c if (cyapa->operational) { cyapa 385 drivers/input/mouse/cyapa.c error = cyapa->ops->set_power_mode(cyapa, cyapa 392 drivers/input/mouse/cyapa.c error = cyapa_reinitialize(cyapa); cyapa 393 drivers/input/mouse/cyapa.c if (error || !cyapa->operational) { cyapa 409 drivers/input/mouse/cyapa.c mutex_unlock(&cyapa->state_sync_lock); cyapa 415 drivers/input/mouse/cyapa.c struct cyapa *cyapa = input_get_drvdata(input); cyapa 416 drivers/input/mouse/cyapa.c struct i2c_client *client = cyapa->client; cyapa 417 drivers/input/mouse/cyapa.c struct device *dev = &cyapa->client->dev; cyapa 419 drivers/input/mouse/cyapa.c mutex_lock(&cyapa->state_sync_lock); cyapa 426 drivers/input/mouse/cyapa.c if (cyapa->operational) cyapa 427 drivers/input/mouse/cyapa.c cyapa->ops->set_power_mode(cyapa, cyapa 430 drivers/input/mouse/cyapa.c mutex_unlock(&cyapa->state_sync_lock); cyapa 433 drivers/input/mouse/cyapa.c static int cyapa_create_input_dev(struct cyapa *cyapa) cyapa 435 drivers/input/mouse/cyapa.c struct device *dev = &cyapa->client->dev; cyapa 439 drivers/input/mouse/cyapa.c if (!cyapa->physical_size_x || !cyapa->physical_size_y) cyapa 449 drivers/input/mouse/cyapa.c input->phys = cyapa->phys; cyapa 453 drivers/input/mouse/cyapa.c input->dev.parent = &cyapa->client->dev; cyapa 458 drivers/input/mouse/cyapa.c input_set_drvdata(input, cyapa); cyapa 463 drivers/input/mouse/cyapa.c input_set_abs_params(input, ABS_MT_POSITION_X, 0, cyapa->max_abs_x, 0, cyapa 465 drivers/input/mouse/cyapa.c input_set_abs_params(input, ABS_MT_POSITION_Y, 0, cyapa->max_abs_y, 0, cyapa 467 drivers/input/mouse/cyapa.c input_set_abs_params(input, ABS_MT_PRESSURE, 0, cyapa->max_z, 0, 0); cyapa 468 drivers/input/mouse/cyapa.c if (cyapa->gen > CYAPA_GEN3) { cyapa 485 drivers/input/mouse/cyapa.c if (cyapa->gen >= CYAPA_GEN5) { cyapa 492 drivers/input/mouse/cyapa.c cyapa->max_abs_x / cyapa->physical_size_x); cyapa 494 drivers/input/mouse/cyapa.c cyapa->max_abs_y / cyapa->physical_size_y); cyapa 496 drivers/input/mouse/cyapa.c if (cyapa->btn_capability & CAPABILITY_LEFT_BTN_MASK) cyapa 498 drivers/input/mouse/cyapa.c if (cyapa->btn_capability & CAPABILITY_MIDDLE_BTN_MASK) cyapa 500 drivers/input/mouse/cyapa.c if (cyapa->btn_capability & CAPABILITY_RIGHT_BTN_MASK) cyapa 503 drivers/input/mouse/cyapa.c if (cyapa->btn_capability == CAPABILITY_LEFT_BTN_MASK) cyapa 521 drivers/input/mouse/cyapa.c cyapa->input = input; cyapa 525 drivers/input/mouse/cyapa.c static void cyapa_enable_irq_for_cmd(struct cyapa *cyapa) cyapa 527 drivers/input/mouse/cyapa.c struct input_dev *input = cyapa->input; cyapa 536 drivers/input/mouse/cyapa.c if (!input || cyapa->operational) cyapa 537 drivers/input/mouse/cyapa.c cyapa->ops->set_power_mode(cyapa, cyapa 540 drivers/input/mouse/cyapa.c if (cyapa->gen >= CYAPA_GEN5) cyapa 541 drivers/input/mouse/cyapa.c enable_irq(cyapa->client->irq); cyapa 545 drivers/input/mouse/cyapa.c static void cyapa_disable_irq_for_cmd(struct cyapa *cyapa) cyapa 547 drivers/input/mouse/cyapa.c struct input_dev *input = cyapa->input; cyapa 550 drivers/input/mouse/cyapa.c if (cyapa->gen >= CYAPA_GEN5) cyapa 551 drivers/input/mouse/cyapa.c disable_irq(cyapa->client->irq); cyapa 552 drivers/input/mouse/cyapa.c if (!input || cyapa->operational) cyapa 553 drivers/input/mouse/cyapa.c cyapa->ops->set_power_mode(cyapa, cyapa 590 drivers/input/mouse/cyapa.c static int cyapa_initialize(struct cyapa *cyapa) cyapa 594 drivers/input/mouse/cyapa.c cyapa->state = CYAPA_STATE_NO_DEVICE; cyapa 595 drivers/input/mouse/cyapa.c cyapa->gen = CYAPA_GEN_UNKNOWN; cyapa 596 drivers/input/mouse/cyapa.c mutex_init(&cyapa->state_sync_lock); cyapa 602 drivers/input/mouse/cyapa.c cyapa->suspend_power_mode = PWR_MODE_SLEEP; cyapa 603 drivers/input/mouse/cyapa.c cyapa->suspend_sleep_time = cyapa 604 drivers/input/mouse/cyapa.c cyapa_pwr_cmd_to_sleep_time(cyapa->suspend_power_mode); cyapa 607 drivers/input/mouse/cyapa.c error = cyapa_gen3_ops.initialize(cyapa); cyapa 609 drivers/input/mouse/cyapa.c error = cyapa_gen5_ops.initialize(cyapa); cyapa 611 drivers/input/mouse/cyapa.c error = cyapa_gen6_ops.initialize(cyapa); cyapa 615 drivers/input/mouse/cyapa.c error = cyapa_detect(cyapa); cyapa 620 drivers/input/mouse/cyapa.c if (cyapa->operational) cyapa 621 drivers/input/mouse/cyapa.c cyapa->ops->set_power_mode(cyapa, cyapa 627 drivers/input/mouse/cyapa.c static int cyapa_reinitialize(struct cyapa *cyapa) cyapa 629 drivers/input/mouse/cyapa.c struct device *dev = &cyapa->client->dev; cyapa 630 drivers/input/mouse/cyapa.c struct input_dev *input = cyapa->input; cyapa 637 drivers/input/mouse/cyapa.c if (cyapa->operational) cyapa 638 drivers/input/mouse/cyapa.c cyapa->ops->set_power_mode(cyapa, cyapa 641 drivers/input/mouse/cyapa.c error = cyapa_detect(cyapa); cyapa 645 drivers/input/mouse/cyapa.c if (!input && cyapa->operational) { cyapa 646 drivers/input/mouse/cyapa.c error = cyapa_create_input_dev(cyapa); cyapa 657 drivers/input/mouse/cyapa.c if (cyapa->operational) cyapa 658 drivers/input/mouse/cyapa.c cyapa->ops->set_power_mode(cyapa, cyapa 660 drivers/input/mouse/cyapa.c } else if (!error && cyapa->operational) { cyapa 678 drivers/input/mouse/cyapa.c struct cyapa *cyapa = dev_id; cyapa 679 drivers/input/mouse/cyapa.c struct device *dev = &cyapa->client->dev; cyapa 686 drivers/input/mouse/cyapa.c if (cyapa->ops->irq_cmd_handler(cyapa)) { cyapa 690 drivers/input/mouse/cyapa.c if (!cyapa->input) { cyapa 695 drivers/input/mouse/cyapa.c cyapa->ops->sort_empty_output_data(cyapa, cyapa 700 drivers/input/mouse/cyapa.c if (cyapa->operational) { cyapa 701 drivers/input/mouse/cyapa.c error = cyapa->ops->irq_handler(cyapa); cyapa 717 drivers/input/mouse/cyapa.c if (!cyapa->operational || error) { cyapa 718 drivers/input/mouse/cyapa.c if (!mutex_trylock(&cyapa->state_sync_lock)) { cyapa 719 drivers/input/mouse/cyapa.c cyapa->ops->sort_empty_output_data(cyapa, cyapa 723 drivers/input/mouse/cyapa.c cyapa_reinitialize(cyapa); cyapa 724 drivers/input/mouse/cyapa.c mutex_unlock(&cyapa->state_sync_lock); cyapa 742 drivers/input/mouse/cyapa.c struct cyapa *cyapa = dev_get_drvdata(dev); cyapa 748 drivers/input/mouse/cyapa.c error = mutex_lock_interruptible(&cyapa->state_sync_lock); cyapa 752 drivers/input/mouse/cyapa.c pwr_cmd = cyapa->suspend_power_mode; cyapa 753 drivers/input/mouse/cyapa.c sleep_time = cyapa->suspend_sleep_time; cyapa 755 drivers/input/mouse/cyapa.c mutex_unlock(&cyapa->state_sync_lock); cyapa 768 drivers/input/mouse/cyapa.c cyapa->gen == CYAPA_GEN3 ? cyapa 781 drivers/input/mouse/cyapa.c struct cyapa *cyapa = dev_get_drvdata(dev); cyapa 785 drivers/input/mouse/cyapa.c error = mutex_lock_interruptible(&cyapa->state_sync_lock); cyapa 790 drivers/input/mouse/cyapa.c cyapa->suspend_power_mode = PWR_MODE_BTN_ONLY; cyapa 792 drivers/input/mouse/cyapa.c cyapa->suspend_power_mode = PWR_MODE_OFF; cyapa 794 drivers/input/mouse/cyapa.c cyapa->suspend_sleep_time = min_t(u16, sleep_time, 1000); cyapa 795 drivers/input/mouse/cyapa.c cyapa->suspend_power_mode = cyapa 796 drivers/input/mouse/cyapa.c cyapa_sleep_time_to_pwr_cmd(cyapa->suspend_sleep_time); cyapa 801 drivers/input/mouse/cyapa.c mutex_unlock(&cyapa->state_sync_lock); cyapa 822 drivers/input/mouse/cyapa.c struct cyapa *cyapa = data; cyapa 824 drivers/input/mouse/cyapa.c sysfs_unmerge_group(&cyapa->client->dev.kobj, cyapa 828 drivers/input/mouse/cyapa.c static int cyapa_prepare_wakeup_controls(struct cyapa *cyapa) cyapa 830 drivers/input/mouse/cyapa.c struct i2c_client *client = cyapa->client; cyapa 844 drivers/input/mouse/cyapa.c cyapa_remove_power_wakeup_group, cyapa); cyapa 846 drivers/input/mouse/cyapa.c cyapa_remove_power_wakeup_group(cyapa); cyapa 856 drivers/input/mouse/cyapa.c static inline int cyapa_prepare_wakeup_controls(struct cyapa *cyapa) cyapa 867 drivers/input/mouse/cyapa.c struct cyapa *cyapa = dev_get_drvdata(dev); cyapa 872 drivers/input/mouse/cyapa.c error = mutex_lock_interruptible(&cyapa->state_sync_lock); cyapa 876 drivers/input/mouse/cyapa.c pwr_cmd = cyapa->runtime_suspend_power_mode; cyapa 877 drivers/input/mouse/cyapa.c sleep_time = cyapa->runtime_suspend_sleep_time; cyapa 879 drivers/input/mouse/cyapa.c mutex_unlock(&cyapa->state_sync_lock); cyapa 882 drivers/input/mouse/cyapa.c cyapa->gen == CYAPA_GEN3 ? cyapa 891 drivers/input/mouse/cyapa.c struct cyapa *cyapa = dev_get_drvdata(dev); cyapa 907 drivers/input/mouse/cyapa.c error = mutex_lock_interruptible(&cyapa->state_sync_lock); cyapa 911 drivers/input/mouse/cyapa.c cyapa->runtime_suspend_sleep_time = min_t(u16, time, 1000); cyapa 912 drivers/input/mouse/cyapa.c cyapa->runtime_suspend_power_mode = cyapa 913 drivers/input/mouse/cyapa.c cyapa_sleep_time_to_pwr_cmd(cyapa->runtime_suspend_sleep_time); cyapa 915 drivers/input/mouse/cyapa.c mutex_unlock(&cyapa->state_sync_lock); cyapa 938 drivers/input/mouse/cyapa.c struct cyapa *cyapa = data; cyapa 940 drivers/input/mouse/cyapa.c sysfs_unmerge_group(&cyapa->client->dev.kobj, cyapa 944 drivers/input/mouse/cyapa.c static int cyapa_start_runtime(struct cyapa *cyapa) cyapa 946 drivers/input/mouse/cyapa.c struct device *dev = &cyapa->client->dev; cyapa 949 drivers/input/mouse/cyapa.c cyapa->runtime_suspend_power_mode = PWR_MODE_IDLE; cyapa 950 drivers/input/mouse/cyapa.c cyapa->runtime_suspend_sleep_time = cyapa 951 drivers/input/mouse/cyapa.c cyapa_pwr_cmd_to_sleep_time(cyapa->runtime_suspend_power_mode); cyapa 960 drivers/input/mouse/cyapa.c error = devm_add_action(dev, cyapa_remove_power_runtime_group, cyapa); cyapa 962 drivers/input/mouse/cyapa.c cyapa_remove_power_runtime_group(cyapa); cyapa 977 drivers/input/mouse/cyapa.c static inline int cyapa_start_runtime(struct cyapa *cyapa) cyapa 987 drivers/input/mouse/cyapa.c struct cyapa *cyapa = dev_get_drvdata(dev); cyapa 989 drivers/input/mouse/cyapa.c error = mutex_lock_interruptible(&cyapa->state_sync_lock); cyapa 992 drivers/input/mouse/cyapa.c error = scnprintf(buf, PAGE_SIZE, "%d.%d\n", cyapa->fw_maj_ver, cyapa 993 drivers/input/mouse/cyapa.c cyapa->fw_min_ver); cyapa 994 drivers/input/mouse/cyapa.c mutex_unlock(&cyapa->state_sync_lock); cyapa 1001 drivers/input/mouse/cyapa.c struct cyapa *cyapa = dev_get_drvdata(dev); cyapa 1005 drivers/input/mouse/cyapa.c error = mutex_lock_interruptible(&cyapa->state_sync_lock); cyapa 1008 drivers/input/mouse/cyapa.c size = scnprintf(buf, PAGE_SIZE, "%s\n", cyapa->product_id); cyapa 1009 drivers/input/mouse/cyapa.c mutex_unlock(&cyapa->state_sync_lock); cyapa 1013 drivers/input/mouse/cyapa.c static int cyapa_firmware(struct cyapa *cyapa, const char *fw_name) cyapa 1015 drivers/input/mouse/cyapa.c struct device *dev = &cyapa->client->dev; cyapa 1026 drivers/input/mouse/cyapa.c error = cyapa->ops->check_fw(cyapa, fw); cyapa 1041 drivers/input/mouse/cyapa.c cyapa_enable_irq_for_cmd(cyapa); cyapa 1043 drivers/input/mouse/cyapa.c error = cyapa->ops->bl_enter(cyapa); cyapa 1049 drivers/input/mouse/cyapa.c error = cyapa->ops->bl_activate(cyapa); cyapa 1055 drivers/input/mouse/cyapa.c error = cyapa->ops->bl_initiate(cyapa, fw); cyapa 1061 drivers/input/mouse/cyapa.c error = cyapa->ops->update_fw(cyapa, fw); cyapa 1068 drivers/input/mouse/cyapa.c cyapa_disable_irq_for_cmd(cyapa); cyapa 1080 drivers/input/mouse/cyapa.c struct cyapa *cyapa = dev_get_drvdata(dev); cyapa 1095 drivers/input/mouse/cyapa.c if (cyapa->input) { cyapa 1101 drivers/input/mouse/cyapa.c input_unregister_device(cyapa->input); cyapa 1102 drivers/input/mouse/cyapa.c cyapa->input = NULL; cyapa 1105 drivers/input/mouse/cyapa.c error = mutex_lock_interruptible(&cyapa->state_sync_lock); cyapa 1111 drivers/input/mouse/cyapa.c cyapa_reinitialize(cyapa); cyapa 1115 drivers/input/mouse/cyapa.c error = cyapa_firmware(cyapa, fw_name); cyapa 1125 drivers/input/mouse/cyapa.c ret = cyapa_reinitialize(cyapa); cyapa 1131 drivers/input/mouse/cyapa.c mutex_unlock(&cyapa->state_sync_lock); cyapa 1140 drivers/input/mouse/cyapa.c struct cyapa *cyapa = dev_get_drvdata(dev); cyapa 1143 drivers/input/mouse/cyapa.c error = mutex_lock_interruptible(&cyapa->state_sync_lock); cyapa 1147 drivers/input/mouse/cyapa.c if (cyapa->operational) { cyapa 1148 drivers/input/mouse/cyapa.c cyapa_enable_irq_for_cmd(cyapa); cyapa 1149 drivers/input/mouse/cyapa.c error = cyapa->ops->calibrate_store(dev, attr, buf, count); cyapa 1150 drivers/input/mouse/cyapa.c cyapa_disable_irq_for_cmd(cyapa); cyapa 1155 drivers/input/mouse/cyapa.c mutex_unlock(&cyapa->state_sync_lock); cyapa 1162 drivers/input/mouse/cyapa.c struct cyapa *cyapa = dev_get_drvdata(dev); cyapa 1165 drivers/input/mouse/cyapa.c error = mutex_lock_interruptible(&cyapa->state_sync_lock); cyapa 1169 drivers/input/mouse/cyapa.c if (cyapa->operational) { cyapa 1170 drivers/input/mouse/cyapa.c cyapa_enable_irq_for_cmd(cyapa); cyapa 1171 drivers/input/mouse/cyapa.c error = cyapa->ops->show_baseline(dev, attr, buf); cyapa 1172 drivers/input/mouse/cyapa.c cyapa_disable_irq_for_cmd(cyapa); cyapa 1177 drivers/input/mouse/cyapa.c mutex_unlock(&cyapa->state_sync_lock); cyapa 1181 drivers/input/mouse/cyapa.c static char *cyapa_state_to_string(struct cyapa *cyapa) cyapa 1183 drivers/input/mouse/cyapa.c switch (cyapa->state) { cyapa 1205 drivers/input/mouse/cyapa.c struct cyapa *cyapa = dev_get_drvdata(dev); cyapa 1209 drivers/input/mouse/cyapa.c error = mutex_lock_interruptible(&cyapa->state_sync_lock); cyapa 1214 drivers/input/mouse/cyapa.c cyapa->gen, cyapa_state_to_string(cyapa)); cyapa 1216 drivers/input/mouse/cyapa.c mutex_unlock(&cyapa->state_sync_lock); cyapa 1243 drivers/input/mouse/cyapa.c struct cyapa *cyapa = data; cyapa 1245 drivers/input/mouse/cyapa.c regulator_disable(cyapa->vcc); cyapa 1252 drivers/input/mouse/cyapa.c struct cyapa *cyapa; cyapa 1268 drivers/input/mouse/cyapa.c cyapa = devm_kzalloc(dev, sizeof(struct cyapa), GFP_KERNEL); cyapa 1269 drivers/input/mouse/cyapa.c if (!cyapa) cyapa 1274 drivers/input/mouse/cyapa.c cyapa->smbus = true; cyapa 1276 drivers/input/mouse/cyapa.c cyapa->client = client; cyapa 1277 drivers/input/mouse/cyapa.c i2c_set_clientdata(client, cyapa); cyapa 1278 drivers/input/mouse/cyapa.c sprintf(cyapa->phys, "i2c-%d-%04x/input0", client->adapter->nr, cyapa 1281 drivers/input/mouse/cyapa.c cyapa->vcc = devm_regulator_get(dev, "vcc"); cyapa 1282 drivers/input/mouse/cyapa.c if (IS_ERR(cyapa->vcc)) { cyapa 1283 drivers/input/mouse/cyapa.c error = PTR_ERR(cyapa->vcc); cyapa 1288 drivers/input/mouse/cyapa.c error = regulator_enable(cyapa->vcc); cyapa 1294 drivers/input/mouse/cyapa.c error = devm_add_action(dev, cyapa_disable_regulator, cyapa); cyapa 1296 drivers/input/mouse/cyapa.c cyapa_disable_regulator(cyapa); cyapa 1302 drivers/input/mouse/cyapa.c error = cyapa_initialize(cyapa); cyapa 1314 drivers/input/mouse/cyapa.c error = cyapa_prepare_wakeup_controls(cyapa); cyapa 1320 drivers/input/mouse/cyapa.c error = cyapa_start_runtime(cyapa); cyapa 1329 drivers/input/mouse/cyapa.c "cyapa", cyapa); cyapa 1343 drivers/input/mouse/cyapa.c if (cyapa->operational) { cyapa 1344 drivers/input/mouse/cyapa.c error = cyapa_create_input_dev(cyapa); cyapa 1358 drivers/input/mouse/cyapa.c struct cyapa *cyapa = i2c_get_clientdata(client); cyapa 1362 drivers/input/mouse/cyapa.c error = mutex_lock_interruptible(&cyapa->state_sync_lock); cyapa 1379 drivers/input/mouse/cyapa.c if (cyapa->operational) { cyapa 1380 drivers/input/mouse/cyapa.c power_mode = device_may_wakeup(dev) ? cyapa->suspend_power_mode cyapa 1382 drivers/input/mouse/cyapa.c error = cyapa->ops->set_power_mode(cyapa, power_mode, cyapa 1383 drivers/input/mouse/cyapa.c cyapa->suspend_sleep_time, CYAPA_PM_SUSPEND); cyapa 1393 drivers/input/mouse/cyapa.c if (cyapa->dev_pwr_mode != PWR_MODE_OFF) cyapa 1394 drivers/input/mouse/cyapa.c cyapa->ops->set_proximity(cyapa, false); cyapa 1397 drivers/input/mouse/cyapa.c cyapa->irq_wake = (enable_irq_wake(client->irq) == 0); cyapa 1399 drivers/input/mouse/cyapa.c mutex_unlock(&cyapa->state_sync_lock); cyapa 1406 drivers/input/mouse/cyapa.c struct cyapa *cyapa = i2c_get_clientdata(client); cyapa 1409 drivers/input/mouse/cyapa.c mutex_lock(&cyapa->state_sync_lock); cyapa 1411 drivers/input/mouse/cyapa.c if (device_may_wakeup(dev) && cyapa->irq_wake) { cyapa 1413 drivers/input/mouse/cyapa.c cyapa->irq_wake = false; cyapa 1420 drivers/input/mouse/cyapa.c error = cyapa_reinitialize(cyapa); cyapa 1426 drivers/input/mouse/cyapa.c mutex_unlock(&cyapa->state_sync_lock); cyapa 1432 drivers/input/mouse/cyapa.c struct cyapa *cyapa = dev_get_drvdata(dev); cyapa 1435 drivers/input/mouse/cyapa.c error = cyapa->ops->set_power_mode(cyapa, cyapa 1436 drivers/input/mouse/cyapa.c cyapa->runtime_suspend_power_mode, cyapa 1437 drivers/input/mouse/cyapa.c cyapa->runtime_suspend_sleep_time, cyapa 1447 drivers/input/mouse/cyapa.c struct cyapa *cyapa = dev_get_drvdata(dev); cyapa 1450 drivers/input/mouse/cyapa.c error = cyapa->ops->set_power_mode(cyapa, cyapa 239 drivers/input/mouse/cyapa.h #define PIP_DEV_SET_PWR_STATE(cyapa, s) ((cyapa)->dev_pwr_mode = (s)) cyapa 240 drivers/input/mouse/cyapa.h #define PIP_DEV_GET_PWR_STATE(cyapa) ((cyapa)->dev_pwr_mode) cyapa 241 drivers/input/mouse/cyapa.h #define PIP_DEV_SET_SLEEP_TIME(cyapa, t) ((cyapa)->dev_sleep_time = (t)) cyapa 242 drivers/input/mouse/cyapa.h #define PIP_DEV_GET_SLEEP_TIME(cyapa) ((cyapa)->dev_sleep_time) cyapa 243 drivers/input/mouse/cyapa.h #define PIP_DEV_UNINIT_SLEEP_TIME(cyapa) \ cyapa 244 drivers/input/mouse/cyapa.h (((cyapa)->dev_sleep_time) == UNINIT_SLEEP_TIME) cyapa 249 drivers/input/mouse/cyapa.h struct cyapa; cyapa 251 drivers/input/mouse/cyapa.h typedef bool (*cb_sort)(struct cyapa *, u8 *, int); cyapa 263 drivers/input/mouse/cyapa.h int (*check_fw)(struct cyapa *, const struct firmware *); cyapa 264 drivers/input/mouse/cyapa.h int (*bl_enter)(struct cyapa *); cyapa 265 drivers/input/mouse/cyapa.h int (*bl_activate)(struct cyapa *); cyapa 266 drivers/input/mouse/cyapa.h int (*bl_initiate)(struct cyapa *, const struct firmware *); cyapa 267 drivers/input/mouse/cyapa.h int (*update_fw)(struct cyapa *, const struct firmware *); cyapa 268 drivers/input/mouse/cyapa.h int (*bl_deactivate)(struct cyapa *); cyapa 275 drivers/input/mouse/cyapa.h int (*initialize)(struct cyapa *cyapa); cyapa 277 drivers/input/mouse/cyapa.h int (*state_parse)(struct cyapa *cyapa, u8 *reg_status, int len); cyapa 278 drivers/input/mouse/cyapa.h int (*operational_check)(struct cyapa *cyapa); cyapa 280 drivers/input/mouse/cyapa.h int (*irq_handler)(struct cyapa *); cyapa 281 drivers/input/mouse/cyapa.h bool (*irq_cmd_handler)(struct cyapa *); cyapa 282 drivers/input/mouse/cyapa.h int (*sort_empty_output_data)(struct cyapa *, cyapa 285 drivers/input/mouse/cyapa.h int (*set_power_mode)(struct cyapa *, u8, u16, enum cyapa_pm_stage); cyapa 287 drivers/input/mouse/cyapa.h int (*set_proximity)(struct cyapa *, bool); cyapa 387 drivers/input/mouse/cyapa.h ssize_t cyapa_i2c_reg_read_block(struct cyapa *cyapa, u8 reg, size_t len, cyapa 389 drivers/input/mouse/cyapa.h ssize_t cyapa_smbus_read_block(struct cyapa *cyapa, u8 cmd, size_t len, cyapa 392 drivers/input/mouse/cyapa.h ssize_t cyapa_read_block(struct cyapa *cyapa, u8 cmd_idx, u8 *values); cyapa 394 drivers/input/mouse/cyapa.h int cyapa_poll_state(struct cyapa *cyapa, unsigned int timeout); cyapa 399 drivers/input/mouse/cyapa.h ssize_t cyapa_i2c_pip_read(struct cyapa *cyapa, u8 *buf, size_t size); cyapa 400 drivers/input/mouse/cyapa.h ssize_t cyapa_i2c_pip_write(struct cyapa *cyapa, u8 *buf, size_t size); cyapa 401 drivers/input/mouse/cyapa.h int cyapa_empty_pip_output_data(struct cyapa *cyapa, cyapa 403 drivers/input/mouse/cyapa.h int cyapa_i2c_pip_cmd_irq_sync(struct cyapa *cyapa, cyapa 409 drivers/input/mouse/cyapa.h int cyapa_pip_state_parse(struct cyapa *cyapa, u8 *reg_data, int len); cyapa 410 drivers/input/mouse/cyapa.h bool cyapa_pip_sort_system_info_data(struct cyapa *cyapa, u8 *buf, int len); cyapa 411 drivers/input/mouse/cyapa.h bool cyapa_sort_tsg_pip_bl_resp_data(struct cyapa *cyapa, u8 *data, int len); cyapa 412 drivers/input/mouse/cyapa.h int cyapa_pip_deep_sleep(struct cyapa *cyapa, u8 state); cyapa 413 drivers/input/mouse/cyapa.h bool cyapa_sort_tsg_pip_app_resp_data(struct cyapa *cyapa, u8 *data, int len); cyapa 414 drivers/input/mouse/cyapa.h int cyapa_pip_bl_exit(struct cyapa *cyapa); cyapa 415 drivers/input/mouse/cyapa.h int cyapa_pip_bl_enter(struct cyapa *cyapa); cyapa 418 drivers/input/mouse/cyapa.h bool cyapa_is_pip_bl_mode(struct cyapa *cyapa); cyapa 419 drivers/input/mouse/cyapa.h bool cyapa_is_pip_app_mode(struct cyapa *cyapa); cyapa 420 drivers/input/mouse/cyapa.h int cyapa_pip_cmd_state_initialize(struct cyapa *cyapa); cyapa 422 drivers/input/mouse/cyapa.h int cyapa_pip_resume_scanning(struct cyapa *cyapa); cyapa 423 drivers/input/mouse/cyapa.h int cyapa_pip_suspend_scanning(struct cyapa *cyapa); cyapa 425 drivers/input/mouse/cyapa.h int cyapa_pip_check_fw(struct cyapa *cyapa, const struct firmware *fw); cyapa 426 drivers/input/mouse/cyapa.h int cyapa_pip_bl_initiate(struct cyapa *cyapa, const struct firmware *fw); cyapa 427 drivers/input/mouse/cyapa.h int cyapa_pip_do_fw_update(struct cyapa *cyapa, const struct firmware *fw); cyapa 428 drivers/input/mouse/cyapa.h int cyapa_pip_bl_activate(struct cyapa *cyapa); cyapa 429 drivers/input/mouse/cyapa.h int cyapa_pip_bl_deactivate(struct cyapa *cyapa); cyapa 433 drivers/input/mouse/cyapa.h int cyapa_pip_set_proximity(struct cyapa *cyapa, bool enable); cyapa 435 drivers/input/mouse/cyapa.h bool cyapa_pip_irq_cmd_handler(struct cyapa *cyapa); cyapa 436 drivers/input/mouse/cyapa.h int cyapa_pip_irq_handler(struct cyapa *cyapa); cyapa 229 drivers/input/mouse/cyapa_gen3.c static int cyapa_gen3_try_poll_handler(struct cyapa *cyapa); cyapa 244 drivers/input/mouse/cyapa_gen3.c ssize_t cyapa_smbus_read_block(struct cyapa *cyapa, u8 cmd, size_t len, cyapa 251 drivers/input/mouse/cyapa_gen3.c struct i2c_client *client = cyapa->client; cyapa 277 drivers/input/mouse/cyapa_gen3.c static s32 cyapa_read_byte(struct cyapa *cyapa, u8 cmd_idx) cyapa 281 drivers/input/mouse/cyapa_gen3.c if (cyapa->smbus) { cyapa 287 drivers/input/mouse/cyapa_gen3.c return i2c_smbus_read_byte_data(cyapa->client, cmd); cyapa 290 drivers/input/mouse/cyapa_gen3.c static s32 cyapa_write_byte(struct cyapa *cyapa, u8 cmd_idx, u8 value) cyapa 294 drivers/input/mouse/cyapa_gen3.c if (cyapa->smbus) { cyapa 300 drivers/input/mouse/cyapa_gen3.c return i2c_smbus_write_byte_data(cyapa->client, cmd, value); cyapa 303 drivers/input/mouse/cyapa_gen3.c ssize_t cyapa_i2c_reg_read_block(struct cyapa *cyapa, u8 reg, size_t len, cyapa 306 drivers/input/mouse/cyapa_gen3.c return i2c_smbus_read_i2c_block_data(cyapa->client, reg, len, values); cyapa 309 drivers/input/mouse/cyapa_gen3.c static ssize_t cyapa_i2c_reg_write_block(struct cyapa *cyapa, u8 reg, cyapa 312 drivers/input/mouse/cyapa_gen3.c return i2c_smbus_write_i2c_block_data(cyapa->client, reg, len, values); cyapa 315 drivers/input/mouse/cyapa_gen3.c ssize_t cyapa_read_block(struct cyapa *cyapa, u8 cmd_idx, u8 *values) cyapa 320 drivers/input/mouse/cyapa_gen3.c if (cyapa->smbus) { cyapa 323 drivers/input/mouse/cyapa_gen3.c return cyapa_smbus_read_block(cyapa, cmd, len, values); cyapa 327 drivers/input/mouse/cyapa_gen3.c return cyapa_i2c_reg_read_block(cyapa, cmd, len, values); cyapa 334 drivers/input/mouse/cyapa_gen3.c static int cyapa_gen3_state_parse(struct cyapa *cyapa, u8 *reg_data, int len) cyapa 336 drivers/input/mouse/cyapa_gen3.c cyapa->state = CYAPA_STATE_NO_DEVICE; cyapa 349 drivers/input/mouse/cyapa_gen3.c cyapa->gen = CYAPA_GEN3; cyapa 350 drivers/input/mouse/cyapa_gen3.c cyapa->state = CYAPA_STATE_BL_IDLE; cyapa 354 drivers/input/mouse/cyapa_gen3.c cyapa->gen = CYAPA_GEN3; cyapa 356 drivers/input/mouse/cyapa_gen3.c cyapa->state = CYAPA_STATE_BL_BUSY; cyapa 360 drivers/input/mouse/cyapa_gen3.c cyapa->state = CYAPA_STATE_BL_ACTIVE; cyapa 362 drivers/input/mouse/cyapa_gen3.c cyapa->state = CYAPA_STATE_BL_IDLE; cyapa 374 drivers/input/mouse/cyapa_gen3.c cyapa->gen = CYAPA_GEN3; cyapa 375 drivers/input/mouse/cyapa_gen3.c cyapa->state = CYAPA_STATE_OP; cyapa 380 drivers/input/mouse/cyapa_gen3.c cyapa->gen = CYAPA_GEN3; cyapa 381 drivers/input/mouse/cyapa_gen3.c cyapa->state = CYAPA_STATE_OP; cyapa 384 drivers/input/mouse/cyapa_gen3.c cyapa->gen = CYAPA_GEN3; cyapa 385 drivers/input/mouse/cyapa_gen3.c cyapa->state = CYAPA_STATE_BL_BUSY; cyapa 388 drivers/input/mouse/cyapa_gen3.c if (cyapa->gen == CYAPA_GEN3 && (cyapa->state == CYAPA_STATE_OP || cyapa 389 drivers/input/mouse/cyapa_gen3.c cyapa->state == CYAPA_STATE_BL_IDLE || cyapa 390 drivers/input/mouse/cyapa_gen3.c cyapa->state == CYAPA_STATE_BL_ACTIVE || cyapa 391 drivers/input/mouse/cyapa_gen3.c cyapa->state == CYAPA_STATE_BL_BUSY)) cyapa 409 drivers/input/mouse/cyapa_gen3.c static int cyapa_gen3_bl_enter(struct cyapa *cyapa) cyapa 414 drivers/input/mouse/cyapa_gen3.c error = cyapa_poll_state(cyapa, 500); cyapa 417 drivers/input/mouse/cyapa_gen3.c if (cyapa->state == CYAPA_STATE_BL_IDLE) { cyapa 422 drivers/input/mouse/cyapa_gen3.c if (cyapa->state != CYAPA_STATE_OP) cyapa 425 drivers/input/mouse/cyapa_gen3.c cyapa->operational = false; cyapa 426 drivers/input/mouse/cyapa_gen3.c cyapa->state = CYAPA_STATE_NO_DEVICE; cyapa 427 drivers/input/mouse/cyapa_gen3.c error = cyapa_write_byte(cyapa, CYAPA_CMD_SOFT_RESET, 0x01); cyapa 434 drivers/input/mouse/cyapa_gen3.c error = cyapa_poll_state(cyapa, 500); cyapa 443 drivers/input/mouse/cyapa_gen3.c if ((cyapa->state == CYAPA_STATE_BL_IDLE) && cyapa 444 drivers/input/mouse/cyapa_gen3.c !(cyapa->status[REG_BL_STATUS] & BL_STATUS_WATCHDOG)) cyapa 451 drivers/input/mouse/cyapa_gen3.c if ((cyapa->state != CYAPA_STATE_BL_IDLE) || cyapa 452 drivers/input/mouse/cyapa_gen3.c (cyapa->status[REG_BL_STATUS] & BL_STATUS_WATCHDOG)) cyapa 458 drivers/input/mouse/cyapa_gen3.c static int cyapa_gen3_bl_activate(struct cyapa *cyapa) cyapa 462 drivers/input/mouse/cyapa_gen3.c error = cyapa_i2c_reg_write_block(cyapa, 0, sizeof(bl_activate), cyapa 469 drivers/input/mouse/cyapa_gen3.c error = cyapa_poll_state(cyapa, 11000); cyapa 472 drivers/input/mouse/cyapa_gen3.c if (cyapa->state != CYAPA_STATE_BL_ACTIVE) cyapa 478 drivers/input/mouse/cyapa_gen3.c static int cyapa_gen3_bl_deactivate(struct cyapa *cyapa) cyapa 482 drivers/input/mouse/cyapa_gen3.c error = cyapa_i2c_reg_write_block(cyapa, 0, sizeof(bl_deactivate), cyapa 489 drivers/input/mouse/cyapa_gen3.c error = cyapa_poll_state(cyapa, 500); cyapa 492 drivers/input/mouse/cyapa_gen3.c if (cyapa->state != CYAPA_STATE_BL_IDLE) cyapa 510 drivers/input/mouse/cyapa_gen3.c static int cyapa_gen3_bl_exit(struct cyapa *cyapa) cyapa 514 drivers/input/mouse/cyapa_gen3.c error = cyapa_i2c_reg_write_block(cyapa, 0, sizeof(bl_exit), bl_exit); cyapa 529 drivers/input/mouse/cyapa_gen3.c error = cyapa_poll_state(cyapa, 4000); cyapa 532 drivers/input/mouse/cyapa_gen3.c if (cyapa->state != CYAPA_STATE_OP) cyapa 564 drivers/input/mouse/cyapa_gen3.c static int cyapa_gen3_check_fw(struct cyapa *cyapa, const struct firmware *fw) cyapa 566 drivers/input/mouse/cyapa_gen3.c struct device *dev = &cyapa->client->dev; cyapa 608 drivers/input/mouse/cyapa_gen3.c static int cyapa_gen3_write_buffer(struct cyapa *cyapa, cyapa 623 drivers/input/mouse/cyapa_gen3.c error = cyapa_i2c_reg_write_block(cyapa, 0, cmd_len + 1, cmd); cyapa 646 drivers/input/mouse/cyapa_gen3.c static int cyapa_gen3_write_fw_block(struct cyapa *cyapa, cyapa 666 drivers/input/mouse/cyapa_gen3.c ret = cyapa_gen3_write_buffer(cyapa, (u8 *)&write_block_cmd, cyapa 677 drivers/input/mouse/cyapa_gen3.c ret = cyapa_i2c_reg_read_block(cyapa, BL_HEAD_OFFSET, cyapa 698 drivers/input/mouse/cyapa_gen3.c static int cyapa_gen3_write_blocks(struct cyapa *cyapa, cyapa 710 drivers/input/mouse/cyapa_gen3.c error = cyapa_gen3_write_fw_block(cyapa, block, data); cyapa 717 drivers/input/mouse/cyapa_gen3.c static int cyapa_gen3_do_fw_update(struct cyapa *cyapa, cyapa 720 drivers/input/mouse/cyapa_gen3.c struct device *dev = &cyapa->client->dev; cyapa 724 drivers/input/mouse/cyapa_gen3.c error = cyapa_gen3_write_blocks(cyapa, cyapa 733 drivers/input/mouse/cyapa_gen3.c error = cyapa_gen3_write_blocks(cyapa, cyapa 748 drivers/input/mouse/cyapa_gen3.c struct cyapa *cyapa = dev_get_drvdata(dev); cyapa 752 drivers/input/mouse/cyapa_gen3.c ret = cyapa_read_byte(cyapa, CYAPA_CMD_DEV_STATUS); cyapa 764 drivers/input/mouse/cyapa_gen3.c ret = cyapa_write_byte(cyapa, CYAPA_CMD_SOFT_RESET, cyapa 781 drivers/input/mouse/cyapa_gen3.c ret = cyapa_read_byte(cyapa, CYAPA_CMD_DEV_STATUS); cyapa 802 drivers/input/mouse/cyapa_gen3.c struct cyapa *cyapa = dev_get_drvdata(dev); cyapa 807 drivers/input/mouse/cyapa_gen3.c ret = cyapa_read_byte(cyapa, CYAPA_CMD_DEV_STATUS); cyapa 819 drivers/input/mouse/cyapa_gen3.c ret = cyapa_write_byte(cyapa, CYAPA_CMD_SOFT_RESET, cyapa 831 drivers/input/mouse/cyapa_gen3.c ret = cyapa_read_byte(cyapa, CYAPA_CMD_DEV_STATUS); cyapa 847 drivers/input/mouse/cyapa_gen3.c ret = cyapa_read_byte(cyapa, CYAPA_CMD_MAX_BASELINE); cyapa 854 drivers/input/mouse/cyapa_gen3.c ret = cyapa_read_byte(cyapa, CYAPA_CMD_MIN_BASELINE); cyapa 907 drivers/input/mouse/cyapa_gen3.c static int cyapa_gen3_set_power_mode(struct cyapa *cyapa, u8 power_mode, cyapa 910 drivers/input/mouse/cyapa_gen3.c struct input_dev *input = cyapa->input; cyapa 917 drivers/input/mouse/cyapa_gen3.c if (cyapa->state != CYAPA_STATE_OP) cyapa 922 drivers/input/mouse/cyapa_gen3.c ret = cyapa_read_byte(cyapa, CYAPA_CMD_POWER_MODE); cyapa 943 drivers/input/mouse/cyapa_gen3.c ret = cyapa_write_byte(cyapa, CYAPA_CMD_POWER_MODE, power); cyapa 955 drivers/input/mouse/cyapa_gen3.c if (cyapa->operational && input && input->users && cyapa 966 drivers/input/mouse/cyapa_gen3.c cyapa_gen3_try_poll_handler(cyapa); cyapa 975 drivers/input/mouse/cyapa_gen3.c static int cyapa_gen3_set_proximity(struct cyapa *cyapa, bool enable) cyapa 980 drivers/input/mouse/cyapa_gen3.c static int cyapa_gen3_get_query_data(struct cyapa *cyapa) cyapa 985 drivers/input/mouse/cyapa_gen3.c if (cyapa->state != CYAPA_STATE_OP) cyapa 988 drivers/input/mouse/cyapa_gen3.c ret = cyapa_read_block(cyapa, CYAPA_CMD_GROUP_QUERY, query_data); cyapa 992 drivers/input/mouse/cyapa_gen3.c memcpy(&cyapa->product_id[0], &query_data[0], 5); cyapa 993 drivers/input/mouse/cyapa_gen3.c cyapa->product_id[5] = '-'; cyapa 994 drivers/input/mouse/cyapa_gen3.c memcpy(&cyapa->product_id[6], &query_data[5], 6); cyapa 995 drivers/input/mouse/cyapa_gen3.c cyapa->product_id[12] = '-'; cyapa 996 drivers/input/mouse/cyapa_gen3.c memcpy(&cyapa->product_id[13], &query_data[11], 2); cyapa 997 drivers/input/mouse/cyapa_gen3.c cyapa->product_id[15] = '\0'; cyapa 999 drivers/input/mouse/cyapa_gen3.c cyapa->fw_maj_ver = query_data[15]; cyapa 1000 drivers/input/mouse/cyapa_gen3.c cyapa->fw_min_ver = query_data[16]; cyapa 1002 drivers/input/mouse/cyapa_gen3.c cyapa->btn_capability = query_data[19] & CAPABILITY_BTN_MASK; cyapa 1004 drivers/input/mouse/cyapa_gen3.c cyapa->gen = query_data[20] & 0x0f; cyapa 1006 drivers/input/mouse/cyapa_gen3.c cyapa->max_abs_x = ((query_data[21] & 0xf0) << 4) | query_data[22]; cyapa 1007 drivers/input/mouse/cyapa_gen3.c cyapa->max_abs_y = ((query_data[21] & 0x0f) << 8) | query_data[23]; cyapa 1009 drivers/input/mouse/cyapa_gen3.c cyapa->physical_size_x = cyapa 1011 drivers/input/mouse/cyapa_gen3.c cyapa->physical_size_y = cyapa 1014 drivers/input/mouse/cyapa_gen3.c cyapa->max_z = 255; cyapa 1019 drivers/input/mouse/cyapa_gen3.c static int cyapa_gen3_bl_query_data(struct cyapa *cyapa) cyapa 1024 drivers/input/mouse/cyapa_gen3.c ret = cyapa_i2c_reg_read_block(cyapa, 0, CYAPA_CMD_LEN, bl_data); cyapa 1036 drivers/input/mouse/cyapa_gen3.c cyapa->fw_maj_ver = bl_data[GEN3_BL_IDLE_FW_MAJ_VER_OFFSET]; cyapa 1037 drivers/input/mouse/cyapa_gen3.c cyapa->fw_min_ver = bl_data[GEN3_BL_IDLE_FW_MIN_VER_OFFSET]; cyapa 1057 drivers/input/mouse/cyapa_gen3.c static int cyapa_gen3_do_operational_check(struct cyapa *cyapa) cyapa 1059 drivers/input/mouse/cyapa_gen3.c struct device *dev = &cyapa->client->dev; cyapa 1062 drivers/input/mouse/cyapa_gen3.c switch (cyapa->state) { cyapa 1064 drivers/input/mouse/cyapa_gen3.c error = cyapa_gen3_bl_deactivate(cyapa); cyapa 1073 drivers/input/mouse/cyapa_gen3.c cyapa_gen3_bl_query_data(cyapa); cyapa 1075 drivers/input/mouse/cyapa_gen3.c error = cyapa_gen3_bl_exit(cyapa); cyapa 1087 drivers/input/mouse/cyapa_gen3.c error = cyapa_gen3_set_power_mode(cyapa, cyapa 1092 drivers/input/mouse/cyapa_gen3.c error = cyapa_gen3_get_query_data(cyapa); cyapa 1097 drivers/input/mouse/cyapa_gen3.c if (cyapa->gen != CYAPA_GEN3) { cyapa 1099 drivers/input/mouse/cyapa_gen3.c cyapa->gen); cyapa 1104 drivers/input/mouse/cyapa_gen3.c if (memcmp(cyapa->product_id, product_id, cyapa 1107 drivers/input/mouse/cyapa_gen3.c cyapa->product_id); cyapa 1123 drivers/input/mouse/cyapa_gen3.c static bool cyapa_gen3_irq_cmd_handler(struct cyapa *cyapa) cyapa 1126 drivers/input/mouse/cyapa_gen3.c if (cyapa->gen != CYAPA_GEN3) cyapa 1129 drivers/input/mouse/cyapa_gen3.c if (cyapa->operational) cyapa 1144 drivers/input/mouse/cyapa_gen3.c static int cyapa_gen3_event_process(struct cyapa *cyapa, cyapa 1147 drivers/input/mouse/cyapa_gen3.c struct input_dev *input = cyapa->input; cyapa 1168 drivers/input/mouse/cyapa_gen3.c if (cyapa->btn_capability & CAPABILITY_LEFT_BTN_MASK) cyapa 1171 drivers/input/mouse/cyapa_gen3.c if (cyapa->btn_capability & CAPABILITY_MIDDLE_BTN_MASK) cyapa 1174 drivers/input/mouse/cyapa_gen3.c if (cyapa->btn_capability & CAPABILITY_RIGHT_BTN_MASK) cyapa 1182 drivers/input/mouse/cyapa_gen3.c static int cyapa_gen3_irq_handler(struct cyapa *cyapa) cyapa 1184 drivers/input/mouse/cyapa_gen3.c struct device *dev = &cyapa->client->dev; cyapa 1188 drivers/input/mouse/cyapa_gen3.c ret = cyapa_read_block(cyapa, CYAPA_CMD_GROUP_DATA, (u8 *)&data); cyapa 1202 drivers/input/mouse/cyapa_gen3.c return cyapa_gen3_event_process(cyapa, &data); cyapa 1211 drivers/input/mouse/cyapa_gen3.c static int cyapa_gen3_try_poll_handler(struct cyapa *cyapa) cyapa 1216 drivers/input/mouse/cyapa_gen3.c ret = cyapa_read_block(cyapa, CYAPA_CMD_GROUP_DATA, (u8 *)&data); cyapa 1225 drivers/input/mouse/cyapa_gen3.c return cyapa_gen3_event_process(cyapa, &data); cyapa 1229 drivers/input/mouse/cyapa_gen3.c static int cyapa_gen3_initialize(struct cyapa *cyapa) { return 0; } cyapa 1230 drivers/input/mouse/cyapa_gen3.c static int cyapa_gen3_bl_initiate(struct cyapa *cyapa, cyapa 1232 drivers/input/mouse/cyapa_gen3.c static int cyapa_gen3_empty_output_data(struct cyapa *cyapa, cyapa 345 drivers/input/mouse/cyapa_gen5.c static int cyapa_pip_event_process(struct cyapa *cyapa, cyapa 348 drivers/input/mouse/cyapa_gen5.c int cyapa_pip_cmd_state_initialize(struct cyapa *cyapa) cyapa 350 drivers/input/mouse/cyapa_gen5.c struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip; cyapa 364 drivers/input/mouse/cyapa_gen5.c cyapa->dev_pwr_mode = UNINIT_PWR_MODE; cyapa 365 drivers/input/mouse/cyapa_gen5.c cyapa->dev_sleep_time = UNINIT_SLEEP_TIME; cyapa 371 drivers/input/mouse/cyapa_gen5.c ssize_t cyapa_i2c_pip_read(struct cyapa *cyapa, u8 *buf, size_t size) cyapa 381 drivers/input/mouse/cyapa_gen5.c ret = i2c_master_recv(cyapa->client, buf, size); cyapa 391 drivers/input/mouse/cyapa_gen5.c ssize_t cyapa_i2c_pip_write(struct cyapa *cyapa, u8 *buf, size_t size) cyapa 398 drivers/input/mouse/cyapa_gen5.c ret = i2c_master_send(cyapa->client, buf, size); cyapa 406 drivers/input/mouse/cyapa_gen5.c static void cyapa_set_pip_pm_state(struct cyapa *cyapa, cyapa 409 drivers/input/mouse/cyapa_gen5.c struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip; cyapa 416 drivers/input/mouse/cyapa_gen5.c static void cyapa_reset_pip_pm_state(struct cyapa *cyapa) cyapa 418 drivers/input/mouse/cyapa_gen5.c struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip; cyapa 426 drivers/input/mouse/cyapa_gen5.c static enum cyapa_pm_stage cyapa_get_pip_pm_state(struct cyapa *cyapa) cyapa 428 drivers/input/mouse/cyapa_gen5.c struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip; cyapa 442 drivers/input/mouse/cyapa_gen5.c int cyapa_empty_pip_output_data(struct cyapa *cyapa, cyapa 445 drivers/input/mouse/cyapa_gen5.c struct input_dev *input = cyapa->input; cyapa 446 drivers/input/mouse/cyapa_gen5.c struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip; cyapa 447 drivers/input/mouse/cyapa_gen5.c enum cyapa_pm_stage pm_stage = cyapa_get_pip_pm_state(cyapa); cyapa 479 drivers/input/mouse/cyapa_gen5.c error = cyapa_i2c_pip_read(cyapa, pip->empty_buf, cyapa 495 drivers/input/mouse/cyapa_gen5.c func(cyapa, pip->empty_buf, length)) { cyapa 505 drivers/input/mouse/cyapa_gen5.c error = cyapa_i2c_pip_read(cyapa, pip->empty_buf, length); cyapa 515 drivers/input/mouse/cyapa_gen5.c func(cyapa, pip->empty_buf, length)) { cyapa 521 drivers/input/mouse/cyapa_gen5.c } else if (cyapa->operational && input && input->users && cyapa 525 drivers/input/mouse/cyapa_gen5.c cyapa_pip_event_process(cyapa, cyapa 536 drivers/input/mouse/cyapa_gen5.c struct cyapa *cyapa, cyapa 540 drivers/input/mouse/cyapa_gen5.c struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip; cyapa 547 drivers/input/mouse/cyapa_gen5.c error = cyapa_i2c_pip_write(cyapa, cmd, cmd_len); cyapa 565 drivers/input/mouse/cyapa_gen5.c struct cyapa *cyapa, cyapa 571 drivers/input/mouse/cyapa_gen5.c struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip; cyapa 577 drivers/input/mouse/cyapa_gen5.c error = cyapa_i2c_pip_write(cyapa, cmd, cmd_len); cyapa 589 drivers/input/mouse/cyapa_gen5.c error = cyapa_empty_pip_output_data(cyapa, cyapa 605 drivers/input/mouse/cyapa_gen5.c struct cyapa *cyapa, cyapa 612 drivers/input/mouse/cyapa_gen5.c struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip; cyapa 640 drivers/input/mouse/cyapa_gen5.c error = cyapa_do_i2c_pip_cmd_irq_sync(cyapa, cmd, cmd_len, cyapa 649 drivers/input/mouse/cyapa_gen5.c error = cyapa_empty_pip_output_data(cyapa, cyapa 656 drivers/input/mouse/cyapa_gen5.c error = cyapa_do_i2c_pip_cmd_polling(cyapa, cmd, cmd_len, cyapa 669 drivers/input/mouse/cyapa_gen5.c bool cyapa_sort_tsg_pip_bl_resp_data(struct cyapa *cyapa, cyapa 684 drivers/input/mouse/cyapa_gen5.c bool cyapa_sort_tsg_pip_app_resp_data(struct cyapa *cyapa, cyapa 687 drivers/input/mouse/cyapa_gen5.c struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip; cyapa 711 drivers/input/mouse/cyapa_gen5.c static bool cyapa_sort_pip_application_launch_data(struct cyapa *cyapa, cyapa 727 drivers/input/mouse/cyapa_gen5.c static bool cyapa_sort_gen5_hid_descriptor_data(struct cyapa *cyapa, cyapa 755 drivers/input/mouse/cyapa_gen5.c static bool cyapa_sort_pip_deep_sleep_data(struct cyapa *cyapa, cyapa 767 drivers/input/mouse/cyapa_gen5.c static int gen5_idle_state_parse(struct cyapa *cyapa) cyapa 780 drivers/input/mouse/cyapa_gen5.c cyapa_empty_pip_output_data(cyapa, NULL, NULL, NULL); cyapa 783 drivers/input/mouse/cyapa_gen5.c ret = cyapa_i2c_pip_read(cyapa, resp_data, 3); cyapa 790 drivers/input/mouse/cyapa_gen5.c cyapa->gen = CYAPA_GEN5; cyapa 792 drivers/input/mouse/cyapa_gen5.c cyapa_empty_pip_output_data(cyapa, NULL, NULL, NULL); cyapa 798 drivers/input/mouse/cyapa_gen5.c error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cyapa 816 drivers/input/mouse/cyapa_gen5.c cyapa->state = CYAPA_STATE_GEN5_BL; cyapa 823 drivers/input/mouse/cyapa_gen5.c cyapa->state = CYAPA_STATE_GEN5_APP; cyapa 826 drivers/input/mouse/cyapa_gen5.c cyapa->state = CYAPA_STATE_NO_DEVICE; cyapa 833 drivers/input/mouse/cyapa_gen5.c static int gen5_hid_description_header_parse(struct cyapa *cyapa, u8 *reg_data) cyapa 847 drivers/input/mouse/cyapa_gen5.c ret = cyapa_i2c_pip_read(cyapa, resp_data, cyapa 860 drivers/input/mouse/cyapa_gen5.c cyapa->gen = CYAPA_GEN5; cyapa 861 drivers/input/mouse/cyapa_gen5.c cyapa->state = CYAPA_STATE_GEN5_BL; cyapa 867 drivers/input/mouse/cyapa_gen5.c cyapa->gen = CYAPA_GEN5; cyapa 868 drivers/input/mouse/cyapa_gen5.c cyapa->state = CYAPA_STATE_GEN5_APP; cyapa 874 drivers/input/mouse/cyapa_gen5.c cyapa->gen = CYAPA_GEN5; cyapa 875 drivers/input/mouse/cyapa_gen5.c cyapa->state = CYAPA_STATE_GEN5_BL; cyapa 881 drivers/input/mouse/cyapa_gen5.c cyapa->gen = CYAPA_GEN5; cyapa 882 drivers/input/mouse/cyapa_gen5.c cyapa->state = CYAPA_STATE_GEN5_APP; cyapa 885 drivers/input/mouse/cyapa_gen5.c cyapa->state = CYAPA_STATE_NO_DEVICE; cyapa 891 drivers/input/mouse/cyapa_gen5.c static int gen5_report_data_header_parse(struct cyapa *cyapa, u8 *reg_data) cyapa 917 drivers/input/mouse/cyapa_gen5.c cyapa->gen = CYAPA_GEN5; cyapa 918 drivers/input/mouse/cyapa_gen5.c cyapa->state = CYAPA_STATE_GEN5_APP; cyapa 922 drivers/input/mouse/cyapa_gen5.c static int gen5_cmd_resp_header_parse(struct cyapa *cyapa, u8 *reg_data) cyapa 924 drivers/input/mouse/cyapa_gen5.c struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip; cyapa 934 drivers/input/mouse/cyapa_gen5.c ret = cyapa_i2c_pip_read(cyapa, pip->empty_buf, length); cyapa 943 drivers/input/mouse/cyapa_gen5.c cyapa->gen = CYAPA_GEN5; cyapa 944 drivers/input/mouse/cyapa_gen5.c cyapa->state = CYAPA_STATE_GEN5_BL; cyapa 947 drivers/input/mouse/cyapa_gen5.c cyapa->gen = CYAPA_GEN5; cyapa 948 drivers/input/mouse/cyapa_gen5.c cyapa->state = CYAPA_STATE_GEN5_APP; cyapa 959 drivers/input/mouse/cyapa_gen5.c cyapa->gen = CYAPA_GEN5; cyapa 960 drivers/input/mouse/cyapa_gen5.c cyapa->state = CYAPA_STATE_GEN5_BL; cyapa 966 drivers/input/mouse/cyapa_gen5.c cyapa->gen = CYAPA_GEN5; cyapa 967 drivers/input/mouse/cyapa_gen5.c cyapa->state = CYAPA_STATE_GEN5_APP; cyapa 970 drivers/input/mouse/cyapa_gen5.c cyapa->state = CYAPA_STATE_NO_DEVICE; cyapa 976 drivers/input/mouse/cyapa_gen5.c static int cyapa_gen5_state_parse(struct cyapa *cyapa, u8 *reg_data, int len) cyapa 983 drivers/input/mouse/cyapa_gen5.c cyapa->state = CYAPA_STATE_NO_DEVICE; cyapa 988 drivers/input/mouse/cyapa_gen5.c gen5_idle_state_parse(cyapa); cyapa 992 drivers/input/mouse/cyapa_gen5.c gen5_hid_description_header_parse(cyapa, reg_data); cyapa 997 drivers/input/mouse/cyapa_gen5.c cyapa->gen = CYAPA_GEN5; cyapa 998 drivers/input/mouse/cyapa_gen5.c cyapa->state = CYAPA_STATE_GEN5_APP; cyapa 1002 drivers/input/mouse/cyapa_gen5.c cyapa->gen = CYAPA_GEN5; cyapa 1003 drivers/input/mouse/cyapa_gen5.c cyapa->state = CYAPA_STATE_GEN5_BL; cyapa 1009 drivers/input/mouse/cyapa_gen5.c gen5_report_data_header_parse(cyapa, reg_data); cyapa 1012 drivers/input/mouse/cyapa_gen5.c gen5_cmd_resp_header_parse(cyapa, reg_data); cyapa 1015 drivers/input/mouse/cyapa_gen5.c if (cyapa->gen == CYAPA_GEN5) { cyapa 1022 drivers/input/mouse/cyapa_gen5.c cyapa_empty_pip_output_data(cyapa, NULL, NULL, NULL); cyapa 1024 drivers/input/mouse/cyapa_gen5.c if (cyapa->state == CYAPA_STATE_GEN5_APP || cyapa 1025 drivers/input/mouse/cyapa_gen5.c cyapa->state == CYAPA_STATE_GEN5_BL) cyapa 1044 drivers/input/mouse/cyapa_gen5.c int cyapa_pip_bl_initiate(struct cyapa *cyapa, const struct firmware *fw) cyapa 1063 drivers/input/mouse/cyapa_gen5.c cyapa_empty_pip_output_data(cyapa, NULL, NULL, NULL); cyapa 1103 drivers/input/mouse/cyapa_gen5.c error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cyapa 1115 drivers/input/mouse/cyapa_gen5.c static bool cyapa_sort_pip_bl_exit_data(struct cyapa *cyapa, u8 *buf, int len) cyapa 1135 drivers/input/mouse/cyapa_gen5.c int cyapa_pip_bl_exit(struct cyapa *cyapa) cyapa 1147 drivers/input/mouse/cyapa_gen5.c error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cyapa 1165 drivers/input/mouse/cyapa_gen5.c int cyapa_pip_bl_enter(struct cyapa *cyapa) cyapa 1172 drivers/input/mouse/cyapa_gen5.c error = cyapa_poll_state(cyapa, 500); cyapa 1177 drivers/input/mouse/cyapa_gen5.c if (cyapa_is_pip_bl_mode(cyapa)) cyapa 1179 drivers/input/mouse/cyapa_gen5.c else if (!cyapa_is_pip_app_mode(cyapa)) cyapa 1183 drivers/input/mouse/cyapa_gen5.c cyapa_empty_pip_output_data(cyapa, NULL, NULL, NULL); cyapa 1191 drivers/input/mouse/cyapa_gen5.c error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cyapa 1199 drivers/input/mouse/cyapa_gen5.c cyapa->operational = false; cyapa 1200 drivers/input/mouse/cyapa_gen5.c if (cyapa->gen == CYAPA_GEN5) cyapa 1201 drivers/input/mouse/cyapa_gen5.c cyapa->state = CYAPA_STATE_GEN5_BL; cyapa 1202 drivers/input/mouse/cyapa_gen5.c else if (cyapa->gen == CYAPA_GEN6) cyapa 1203 drivers/input/mouse/cyapa_gen5.c cyapa->state = CYAPA_STATE_GEN6_BL; cyapa 1207 drivers/input/mouse/cyapa_gen5.c static int cyapa_pip_fw_head_check(struct cyapa *cyapa, cyapa 1213 drivers/input/mouse/cyapa_gen5.c switch (cyapa->gen) { cyapa 1221 drivers/input/mouse/cyapa_gen5.c if (cyapa->platform_ver < 2) { cyapa 1238 drivers/input/mouse/cyapa_gen5.c int cyapa_pip_check_fw(struct cyapa *cyapa, const struct firmware *fw) cyapa 1240 drivers/input/mouse/cyapa_gen5.c struct device *dev = &cyapa->client->dev; cyapa 1252 drivers/input/mouse/cyapa_gen5.c if (cyapa_pip_fw_head_check(cyapa, cyapa 1313 drivers/input/mouse/cyapa_gen5.c static int cyapa_pip_write_fw_block(struct cyapa *cyapa, cyapa 1369 drivers/input/mouse/cyapa_gen5.c error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cmd, cmd_len, cyapa 1380 drivers/input/mouse/cyapa_gen5.c int cyapa_pip_do_fw_update(struct cyapa *cyapa, cyapa 1383 drivers/input/mouse/cyapa_gen5.c struct device *dev = &cyapa->client->dev; cyapa 1389 drivers/input/mouse/cyapa_gen5.c cyapa_empty_pip_output_data(cyapa, NULL, NULL, NULL); cyapa 1399 drivers/input/mouse/cyapa_gen5.c error = cyapa_pip_write_fw_block(cyapa, &image_records[i]); cyapa 1410 drivers/input/mouse/cyapa_gen5.c static int cyapa_gen5_change_power_state(struct cyapa *cyapa, u8 power_state) cyapa 1419 drivers/input/mouse/cyapa_gen5.c error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cmd, sizeof(cmd), cyapa 1429 drivers/input/mouse/cyapa_gen5.c static int cyapa_gen5_set_interval_time(struct cyapa *cyapa, cyapa 1475 drivers/input/mouse/cyapa_gen5.c error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cmd, cmd_len, cyapa 1486 drivers/input/mouse/cyapa_gen5.c static int cyapa_gen5_get_interval_time(struct cyapa *cyapa, cyapa 1529 drivers/input/mouse/cyapa_gen5.c error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cmd, cmd_len, cyapa 1544 drivers/input/mouse/cyapa_gen5.c static int cyapa_gen5_disable_pip_report(struct cyapa *cyapa) cyapa 1563 drivers/input/mouse/cyapa_gen5.c error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cmd, sizeof(cmd), cyapa 1574 drivers/input/mouse/cyapa_gen5.c int cyapa_pip_set_proximity(struct cyapa *cyapa, bool enable) cyapa 1584 drivers/input/mouse/cyapa_gen5.c error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cmd, sizeof(cmd), cyapa 1596 drivers/input/mouse/cyapa_gen5.c int cyapa_pip_deep_sleep(struct cyapa *cyapa, u8 state) cyapa 1605 drivers/input/mouse/cyapa_gen5.c error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cmd, sizeof(cmd), cyapa 1614 drivers/input/mouse/cyapa_gen5.c static int cyapa_gen5_set_power_mode(struct cyapa *cyapa, cyapa 1617 drivers/input/mouse/cyapa_gen5.c struct device *dev = &cyapa->client->dev; cyapa 1621 drivers/input/mouse/cyapa_gen5.c if (cyapa->state != CYAPA_STATE_GEN5_APP) cyapa 1624 drivers/input/mouse/cyapa_gen5.c cyapa_set_pip_pm_state(cyapa, pm_stage); cyapa 1626 drivers/input/mouse/cyapa_gen5.c if (PIP_DEV_GET_PWR_STATE(cyapa) == UNINIT_PWR_MODE) { cyapa 1632 drivers/input/mouse/cyapa_gen5.c PIP_DEV_SET_PWR_STATE(cyapa, PWR_MODE_OFF); cyapa 1635 drivers/input/mouse/cyapa_gen5.c if (PIP_DEV_UNINIT_SLEEP_TIME(cyapa) && cyapa 1636 drivers/input/mouse/cyapa_gen5.c PIP_DEV_GET_PWR_STATE(cyapa) != PWR_MODE_OFF) cyapa 1637 drivers/input/mouse/cyapa_gen5.c if (cyapa_gen5_get_interval_time(cyapa, cyapa 1639 drivers/input/mouse/cyapa_gen5.c &cyapa->dev_sleep_time) != 0) cyapa 1640 drivers/input/mouse/cyapa_gen5.c PIP_DEV_SET_SLEEP_TIME(cyapa, UNINIT_SLEEP_TIME); cyapa 1642 drivers/input/mouse/cyapa_gen5.c if (PIP_DEV_GET_PWR_STATE(cyapa) == power_mode) { cyapa 1646 drivers/input/mouse/cyapa_gen5.c PIP_DEV_GET_SLEEP_TIME(cyapa) == sleep_time) { cyapa 1653 drivers/input/mouse/cyapa_gen5.c error = cyapa_pip_deep_sleep(cyapa, PIP_DEEP_SLEEP_STATE_OFF); cyapa 1659 drivers/input/mouse/cyapa_gen5.c PIP_DEV_SET_PWR_STATE(cyapa, PWR_MODE_OFF); cyapa 1668 drivers/input/mouse/cyapa_gen5.c if (PIP_DEV_GET_PWR_STATE(cyapa) == PWR_MODE_OFF) { cyapa 1669 drivers/input/mouse/cyapa_gen5.c error = cyapa_pip_deep_sleep(cyapa, PIP_DEEP_SLEEP_STATE_ON); cyapa 1677 drivers/input/mouse/cyapa_gen5.c error = cyapa_gen5_change_power_state(cyapa, cyapa 1684 drivers/input/mouse/cyapa_gen5.c PIP_DEV_SET_PWR_STATE(cyapa, PWR_MODE_FULL_ACTIVE); cyapa 1686 drivers/input/mouse/cyapa_gen5.c error = cyapa_gen5_change_power_state(cyapa, cyapa 1693 drivers/input/mouse/cyapa_gen5.c PIP_DEV_SET_PWR_STATE(cyapa, PWR_MODE_BTN_ONLY); cyapa 1700 drivers/input/mouse/cyapa_gen5.c if (PIP_DEV_UNINIT_SLEEP_TIME(cyapa) || cyapa 1701 drivers/input/mouse/cyapa_gen5.c sleep_time != PIP_DEV_GET_SLEEP_TIME(cyapa)) cyapa 1702 drivers/input/mouse/cyapa_gen5.c if (cyapa_gen5_set_interval_time(cyapa, cyapa 1705 drivers/input/mouse/cyapa_gen5.c PIP_DEV_SET_SLEEP_TIME(cyapa, sleep_time); cyapa 1711 drivers/input/mouse/cyapa_gen5.c error = cyapa_gen5_change_power_state(cyapa, power_state); cyapa 1729 drivers/input/mouse/cyapa_gen5.c cyapa_gen5_disable_pip_report(cyapa); cyapa 1731 drivers/input/mouse/cyapa_gen5.c PIP_DEV_SET_PWR_STATE(cyapa, cyapa 1736 drivers/input/mouse/cyapa_gen5.c cyapa_reset_pip_pm_state(cyapa); cyapa 1740 drivers/input/mouse/cyapa_gen5.c int cyapa_pip_resume_scanning(struct cyapa *cyapa) cyapa 1748 drivers/input/mouse/cyapa_gen5.c cyapa_empty_pip_output_data(cyapa, NULL, NULL, NULL); cyapa 1751 drivers/input/mouse/cyapa_gen5.c error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cyapa 1759 drivers/input/mouse/cyapa_gen5.c cyapa_empty_pip_output_data(cyapa, NULL, NULL, NULL); cyapa 1764 drivers/input/mouse/cyapa_gen5.c int cyapa_pip_suspend_scanning(struct cyapa *cyapa) cyapa 1772 drivers/input/mouse/cyapa_gen5.c cyapa_empty_pip_output_data(cyapa, NULL, NULL, NULL); cyapa 1775 drivers/input/mouse/cyapa_gen5.c error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cyapa 1783 drivers/input/mouse/cyapa_gen5.c cyapa_empty_pip_output_data(cyapa, NULL, NULL, NULL); cyapa 1788 drivers/input/mouse/cyapa_gen5.c static int cyapa_pip_calibrate_pwcs(struct cyapa *cyapa, cyapa 1798 drivers/input/mouse/cyapa_gen5.c cyapa_empty_pip_output_data(cyapa, NULL, NULL, NULL); cyapa 1808 drivers/input/mouse/cyapa_gen5.c error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cyapa 1823 drivers/input/mouse/cyapa_gen5.c struct cyapa *cyapa = dev_get_drvdata(dev); cyapa 1827 drivers/input/mouse/cyapa_gen5.c error = cyapa_pip_suspend_scanning(cyapa); cyapa 1832 drivers/input/mouse/cyapa_gen5.c calibrate_error = cyapa_pip_calibrate_pwcs(cyapa, cyapa 1838 drivers/input/mouse/cyapa_gen5.c calibrate_error = cyapa_pip_calibrate_pwcs(cyapa, cyapa 1845 drivers/input/mouse/cyapa_gen5.c error = cyapa_pip_resume_scanning(cyapa); cyapa 1901 drivers/input/mouse/cyapa_gen5.c static void cyapa_gen5_guess_electrodes(struct cyapa *cyapa, cyapa 1904 drivers/input/mouse/cyapa_gen5.c if (cyapa->electrodes_rx != 0) { cyapa 1905 drivers/input/mouse/cyapa_gen5.c *electrodes_rx = cyapa->electrodes_rx; cyapa 1906 drivers/input/mouse/cyapa_gen5.c *electrodes_tx = (cyapa->electrodes_x == *electrodes_rx) ? cyapa 1907 drivers/input/mouse/cyapa_gen5.c cyapa->electrodes_y : cyapa->electrodes_x; cyapa 1909 drivers/input/mouse/cyapa_gen5.c *electrodes_tx = min(cyapa->electrodes_x, cyapa->electrodes_y); cyapa 1910 drivers/input/mouse/cyapa_gen5.c *electrodes_rx = max(cyapa->electrodes_x, cyapa->electrodes_y); cyapa 1932 drivers/input/mouse/cyapa_gen5.c static int cyapa_gen5_read_idac_data(struct cyapa *cyapa, cyapa 1974 drivers/input/mouse/cyapa_gen5.c if (cyapa->aligned_electrodes_rx == 0) { cyapa 1975 drivers/input/mouse/cyapa_gen5.c cyapa_gen5_guess_electrodes(cyapa, cyapa 1977 drivers/input/mouse/cyapa_gen5.c cyapa->aligned_electrodes_rx = cyapa 1981 drivers/input/mouse/cyapa_gen5.c (cyapa->aligned_electrodes_rx + 7) & ~7u; cyapa 1991 drivers/input/mouse/cyapa_gen5.c offset = cyapa->aligned_electrodes_rx * (*data_size); cyapa 1992 drivers/input/mouse/cyapa_gen5.c if (cyapa->electrodes_rx == cyapa->electrodes_x) cyapa 1993 drivers/input/mouse/cyapa_gen5.c electrodes_tx = cyapa->electrodes_y; cyapa 1995 drivers/input/mouse/cyapa_gen5.c electrodes_tx = cyapa->electrodes_x; cyapa 1996 drivers/input/mouse/cyapa_gen5.c max_element_cnt = ((cyapa->aligned_electrodes_rx + 7) & cyapa 2000 drivers/input/mouse/cyapa_gen5.c max_element_cnt = cyapa->electrodes_x + cyapa 2001 drivers/input/mouse/cyapa_gen5.c cyapa->electrodes_y; cyapa 2022 drivers/input/mouse/cyapa_gen5.c error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cyapa 2066 drivers/input/mouse/cyapa_gen5.c tmp_count < cyapa->aligned_electrodes_rx && cyapa 2100 drivers/input/mouse/cyapa_gen5.c if (tmp_count == cyapa->aligned_electrodes_rx) { cyapa 2101 drivers/input/mouse/cyapa_gen5.c cyapa->electrodes_rx = cyapa->electrodes_rx ? cyapa 2102 drivers/input/mouse/cyapa_gen5.c cyapa->electrodes_rx : electrodes_rx; cyapa 2104 drivers/input/mouse/cyapa_gen5.c cyapa->electrodes_rx = cyapa->electrodes_rx ? cyapa 2105 drivers/input/mouse/cyapa_gen5.c cyapa->electrodes_rx : electrodes_rx; cyapa 2106 drivers/input/mouse/cyapa_gen5.c cyapa->aligned_electrodes_rx = electrodes_rx; cyapa 2108 drivers/input/mouse/cyapa_gen5.c cyapa->electrodes_rx = cyapa->electrodes_rx ? cyapa 2109 drivers/input/mouse/cyapa_gen5.c cyapa->electrodes_rx : electrodes_tx; cyapa 2110 drivers/input/mouse/cyapa_gen5.c cyapa->aligned_electrodes_rx = tmp_count; cyapa 2121 drivers/input/mouse/cyapa_gen5.c static int cyapa_gen5_read_mutual_idac_data(struct cyapa *cyapa, cyapa 2132 drivers/input/mouse/cyapa_gen5.c error = cyapa_gen5_read_idac_data(cyapa, cyapa 2140 drivers/input/mouse/cyapa_gen5.c error = cyapa_gen5_read_idac_data(cyapa, cyapa 2148 drivers/input/mouse/cyapa_gen5.c static int cyapa_gen5_read_self_idac_data(struct cyapa *cyapa, cyapa 2159 drivers/input/mouse/cyapa_gen5.c error = cyapa_gen5_read_idac_data(cyapa, cyapa 2169 drivers/input/mouse/cyapa_gen5.c error = cyapa_gen5_read_idac_data(cyapa, cyapa 2177 drivers/input/mouse/cyapa_gen5.c static ssize_t cyapa_gen5_execute_panel_scan(struct cyapa *cyapa) cyapa 2192 drivers/input/mouse/cyapa_gen5.c error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cyapa 2205 drivers/input/mouse/cyapa_gen5.c static int cyapa_gen5_read_panel_scan_raw_data(struct cyapa *cyapa, cyapa 2252 drivers/input/mouse/cyapa_gen5.c error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cyapa 2303 drivers/input/mouse/cyapa_gen5.c struct cyapa *cyapa = dev_get_drvdata(dev); cyapa 2317 drivers/input/mouse/cyapa_gen5.c if (!cyapa_is_pip_app_mode(cyapa)) cyapa 2321 drivers/input/mouse/cyapa_gen5.c error = cyapa_pip_suspend_scanning(cyapa); cyapa 2327 drivers/input/mouse/cyapa_gen5.c error = cyapa_gen5_read_mutual_idac_data(cyapa, cyapa 2335 drivers/input/mouse/cyapa_gen5.c error = cyapa_gen5_read_self_idac_data(cyapa, cyapa 2343 drivers/input/mouse/cyapa_gen5.c error = cyapa_gen5_execute_panel_scan(cyapa); cyapa 2348 drivers/input/mouse/cyapa_gen5.c error = cyapa_gen5_read_panel_scan_raw_data(cyapa, cyapa 2351 drivers/input/mouse/cyapa_gen5.c cyapa->electrodes_x * cyapa->electrodes_y, cyapa 2359 drivers/input/mouse/cyapa_gen5.c error = cyapa_gen5_read_panel_scan_raw_data(cyapa, cyapa 2362 drivers/input/mouse/cyapa_gen5.c cyapa->electrodes_x + cyapa->electrodes_y, cyapa 2370 drivers/input/mouse/cyapa_gen5.c error = cyapa_gen5_read_panel_scan_raw_data(cyapa, cyapa 2373 drivers/input/mouse/cyapa_gen5.c cyapa->electrodes_x * cyapa->electrodes_y, cyapa 2381 drivers/input/mouse/cyapa_gen5.c error = cyapa_gen5_read_panel_scan_raw_data(cyapa, cyapa 2384 drivers/input/mouse/cyapa_gen5.c cyapa->electrodes_x + cyapa->electrodes_y, cyapa 2392 drivers/input/mouse/cyapa_gen5.c error = cyapa_gen5_read_panel_scan_raw_data(cyapa, cyapa 2395 drivers/input/mouse/cyapa_gen5.c cyapa->electrodes_x * cyapa->electrodes_y, cyapa 2403 drivers/input/mouse/cyapa_gen5.c error = cyapa_gen5_read_panel_scan_raw_data(cyapa, cyapa 2406 drivers/input/mouse/cyapa_gen5.c cyapa->electrodes_x + cyapa->electrodes_y, cyapa 2415 drivers/input/mouse/cyapa_gen5.c resume_error = cyapa_pip_resume_scanning(cyapa); cyapa 2436 drivers/input/mouse/cyapa_gen5.c bool cyapa_pip_sort_system_info_data(struct cyapa *cyapa, cyapa 2446 drivers/input/mouse/cyapa_gen5.c static int cyapa_gen5_bl_query_data(struct cyapa *cyapa) cyapa 2453 drivers/input/mouse/cyapa_gen5.c error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cyapa 2461 drivers/input/mouse/cyapa_gen5.c memcpy(&cyapa->product_id[0], &resp_data[8], 5); cyapa 2462 drivers/input/mouse/cyapa_gen5.c cyapa->product_id[5] = '-'; cyapa 2463 drivers/input/mouse/cyapa_gen5.c memcpy(&cyapa->product_id[6], &resp_data[13], 6); cyapa 2464 drivers/input/mouse/cyapa_gen5.c cyapa->product_id[12] = '-'; cyapa 2465 drivers/input/mouse/cyapa_gen5.c memcpy(&cyapa->product_id[13], &resp_data[19], 2); cyapa 2466 drivers/input/mouse/cyapa_gen5.c cyapa->product_id[15] = '\0'; cyapa 2468 drivers/input/mouse/cyapa_gen5.c cyapa->fw_maj_ver = resp_data[22]; cyapa 2469 drivers/input/mouse/cyapa_gen5.c cyapa->fw_min_ver = resp_data[23]; cyapa 2471 drivers/input/mouse/cyapa_gen5.c cyapa->platform_ver = (resp_data[26] >> PIP_BL_PLATFORM_VER_SHIFT) & cyapa 2477 drivers/input/mouse/cyapa_gen5.c static int cyapa_gen5_get_query_data(struct cyapa *cyapa) cyapa 2485 drivers/input/mouse/cyapa_gen5.c error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cyapa 2497 drivers/input/mouse/cyapa_gen5.c cyapa->platform_ver = (resp_data[49] >> PIP_BL_PLATFORM_VER_SHIFT) & cyapa 2499 drivers/input/mouse/cyapa_gen5.c if (cyapa->gen == CYAPA_GEN5 && cyapa->platform_ver < 2) { cyapa 2501 drivers/input/mouse/cyapa_gen5.c cyapa->fw_maj_ver = resp_data[15]; cyapa 2502 drivers/input/mouse/cyapa_gen5.c cyapa->fw_min_ver = resp_data[16]; cyapa 2504 drivers/input/mouse/cyapa_gen5.c cyapa->fw_maj_ver = resp_data[9]; cyapa 2505 drivers/input/mouse/cyapa_gen5.c cyapa->fw_min_ver = resp_data[10]; cyapa 2508 drivers/input/mouse/cyapa_gen5.c cyapa->electrodes_x = resp_data[52]; cyapa 2509 drivers/input/mouse/cyapa_gen5.c cyapa->electrodes_y = resp_data[53]; cyapa 2511 drivers/input/mouse/cyapa_gen5.c cyapa->physical_size_x = get_unaligned_le16(&resp_data[54]) / 100; cyapa 2512 drivers/input/mouse/cyapa_gen5.c cyapa->physical_size_y = get_unaligned_le16(&resp_data[56]) / 100; cyapa 2514 drivers/input/mouse/cyapa_gen5.c cyapa->max_abs_x = get_unaligned_le16(&resp_data[58]); cyapa 2515 drivers/input/mouse/cyapa_gen5.c cyapa->max_abs_y = get_unaligned_le16(&resp_data[60]); cyapa 2517 drivers/input/mouse/cyapa_gen5.c cyapa->max_z = get_unaligned_le16(&resp_data[62]); cyapa 2519 drivers/input/mouse/cyapa_gen5.c cyapa->x_origin = resp_data[64] & 0x01; cyapa 2520 drivers/input/mouse/cyapa_gen5.c cyapa->y_origin = resp_data[65] & 0x01; cyapa 2522 drivers/input/mouse/cyapa_gen5.c cyapa->btn_capability = (resp_data[70] << 3) & CAPABILITY_BTN_MASK; cyapa 2524 drivers/input/mouse/cyapa_gen5.c memcpy(&cyapa->product_id[0], &resp_data[33], 5); cyapa 2525 drivers/input/mouse/cyapa_gen5.c cyapa->product_id[5] = '-'; cyapa 2526 drivers/input/mouse/cyapa_gen5.c memcpy(&cyapa->product_id[6], &resp_data[38], 6); cyapa 2527 drivers/input/mouse/cyapa_gen5.c cyapa->product_id[12] = '-'; cyapa 2528 drivers/input/mouse/cyapa_gen5.c memcpy(&cyapa->product_id[13], &resp_data[44], 2); cyapa 2529 drivers/input/mouse/cyapa_gen5.c cyapa->product_id[15] = '\0'; cyapa 2531 drivers/input/mouse/cyapa_gen5.c if (!cyapa->electrodes_x || !cyapa->electrodes_y || cyapa 2532 drivers/input/mouse/cyapa_gen5.c !cyapa->physical_size_x || !cyapa->physical_size_y || cyapa 2533 drivers/input/mouse/cyapa_gen5.c !cyapa->max_abs_x || !cyapa->max_abs_y || !cyapa->max_z) cyapa 2539 drivers/input/mouse/cyapa_gen5.c static int cyapa_gen5_do_operational_check(struct cyapa *cyapa) cyapa 2541 drivers/input/mouse/cyapa_gen5.c struct device *dev = &cyapa->client->dev; cyapa 2544 drivers/input/mouse/cyapa_gen5.c if (cyapa->gen != CYAPA_GEN5) cyapa 2547 drivers/input/mouse/cyapa_gen5.c switch (cyapa->state) { cyapa 2549 drivers/input/mouse/cyapa_gen5.c error = cyapa_pip_bl_exit(cyapa); cyapa 2552 drivers/input/mouse/cyapa_gen5.c cyapa_gen5_bl_query_data(cyapa); cyapa 2556 drivers/input/mouse/cyapa_gen5.c cyapa->state = CYAPA_STATE_GEN5_APP; cyapa 2566 drivers/input/mouse/cyapa_gen5.c error = cyapa_gen5_set_power_mode(cyapa, cyapa 2573 drivers/input/mouse/cyapa_gen5.c if (cyapa->platform_ver >= 2) { cyapa 2574 drivers/input/mouse/cyapa_gen5.c error = cyapa_pip_set_proximity(cyapa, true); cyapa 2582 drivers/input/mouse/cyapa_gen5.c error = cyapa_gen5_get_query_data(cyapa); cyapa 2586 drivers/input/mouse/cyapa_gen5.c if (memcmp(cyapa->product_id, product_id, cyapa 2589 drivers/input/mouse/cyapa_gen5.c __func__, cyapa->product_id); cyapa 2605 drivers/input/mouse/cyapa_gen5.c bool cyapa_pip_irq_cmd_handler(struct cyapa *cyapa) cyapa 2607 drivers/input/mouse/cyapa_gen5.c struct cyapa_pip_cmd_states *pip = &cyapa->cmd_states.pip; cyapa 2620 drivers/input/mouse/cyapa_gen5.c cyapa_i2c_pip_read(cyapa, pip->irq_cmd_buf, cyapa 2626 drivers/input/mouse/cyapa_gen5.c cyapa_i2c_pip_read(cyapa, cyapa 2629 drivers/input/mouse/cyapa_gen5.c pip->resp_sort_func(cyapa, cyapa 2647 drivers/input/mouse/cyapa_gen5.c cyapa_empty_pip_output_data(cyapa, cyapa 2673 drivers/input/mouse/cyapa_gen5.c static void cyapa_pip_report_buttons(struct cyapa *cyapa, cyapa 2676 drivers/input/mouse/cyapa_gen5.c struct input_dev *input = cyapa->input; cyapa 2681 drivers/input/mouse/cyapa_gen5.c if (cyapa->btn_capability & CAPABILITY_LEFT_BTN_MASK) { cyapa 2685 drivers/input/mouse/cyapa_gen5.c if (cyapa->btn_capability & CAPABILITY_MIDDLE_BTN_MASK) { cyapa 2689 drivers/input/mouse/cyapa_gen5.c if (cyapa->btn_capability & CAPABILITY_RIGHT_BTN_MASK) { cyapa 2697 drivers/input/mouse/cyapa_gen5.c static void cyapa_pip_report_proximity(struct cyapa *cyapa, cyapa 2700 drivers/input/mouse/cyapa_gen5.c struct input_dev *input = cyapa->input; cyapa 2708 drivers/input/mouse/cyapa_gen5.c static void cyapa_pip_report_slot_data(struct cyapa *cyapa, cyapa 2711 drivers/input/mouse/cyapa_gen5.c struct input_dev *input = cyapa->input; cyapa 2722 drivers/input/mouse/cyapa_gen5.c if (cyapa->x_origin) cyapa 2723 drivers/input/mouse/cyapa_gen5.c x = cyapa->max_abs_x - x; cyapa 2725 drivers/input/mouse/cyapa_gen5.c if (cyapa->y_origin) cyapa 2726 drivers/input/mouse/cyapa_gen5.c y = cyapa->max_abs_y - y; cyapa 2746 drivers/input/mouse/cyapa_gen5.c static void cyapa_pip_report_touches(struct cyapa *cyapa, cyapa 2749 drivers/input/mouse/cyapa_gen5.c struct input_dev *input = cyapa->input; cyapa 2757 drivers/input/mouse/cyapa_gen5.c cyapa_pip_report_slot_data(cyapa, cyapa 2764 drivers/input/mouse/cyapa_gen5.c int cyapa_pip_irq_handler(struct cyapa *cyapa) cyapa 2766 drivers/input/mouse/cyapa_gen5.c struct device *dev = &cyapa->client->dev; cyapa 2771 drivers/input/mouse/cyapa_gen5.c if (!cyapa_is_pip_app_mode(cyapa)) { cyapa 2773 drivers/input/mouse/cyapa_gen5.c cyapa->gen, cyapa->state); cyapa 2777 drivers/input/mouse/cyapa_gen5.c ret = cyapa_i2c_pip_read(cyapa, (u8 *)&report_data, cyapa 2798 drivers/input/mouse/cyapa_gen5.c ret = cyapa_i2c_pip_read(cyapa, (u8 *)&report_data, report_len); cyapa 2805 drivers/input/mouse/cyapa_gen5.c return cyapa_pip_event_process(cyapa, &report_data); cyapa 2808 drivers/input/mouse/cyapa_gen5.c static int cyapa_pip_event_process(struct cyapa *cyapa, cyapa 2811 drivers/input/mouse/cyapa_gen5.c struct device *dev = &cyapa->client->dev; cyapa 2874 drivers/input/mouse/cyapa_gen5.c cyapa_pip_report_touches(cyapa, report_data); cyapa 2876 drivers/input/mouse/cyapa_gen5.c cyapa_pip_report_proximity(cyapa, report_data); cyapa 2878 drivers/input/mouse/cyapa_gen5.c cyapa_pip_report_buttons(cyapa, report_data); cyapa 2883 drivers/input/mouse/cyapa_gen5.c int cyapa_pip_bl_activate(struct cyapa *cyapa) { return 0; } cyapa 2884 drivers/input/mouse/cyapa_gen5.c int cyapa_pip_bl_deactivate(struct cyapa *cyapa) { return 0; } cyapa 75 drivers/input/mouse/cyapa_gen6.c static bool cyapa_sort_pip_hid_descriptor_data(struct cyapa *cyapa, cyapa 88 drivers/input/mouse/cyapa_gen6.c static int cyapa_get_pip_fixed_info(struct cyapa *cyapa, cyapa 99 drivers/input/mouse/cyapa_gen6.c error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cyapa 116 drivers/input/mouse/cyapa_gen6.c error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cyapa 136 drivers/input/mouse/cyapa_gen6.c int cyapa_pip_state_parse(struct cyapa *cyapa, u8 *reg_data, int len) cyapa 145 drivers/input/mouse/cyapa_gen6.c cyapa->state = CYAPA_STATE_NO_DEVICE; cyapa 148 drivers/input/mouse/cyapa_gen6.c cyapa_pip_deep_sleep(cyapa, PIP_DEEP_SLEEP_STATE_ON); cyapa 151 drivers/input/mouse/cyapa_gen6.c cyapa_empty_pip_output_data(cyapa, NULL, NULL, NULL); cyapa 158 drivers/input/mouse/cyapa_gen6.c error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cyapa 176 drivers/input/mouse/cyapa_gen6.c error = cyapa_get_pip_fixed_info(cyapa, &pip_info, is_bootloader); cyapa 181 drivers/input/mouse/cyapa_gen6.c cyapa->gen = CYAPA_GEN6; cyapa 182 drivers/input/mouse/cyapa_gen6.c cyapa->state = is_bootloader ? CYAPA_STATE_GEN6_BL cyapa 186 drivers/input/mouse/cyapa_gen6.c cyapa->gen = CYAPA_GEN5; cyapa 187 drivers/input/mouse/cyapa_gen6.c cyapa->state = is_bootloader ? CYAPA_STATE_GEN5_BL cyapa 194 drivers/input/mouse/cyapa_gen6.c static int cyapa_gen6_read_sys_info(struct cyapa *cyapa) cyapa 204 drivers/input/mouse/cyapa_gen6.c error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cyapa 216 drivers/input/mouse/cyapa_gen6.c cyapa->platform_ver = (resp_data[67] >> PIP_BL_PLATFORM_VER_SHIFT) & cyapa 218 drivers/input/mouse/cyapa_gen6.c cyapa->fw_maj_ver = resp_data[9]; cyapa 219 drivers/input/mouse/cyapa_gen6.c cyapa->fw_min_ver = resp_data[10]; cyapa 221 drivers/input/mouse/cyapa_gen6.c cyapa->electrodes_x = resp_data[33]; cyapa 222 drivers/input/mouse/cyapa_gen6.c cyapa->electrodes_y = resp_data[34]; cyapa 224 drivers/input/mouse/cyapa_gen6.c cyapa->physical_size_x = get_unaligned_le16(&resp_data[35]) / 100; cyapa 225 drivers/input/mouse/cyapa_gen6.c cyapa->physical_size_y = get_unaligned_le16(&resp_data[37]) / 100; cyapa 227 drivers/input/mouse/cyapa_gen6.c cyapa->max_abs_x = get_unaligned_le16(&resp_data[39]); cyapa 228 drivers/input/mouse/cyapa_gen6.c cyapa->max_abs_y = get_unaligned_le16(&resp_data[41]); cyapa 230 drivers/input/mouse/cyapa_gen6.c cyapa->max_z = get_unaligned_le16(&resp_data[43]); cyapa 232 drivers/input/mouse/cyapa_gen6.c cyapa->x_origin = resp_data[45] & 0x01; cyapa 233 drivers/input/mouse/cyapa_gen6.c cyapa->y_origin = resp_data[46] & 0x01; cyapa 235 drivers/input/mouse/cyapa_gen6.c cyapa->btn_capability = (resp_data[70] << 3) & CAPABILITY_BTN_MASK; cyapa 237 drivers/input/mouse/cyapa_gen6.c memcpy(&cyapa->product_id[0], &resp_data[51], 5); cyapa 238 drivers/input/mouse/cyapa_gen6.c cyapa->product_id[5] = '-'; cyapa 239 drivers/input/mouse/cyapa_gen6.c memcpy(&cyapa->product_id[6], &resp_data[56], 6); cyapa 240 drivers/input/mouse/cyapa_gen6.c cyapa->product_id[12] = '-'; cyapa 241 drivers/input/mouse/cyapa_gen6.c memcpy(&cyapa->product_id[13], &resp_data[62], 2); cyapa 242 drivers/input/mouse/cyapa_gen6.c cyapa->product_id[15] = '\0'; cyapa 246 drivers/input/mouse/cyapa_gen6.c cyapa->electrodes_rx = cyapa 247 drivers/input/mouse/cyapa_gen6.c rotat_align ? cyapa->electrodes_y : cyapa->electrodes_x; cyapa 248 drivers/input/mouse/cyapa_gen6.c cyapa->aligned_electrodes_rx = (cyapa->electrodes_rx + 3) & ~3u; cyapa 250 drivers/input/mouse/cyapa_gen6.c if (!cyapa->electrodes_x || !cyapa->electrodes_y || cyapa 251 drivers/input/mouse/cyapa_gen6.c !cyapa->physical_size_x || !cyapa->physical_size_y || cyapa 252 drivers/input/mouse/cyapa_gen6.c !cyapa->max_abs_x || !cyapa->max_abs_y || !cyapa->max_z) cyapa 258 drivers/input/mouse/cyapa_gen6.c static int cyapa_gen6_bl_read_app_info(struct cyapa *cyapa) cyapa 265 drivers/input/mouse/cyapa_gen6.c error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cyapa 273 drivers/input/mouse/cyapa_gen6.c cyapa->fw_maj_ver = resp_data[8]; cyapa 274 drivers/input/mouse/cyapa_gen6.c cyapa->fw_min_ver = resp_data[9]; cyapa 276 drivers/input/mouse/cyapa_gen6.c cyapa->platform_ver = (resp_data[12] >> PIP_BL_PLATFORM_VER_SHIFT) & cyapa 279 drivers/input/mouse/cyapa_gen6.c memcpy(&cyapa->product_id[0], &resp_data[13], 5); cyapa 280 drivers/input/mouse/cyapa_gen6.c cyapa->product_id[5] = '-'; cyapa 281 drivers/input/mouse/cyapa_gen6.c memcpy(&cyapa->product_id[6], &resp_data[18], 6); cyapa 282 drivers/input/mouse/cyapa_gen6.c cyapa->product_id[12] = '-'; cyapa 283 drivers/input/mouse/cyapa_gen6.c memcpy(&cyapa->product_id[13], &resp_data[24], 2); cyapa 284 drivers/input/mouse/cyapa_gen6.c cyapa->product_id[15] = '\0'; cyapa 290 drivers/input/mouse/cyapa_gen6.c static int cyapa_gen6_config_dev_irq(struct cyapa *cyapa, u8 cmd_code) cyapa 298 drivers/input/mouse/cyapa_gen6.c error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cmd, sizeof(cmd), cyapa 309 drivers/input/mouse/cyapa_gen6.c static int cyapa_gen6_set_proximity(struct cyapa *cyapa, bool enable) cyapa 313 drivers/input/mouse/cyapa_gen6.c cyapa_gen6_config_dev_irq(cyapa, GEN6_DISABLE_CMD_IRQ); cyapa 314 drivers/input/mouse/cyapa_gen6.c error = cyapa_pip_set_proximity(cyapa, enable); cyapa 315 drivers/input/mouse/cyapa_gen6.c cyapa_gen6_config_dev_irq(cyapa, GEN6_ENABLE_CMD_IRQ); cyapa 320 drivers/input/mouse/cyapa_gen6.c static int cyapa_gen6_change_power_state(struct cyapa *cyapa, u8 power_mode) cyapa 328 drivers/input/mouse/cyapa_gen6.c error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cmd, sizeof(cmd), cyapa 341 drivers/input/mouse/cyapa_gen6.c static int cyapa_gen6_set_interval_setting(struct cyapa *cyapa, cyapa 372 drivers/input/mouse/cyapa_gen6.c error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cyapa 388 drivers/input/mouse/cyapa_gen6.c static int cyapa_gen6_get_interval_setting(struct cyapa *cyapa, cyapa 398 drivers/input/mouse/cyapa_gen6.c error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cmd, sizeof(cmd), cyapa 412 drivers/input/mouse/cyapa_gen6.c static int cyapa_gen6_deep_sleep(struct cyapa *cyapa, u8 state) cyapa 422 drivers/input/mouse/cyapa_gen6.c cyapa_i2c_pip_write(cyapa, ping, sizeof(ping)); cyapa 424 drivers/input/mouse/cyapa_gen6.c return cyapa_pip_deep_sleep(cyapa, state); cyapa 427 drivers/input/mouse/cyapa_gen6.c static int cyapa_gen6_set_power_mode(struct cyapa *cyapa, cyapa 430 drivers/input/mouse/cyapa_gen6.c struct device *dev = &cyapa->client->dev; cyapa 432 drivers/input/mouse/cyapa_gen6.c &cyapa->gen6_interval_setting; cyapa 436 drivers/input/mouse/cyapa_gen6.c if (cyapa->state != CYAPA_STATE_GEN6_APP) cyapa 439 drivers/input/mouse/cyapa_gen6.c if (PIP_DEV_GET_PWR_STATE(cyapa) == UNINIT_PWR_MODE) { cyapa 445 drivers/input/mouse/cyapa_gen6.c PIP_DEV_SET_PWR_STATE(cyapa, PWR_MODE_OFF); cyapa 448 drivers/input/mouse/cyapa_gen6.c if (PIP_DEV_UNINIT_SLEEP_TIME(cyapa) && cyapa 449 drivers/input/mouse/cyapa_gen6.c PIP_DEV_GET_PWR_STATE(cyapa) != PWR_MODE_OFF) cyapa 450 drivers/input/mouse/cyapa_gen6.c PIP_DEV_SET_SLEEP_TIME(cyapa, UNINIT_SLEEP_TIME); cyapa 452 drivers/input/mouse/cyapa_gen6.c if (PIP_DEV_GET_PWR_STATE(cyapa) == power_mode) { cyapa 456 drivers/input/mouse/cyapa_gen6.c PIP_DEV_GET_SLEEP_TIME(cyapa) == sleep_time) { cyapa 463 drivers/input/mouse/cyapa_gen6.c cyapa_gen6_config_dev_irq(cyapa, GEN6_DISABLE_CMD_IRQ); cyapa 465 drivers/input/mouse/cyapa_gen6.c error = cyapa_gen6_deep_sleep(cyapa, PIP_DEEP_SLEEP_STATE_OFF); cyapa 471 drivers/input/mouse/cyapa_gen6.c PIP_DEV_SET_PWR_STATE(cyapa, PWR_MODE_OFF); cyapa 480 drivers/input/mouse/cyapa_gen6.c if (PIP_DEV_GET_PWR_STATE(cyapa) == PWR_MODE_OFF) { cyapa 481 drivers/input/mouse/cyapa_gen6.c error = cyapa_gen6_deep_sleep(cyapa, PIP_DEEP_SLEEP_STATE_ON); cyapa 492 drivers/input/mouse/cyapa_gen6.c cyapa_gen6_config_dev_irq(cyapa, GEN6_DISABLE_CMD_IRQ); cyapa 495 drivers/input/mouse/cyapa_gen6.c error = cyapa_gen6_change_power_state(cyapa, cyapa 502 drivers/input/mouse/cyapa_gen6.c PIP_DEV_SET_PWR_STATE(cyapa, PWR_MODE_FULL_ACTIVE); cyapa 505 drivers/input/mouse/cyapa_gen6.c cyapa_gen6_get_interval_setting(cyapa, interval_setting); cyapa 508 drivers/input/mouse/cyapa_gen6.c error = cyapa_gen6_change_power_state(cyapa, cyapa 515 drivers/input/mouse/cyapa_gen6.c PIP_DEV_SET_PWR_STATE(cyapa, PWR_MODE_BTN_ONLY); cyapa 534 drivers/input/mouse/cyapa_gen6.c cyapa_gen6_set_interval_setting(cyapa, cyapa 538 drivers/input/mouse/cyapa_gen6.c error = cyapa_gen6_change_power_state(cyapa, lp_mode); cyapa 545 drivers/input/mouse/cyapa_gen6.c PIP_DEV_SET_SLEEP_TIME(cyapa, sleep_time); cyapa 546 drivers/input/mouse/cyapa_gen6.c PIP_DEV_SET_PWR_STATE(cyapa, cyapa 551 drivers/input/mouse/cyapa_gen6.c cyapa_gen6_config_dev_irq(cyapa, GEN6_ENABLE_CMD_IRQ); cyapa 555 drivers/input/mouse/cyapa_gen6.c static int cyapa_gen6_initialize(struct cyapa *cyapa) cyapa 560 drivers/input/mouse/cyapa_gen6.c static int cyapa_pip_retrieve_data_structure(struct cyapa *cyapa, cyapa 584 drivers/input/mouse/cyapa_gen6.c error = cyapa_i2c_pip_cmd_irq_sync(cyapa, cyapa 608 drivers/input/mouse/cyapa_gen6.c struct cyapa *cyapa = dev_get_drvdata(dev); cyapa 616 drivers/input/mouse/cyapa_gen6.c if (!cyapa_is_pip_app_mode(cyapa)) cyapa 620 drivers/input/mouse/cyapa_gen6.c error = cyapa_pip_suspend_scanning(cyapa); cyapa 626 drivers/input/mouse/cyapa_gen6.c error = cyapa_pip_retrieve_data_structure(cyapa, 0, data_len, cyapa 643 drivers/input/mouse/cyapa_gen6.c error = cyapa_pip_retrieve_data_structure(cyapa, 0, data_len, cyapa 656 drivers/input/mouse/cyapa_gen6.c resume_error = cyapa_pip_resume_scanning(cyapa); cyapa 665 drivers/input/mouse/cyapa_gen6.c static int cyapa_gen6_operational_check(struct cyapa *cyapa) cyapa 667 drivers/input/mouse/cyapa_gen6.c struct device *dev = &cyapa->client->dev; cyapa 670 drivers/input/mouse/cyapa_gen6.c if (cyapa->gen != CYAPA_GEN6) cyapa 673 drivers/input/mouse/cyapa_gen6.c switch (cyapa->state) { cyapa 675 drivers/input/mouse/cyapa_gen6.c error = cyapa_pip_bl_exit(cyapa); cyapa 678 drivers/input/mouse/cyapa_gen6.c cyapa_gen6_bl_read_app_info(cyapa); cyapa 682 drivers/input/mouse/cyapa_gen6.c cyapa->state = CYAPA_STATE_GEN6_APP; cyapa 692 drivers/input/mouse/cyapa_gen6.c error = cyapa_gen6_set_power_mode(cyapa, cyapa 699 drivers/input/mouse/cyapa_gen6.c error = cyapa_pip_set_proximity(cyapa, true); cyapa 705 drivers/input/mouse/cyapa_gen6.c error = cyapa_gen6_read_sys_info(cyapa); cyapa 709 drivers/input/mouse/cyapa_gen6.c if (memcmp(cyapa->product_id, product_id, cyapa 712 drivers/input/mouse/cyapa_gen6.c __func__, cyapa->product_id);