applespi 539 drivers/input/keyboard/applespi.c static void applespi_setup_read_txfrs(struct applespi_data *applespi) applespi 541 drivers/input/keyboard/applespi.c struct spi_message *msg = &applespi->rd_m; applespi 542 drivers/input/keyboard/applespi.c struct spi_transfer *dl_t = &applespi->dl_t; applespi 543 drivers/input/keyboard/applespi.c struct spi_transfer *rd_t = &applespi->rd_t; applespi 548 drivers/input/keyboard/applespi.c dl_t->delay_usecs = applespi->spi_settings.spi_cs_delay; applespi 550 drivers/input/keyboard/applespi.c rd_t->rx_buf = applespi->rx_buffer; applespi 558 drivers/input/keyboard/applespi.c static void applespi_setup_write_txfrs(struct applespi_data *applespi) applespi 560 drivers/input/keyboard/applespi.c struct spi_message *msg = &applespi->wr_m; applespi 561 drivers/input/keyboard/applespi.c struct spi_transfer *wt_t = &applespi->ww_t; applespi 562 drivers/input/keyboard/applespi.c struct spi_transfer *dl_t = &applespi->wd_t; applespi 563 drivers/input/keyboard/applespi.c struct spi_transfer *wr_t = &applespi->wr_t; applespi 564 drivers/input/keyboard/applespi.c struct spi_transfer *st_t = &applespi->st_t; applespi 580 drivers/input/keyboard/applespi.c dl_t->delay_usecs = applespi->spi_settings.spi_cs_delay; applespi 582 drivers/input/keyboard/applespi.c wr_t->tx_buf = applespi->tx_buffer; applespi 586 drivers/input/keyboard/applespi.c st_t->rx_buf = applespi->tx_status; applespi 596 drivers/input/keyboard/applespi.c static int applespi_async(struct applespi_data *applespi, applespi 600 drivers/input/keyboard/applespi.c message->context = applespi; applespi 602 drivers/input/keyboard/applespi.c return spi_async(applespi->spi, message); applespi 605 drivers/input/keyboard/applespi.c static inline bool applespi_check_write_status(struct applespi_data *applespi, applespi 611 drivers/input/keyboard/applespi.c dev_warn(&applespi->spi->dev, "Error writing to device: %d\n", applespi 616 drivers/input/keyboard/applespi.c if (memcmp(applespi->tx_status, status_ok, APPLESPI_STATUS_SIZE)) { applespi 617 drivers/input/keyboard/applespi.c dev_warn(&applespi->spi->dev, "Error writing to device: %*ph\n", applespi 618 drivers/input/keyboard/applespi.c APPLESPI_STATUS_SIZE, applespi->tx_status); applespi 625 drivers/input/keyboard/applespi.c static int applespi_get_spi_settings(struct applespi_data *applespi) applespi 627 drivers/input/keyboard/applespi.c struct acpi_device *adev = ACPI_COMPANION(&applespi->spi->dev); applespi 629 drivers/input/keyboard/applespi.c struct spi_settings *settings = &applespi->spi_settings; applespi 634 drivers/input/keyboard/applespi.c dev_warn(&applespi->spi->dev, applespi 640 drivers/input/keyboard/applespi.c dev_warn(&applespi->spi->dev, applespi 646 drivers/input/keyboard/applespi.c dev_warn(&applespi->spi->dev, applespi 649 drivers/input/keyboard/applespi.c dev_dbg(&applespi->spi->dev, applespi 657 drivers/input/keyboard/applespi.c static int applespi_setup_spi(struct applespi_data *applespi) applespi 661 drivers/input/keyboard/applespi.c sts = applespi_get_spi_settings(applespi); applespi 665 drivers/input/keyboard/applespi.c spin_lock_init(&applespi->cmd_msg_lock); applespi 666 drivers/input/keyboard/applespi.c init_waitqueue_head(&applespi->drain_complete); applespi 671 drivers/input/keyboard/applespi.c static int applespi_enable_spi(struct applespi_data *applespi) applespi 677 drivers/input/keyboard/applespi.c acpi_sts = acpi_evaluate_integer(applespi->sist, NULL, NULL, applespi 683 drivers/input/keyboard/applespi.c acpi_sts = acpi_execute_simple_method(applespi->sien, NULL, 1); applespi 685 drivers/input/keyboard/applespi.c dev_err(&applespi->spi->dev, "SIEN failed: %s\n", applespi 701 drivers/input/keyboard/applespi.c static int applespi_send_cmd_msg(struct applespi_data *applespi); applespi 703 drivers/input/keyboard/applespi.c static void applespi_msg_complete(struct applespi_data *applespi, applespi 708 drivers/input/keyboard/applespi.c spin_lock_irqsave(&applespi->cmd_msg_lock, flags); applespi 711 drivers/input/keyboard/applespi.c applespi->read_active = false; applespi 713 drivers/input/keyboard/applespi.c applespi->write_active = false; applespi 715 drivers/input/keyboard/applespi.c if (applespi->drain && !applespi->write_active) applespi 716 drivers/input/keyboard/applespi.c wake_up_all(&applespi->drain_complete); applespi 719 drivers/input/keyboard/applespi.c applespi->cmd_msg_queued = false; applespi 720 drivers/input/keyboard/applespi.c applespi_send_cmd_msg(applespi); applespi 723 drivers/input/keyboard/applespi.c spin_unlock_irqrestore(&applespi->cmd_msg_lock, flags); applespi 728 drivers/input/keyboard/applespi.c struct applespi_data *applespi = context; applespi 729 drivers/input/keyboard/applespi.c enum applespi_evt_type evt_type = applespi->cmd_evt_type; applespi 732 drivers/input/keyboard/applespi.c applespi->tx_buffer, applespi 735 drivers/input/keyboard/applespi.c applespi->tx_status, applespi 738 drivers/input/keyboard/applespi.c if (!applespi_check_write_status(applespi, applespi->wr_m.status)) { applespi 743 drivers/input/keyboard/applespi.c applespi_msg_complete(applespi, true, false); applespi 747 drivers/input/keyboard/applespi.c static int applespi_send_cmd_msg(struct applespi_data *applespi) applespi 751 drivers/input/keyboard/applespi.c struct spi_packet *packet = (struct spi_packet *)applespi->tx_buffer; applespi 757 drivers/input/keyboard/applespi.c if (applespi->drain) applespi 761 drivers/input/keyboard/applespi.c if (applespi->cmd_msg_queued) applespi 768 drivers/input/keyboard/applespi.c if (applespi->want_tp_info_cmd) { applespi 769 drivers/input/keyboard/applespi.c applespi->want_tp_info_cmd = false; applespi 770 drivers/input/keyboard/applespi.c applespi->want_mt_init_cmd = true; applespi 771 drivers/input/keyboard/applespi.c applespi->cmd_evt_type = ET_CMD_TP_INI; applespi 782 drivers/input/keyboard/applespi.c } else if (applespi->want_mt_init_cmd) { applespi 783 drivers/input/keyboard/applespi.c applespi->want_mt_init_cmd = false; applespi 784 drivers/input/keyboard/applespi.c applespi->cmd_evt_type = ET_CMD_TP_INI; applespi 795 drivers/input/keyboard/applespi.c } else if (applespi->want_cl_led_on != applespi->have_cl_led_on) { applespi 796 drivers/input/keyboard/applespi.c applespi->have_cl_led_on = applespi->want_cl_led_on; applespi 797 drivers/input/keyboard/applespi.c applespi->cmd_evt_type = ET_CMD_CL; applespi 806 drivers/input/keyboard/applespi.c message->capsl_command.led = applespi->have_cl_led_on ? 2 : 0; applespi 809 drivers/input/keyboard/applespi.c } else if (applespi->want_bl_level != applespi->have_bl_level) { applespi 810 drivers/input/keyboard/applespi.c applespi->have_bl_level = applespi->want_bl_level; applespi 811 drivers/input/keyboard/applespi.c applespi->cmd_evt_type = ET_CMD_BL; applespi 821 drivers/input/keyboard/applespi.c cpu_to_le16(applespi->have_bl_level); applespi 823 drivers/input/keyboard/applespi.c if (applespi->have_bl_level > 0) applespi 838 drivers/input/keyboard/applespi.c message->counter = applespi->cmd_msg_cntr++ % (U8_MAX + 1); applespi 851 drivers/input/keyboard/applespi.c sts = applespi_async(applespi, &applespi->wr_m, applespi 854 drivers/input/keyboard/applespi.c dev_warn(&applespi->spi->dev, applespi 859 drivers/input/keyboard/applespi.c applespi->cmd_msg_queued = true; applespi 860 drivers/input/keyboard/applespi.c applespi->write_active = true; applespi 865 drivers/input/keyboard/applespi.c static void applespi_init(struct applespi_data *applespi, bool is_resume) applespi 869 drivers/input/keyboard/applespi.c spin_lock_irqsave(&applespi->cmd_msg_lock, flags); applespi 872 drivers/input/keyboard/applespi.c applespi->want_mt_init_cmd = true; applespi 874 drivers/input/keyboard/applespi.c applespi->want_tp_info_cmd = true; applespi 875 drivers/input/keyboard/applespi.c applespi_send_cmd_msg(applespi); applespi 877 drivers/input/keyboard/applespi.c spin_unlock_irqrestore(&applespi->cmd_msg_lock, flags); applespi 880 drivers/input/keyboard/applespi.c static int applespi_set_capsl_led(struct applespi_data *applespi, applespi 886 drivers/input/keyboard/applespi.c spin_lock_irqsave(&applespi->cmd_msg_lock, flags); applespi 888 drivers/input/keyboard/applespi.c applespi->want_cl_led_on = capslock_on; applespi 889 drivers/input/keyboard/applespi.c sts = applespi_send_cmd_msg(applespi); applespi 891 drivers/input/keyboard/applespi.c spin_unlock_irqrestore(&applespi->cmd_msg_lock, flags); applespi 899 drivers/input/keyboard/applespi.c struct applespi_data *applespi = applespi 903 drivers/input/keyboard/applespi.c spin_lock_irqsave(&applespi->cmd_msg_lock, flags); applespi 906 drivers/input/keyboard/applespi.c applespi->want_bl_level = value; applespi 913 drivers/input/keyboard/applespi.c applespi->want_bl_level = applespi 918 drivers/input/keyboard/applespi.c applespi_send_cmd_msg(applespi); applespi 920 drivers/input/keyboard/applespi.c spin_unlock_irqrestore(&applespi->cmd_msg_lock, flags); applespi 926 drivers/input/keyboard/applespi.c struct applespi_data *applespi = input_get_drvdata(dev); applespi 930 drivers/input/keyboard/applespi.c applespi_set_capsl_led(applespi, !!test_bit(LED_CAPSL, dev->led)); applespi 944 drivers/input/keyboard/applespi.c static void applespi_debug_update_dimensions(struct applespi_data *applespi, applespi 947 drivers/input/keyboard/applespi.c applespi->tp_dim_min_x = min(applespi->tp_dim_min_x, applespi 949 drivers/input/keyboard/applespi.c applespi->tp_dim_max_x = max(applespi->tp_dim_max_x, applespi 951 drivers/input/keyboard/applespi.c applespi->tp_dim_min_y = min(applespi->tp_dim_min_y, applespi 953 drivers/input/keyboard/applespi.c applespi->tp_dim_max_y = max(applespi->tp_dim_max_y, applespi 959 drivers/input/keyboard/applespi.c struct applespi_data *applespi = inode->i_private; applespi 961 drivers/input/keyboard/applespi.c file->private_data = applespi; applespi 963 drivers/input/keyboard/applespi.c snprintf(applespi->tp_dim_val, sizeof(applespi->tp_dim_val), applespi 965 drivers/input/keyboard/applespi.c applespi->touchpad_input_dev->id.product, applespi 966 drivers/input/keyboard/applespi.c applespi->tp_dim_min_x, applespi->tp_dim_min_y, applespi 967 drivers/input/keyboard/applespi.c applespi->tp_dim_max_x - applespi->tp_dim_min_x, applespi 968 drivers/input/keyboard/applespi.c applespi->tp_dim_max_y - applespi->tp_dim_min_y); applespi 976 drivers/input/keyboard/applespi.c struct applespi_data *applespi = file->private_data; applespi 978 drivers/input/keyboard/applespi.c return simple_read_from_buffer(buf, len, off, applespi->tp_dim_val, applespi 979 drivers/input/keyboard/applespi.c strlen(applespi->tp_dim_val)); applespi 1010 drivers/input/keyboard/applespi.c static void report_tp_state(struct applespi_data *applespi, applespi 1015 drivers/input/keyboard/applespi.c const struct applespi_tp_info *tp_info = &applespi->tp_info; applespi 1019 drivers/input/keyboard/applespi.c input = smp_load_acquire(&applespi->touchpad_input_dev); applespi 1029 drivers/input/keyboard/applespi.c applespi->pos[n].x = le16_to_int(f->abs_x); applespi 1030 drivers/input/keyboard/applespi.c applespi->pos[n].y = tp_info->y_min + tp_info->y_max - applespi 1034 drivers/input/keyboard/applespi.c if (applespi->debug_tp_dim) applespi 1035 drivers/input/keyboard/applespi.c applespi_debug_update_dimensions(applespi, f); applespi 1038 drivers/input/keyboard/applespi.c input_mt_assign_slots(input, applespi->slots, applespi->pos, n, 0); applespi 1041 drivers/input/keyboard/applespi.c report_finger_data(input, applespi->slots[i], applespi 1042 drivers/input/keyboard/applespi.c &applespi->pos[i], &t->fingers[i]); applespi 1123 drivers/input/keyboard/applespi.c applespi_handle_keyboard_event(struct applespi_data *applespi, applespi 1143 drivers/input/keyboard/applespi.c applespi->last_keys_pressed[i], MAX_ROLLOVER)) applespi 1146 drivers/input/keyboard/applespi.c key = applespi_code_to_key(applespi->last_keys_pressed[i], applespi 1147 drivers/input/keyboard/applespi.c applespi->last_keys_fn_pressed[i]); applespi 1148 drivers/input/keyboard/applespi.c input_report_key(applespi->keyboard_input_dev, key, 0); applespi 1149 drivers/input/keyboard/applespi.c applespi->last_keys_fn_pressed[i] = 0; applespi 1160 drivers/input/keyboard/applespi.c input_report_key(applespi->keyboard_input_dev, key, 1); applespi 1161 drivers/input/keyboard/applespi.c applespi->last_keys_fn_pressed[i] = applespi 1169 drivers/input/keyboard/applespi.c input_report_key(applespi->keyboard_input_dev, applespi 1172 drivers/input/keyboard/applespi.c input_report_key(applespi->keyboard_input_dev, applespi 1177 drivers/input/keyboard/applespi.c if (keyboard_protocol->fn_pressed && !applespi->last_fn_pressed) applespi 1178 drivers/input/keyboard/applespi.c input_report_key(applespi->keyboard_input_dev, KEY_FN, 1); applespi 1179 drivers/input/keyboard/applespi.c else if (!keyboard_protocol->fn_pressed && applespi->last_fn_pressed) applespi 1180 drivers/input/keyboard/applespi.c input_report_key(applespi->keyboard_input_dev, KEY_FN, 0); applespi 1181 drivers/input/keyboard/applespi.c applespi->last_fn_pressed = keyboard_protocol->fn_pressed; applespi 1184 drivers/input/keyboard/applespi.c input_sync(applespi->keyboard_input_dev); applespi 1185 drivers/input/keyboard/applespi.c memcpy(&applespi->last_keys_pressed, keyboard_protocol->keys_pressed, applespi 1186 drivers/input/keyboard/applespi.c sizeof(applespi->last_keys_pressed)); applespi 1202 drivers/input/keyboard/applespi.c applespi_register_touchpad_device(struct applespi_data *applespi, applespi 1212 drivers/input/keyboard/applespi.c dev_warn(&applespi->spi->dev, applespi 1218 drivers/input/keyboard/applespi.c applespi->tp_info = *tp_info; applespi 1225 drivers/input/keyboard/applespi.c dev_info(&applespi->spi->dev, applespi 1227 drivers/input/keyboard/applespi.c applespi->tp_info.x_min = x; applespi 1228 drivers/input/keyboard/applespi.c applespi->tp_info.y_min = y; applespi 1229 drivers/input/keyboard/applespi.c applespi->tp_info.x_max = x + w; applespi 1230 drivers/input/keyboard/applespi.c applespi->tp_info.y_max = y + h; applespi 1232 drivers/input/keyboard/applespi.c dev_warn(&applespi->spi->dev, applespi 1241 drivers/input/keyboard/applespi.c applespi->tp_info.x_min, applespi 1242 drivers/input/keyboard/applespi.c applespi->tp_info.y_min, applespi 1243 drivers/input/keyboard/applespi.c applespi->tp_info.x_max - applespi->tp_info.x_min, applespi 1244 drivers/input/keyboard/applespi.c applespi->tp_info.y_max - applespi->tp_info.y_min); applespi 1248 drivers/input/keyboard/applespi.c touchpad_input_dev = devm_input_allocate_device(&applespi->spi->dev); applespi 1250 drivers/input/keyboard/applespi.c dev_err(&applespi->spi->dev, applespi 1257 drivers/input/keyboard/applespi.c touchpad_input_dev->dev.parent = &applespi->spi->dev; applespi 1289 drivers/input/keyboard/applespi.c applespi->tp_info.x_min, applespi->tp_info.x_max, applespi 1292 drivers/input/keyboard/applespi.c applespi->tp_info.y_min, applespi->tp_info.y_max, applespi 1303 drivers/input/keyboard/applespi.c dev_err(&applespi->spi->dev, applespi 1311 drivers/input/keyboard/applespi.c dev_err(&applespi->spi->dev, applespi 1317 drivers/input/keyboard/applespi.c smp_store_release(&applespi->touchpad_input_dev, touchpad_input_dev); applespi 1324 drivers/input/keyboard/applespi.c struct applespi_data *applespi = applespi 1327 drivers/input/keyboard/applespi.c applespi_register_touchpad_device(applespi, &applespi->rcvd_tp_info); applespi 1330 drivers/input/keyboard/applespi.c static void applespi_handle_cmd_response(struct applespi_data *applespi, applespi 1340 drivers/input/keyboard/applespi.c applespi->rcvd_tp_info = message->tp_info; applespi 1341 drivers/input/keyboard/applespi.c schedule_work(&applespi->work); applespi 1346 drivers/input/keyboard/applespi.c dev_warn_ratelimited(&applespi->spi->dev, applespi 1355 drivers/input/keyboard/applespi.c dev_info(&applespi->spi->dev, "modeswitch done.\n"); applespi 1358 drivers/input/keyboard/applespi.c static bool applespi_verify_crc(struct applespi_data *applespi, u8 *buffer, applespi 1365 drivers/input/keyboard/applespi.c dev_warn_ratelimited(&applespi->spi->dev, applespi 1375 drivers/input/keyboard/applespi.c static void applespi_debug_print_read_packet(struct applespi_data *applespi, applespi 1387 drivers/input/keyboard/applespi.c evt_type = applespi->cmd_evt_type; applespi 1391 drivers/input/keyboard/applespi.c applespi_get_trace_fun(evt_type)(evt_type, PT_READ, applespi->rx_buffer, applespi 1395 drivers/input/keyboard/applespi.c static void applespi_got_data(struct applespi_data *applespi) applespi 1405 drivers/input/keyboard/applespi.c if (!applespi_verify_crc(applespi, applespi->rx_buffer, applespi 1409 drivers/input/keyboard/applespi.c spin_lock_irqsave(&applespi->cmd_msg_lock, flags); applespi 1411 drivers/input/keyboard/applespi.c if (applespi->drain) { applespi 1412 drivers/input/keyboard/applespi.c applespi->read_active = false; applespi 1413 drivers/input/keyboard/applespi.c applespi->write_active = false; applespi 1415 drivers/input/keyboard/applespi.c wake_up_all(&applespi->drain_complete); applespi 1418 drivers/input/keyboard/applespi.c spin_unlock_irqrestore(&applespi->cmd_msg_lock, flags); applespi 1423 drivers/input/keyboard/applespi.c packet = (struct spi_packet *)applespi->rx_buffer; applespi 1425 drivers/input/keyboard/applespi.c applespi_debug_print_read_packet(applespi, packet); applespi 1432 drivers/input/keyboard/applespi.c dev_warn_ratelimited(&applespi->spi->dev, applespi 1440 drivers/input/keyboard/applespi.c if (off != applespi->saved_msg_len) { applespi 1441 drivers/input/keyboard/applespi.c dev_warn_ratelimited(&applespi->spi->dev, applespi 1443 drivers/input/keyboard/applespi.c off, applespi->saved_msg_len); applespi 1448 drivers/input/keyboard/applespi.c dev_warn_ratelimited(&applespi->spi->dev, applespi 1455 drivers/input/keyboard/applespi.c dev_warn_ratelimited(&applespi->spi->dev, applespi 1461 drivers/input/keyboard/applespi.c memcpy(applespi->msg_buf + off, &packet->data, len); applespi 1462 drivers/input/keyboard/applespi.c applespi->saved_msg_len += len; applespi 1467 drivers/input/keyboard/applespi.c message = (struct message *)applespi->msg_buf; applespi 1468 drivers/input/keyboard/applespi.c msg_len = applespi->saved_msg_len; applespi 1475 drivers/input/keyboard/applespi.c if (!applespi_verify_crc(applespi, (u8 *)message, msg_len)) applespi 1479 drivers/input/keyboard/applespi.c dev_warn_ratelimited(&applespi->spi->dev, applespi 1489 drivers/input/keyboard/applespi.c applespi_handle_keyboard_event(applespi, &message->keyboard); applespi 1500 drivers/input/keyboard/applespi.c dev_warn_ratelimited(&applespi->spi->dev, applespi 1508 drivers/input/keyboard/applespi.c dev_warn_ratelimited(&applespi->spi->dev, applespi 1515 drivers/input/keyboard/applespi.c report_tp_state(applespi, tp); applespi 1518 drivers/input/keyboard/applespi.c applespi_handle_cmd_response(applespi, packet, message); applespi 1522 drivers/input/keyboard/applespi.c applespi->saved_msg_len = 0; applespi 1524 drivers/input/keyboard/applespi.c applespi_msg_complete(applespi, packet->flags == PACKET_TYPE_WRITE, applespi 1530 drivers/input/keyboard/applespi.c struct applespi_data *applespi = context; applespi 1532 drivers/input/keyboard/applespi.c if (applespi->rd_m.status < 0) { applespi 1533 drivers/input/keyboard/applespi.c dev_warn(&applespi->spi->dev, "Error reading from device: %d\n", applespi 1534 drivers/input/keyboard/applespi.c applespi->rd_m.status); applespi 1540 drivers/input/keyboard/applespi.c applespi_msg_complete(applespi, true, true); applespi 1542 drivers/input/keyboard/applespi.c applespi_got_data(applespi); applespi 1545 drivers/input/keyboard/applespi.c acpi_finish_gpe(NULL, applespi->gpe); applespi 1550 drivers/input/keyboard/applespi.c struct applespi_data *applespi = context; applespi 1556 drivers/input/keyboard/applespi.c spin_lock_irqsave(&applespi->cmd_msg_lock, flags); applespi 1558 drivers/input/keyboard/applespi.c if (!applespi->suspended) { applespi 1559 drivers/input/keyboard/applespi.c sts = applespi_async(applespi, &applespi->rd_m, applespi 1562 drivers/input/keyboard/applespi.c dev_warn(&applespi->spi->dev, applespi 1566 drivers/input/keyboard/applespi.c applespi->read_active = true; applespi 1569 drivers/input/keyboard/applespi.c spin_unlock_irqrestore(&applespi->cmd_msg_lock, flags); applespi 1574 drivers/input/keyboard/applespi.c static int applespi_get_saved_bl_level(struct applespi_data *applespi) applespi 1592 drivers/input/keyboard/applespi.c dev_warn(&applespi->spi->dev, applespi 1601 drivers/input/keyboard/applespi.c static void applespi_save_bl_level(struct applespi_data *applespi, applespi 1620 drivers/input/keyboard/applespi.c dev_warn(&applespi->spi->dev, applespi 1626 drivers/input/keyboard/applespi.c struct applespi_data *applespi; applespi 1641 drivers/input/keyboard/applespi.c applespi = devm_kzalloc(&spi->dev, sizeof(*applespi), GFP_KERNEL); applespi 1642 drivers/input/keyboard/applespi.c if (!applespi) applespi 1645 drivers/input/keyboard/applespi.c applespi->spi = spi; applespi 1647 drivers/input/keyboard/applespi.c INIT_WORK(&applespi->work, applespi_worker); applespi 1650 drivers/input/keyboard/applespi.c spi_set_drvdata(spi, applespi); applespi 1653 drivers/input/keyboard/applespi.c applespi->tx_buffer = devm_kmalloc(&spi->dev, APPLESPI_PACKET_SIZE, applespi 1655 drivers/input/keyboard/applespi.c applespi->tx_status = devm_kmalloc(&spi->dev, APPLESPI_STATUS_SIZE, applespi 1657 drivers/input/keyboard/applespi.c applespi->rx_buffer = devm_kmalloc(&spi->dev, APPLESPI_PACKET_SIZE, applespi 1659 drivers/input/keyboard/applespi.c applespi->msg_buf = devm_kmalloc_array(&spi->dev, MAX_PKTS_PER_MSG, applespi 1663 drivers/input/keyboard/applespi.c if (!applespi->tx_buffer || !applespi->tx_status || applespi 1664 drivers/input/keyboard/applespi.c !applespi->rx_buffer || !applespi->msg_buf) applespi 1668 drivers/input/keyboard/applespi.c applespi_setup_read_txfrs(applespi); applespi 1669 drivers/input/keyboard/applespi.c applespi_setup_write_txfrs(applespi); applespi 1672 drivers/input/keyboard/applespi.c acpi_sts = acpi_get_handle(spi_handle, "SIEN", &applespi->sien); applespi 1674 drivers/input/keyboard/applespi.c dev_err(&applespi->spi->dev, applespi 1680 drivers/input/keyboard/applespi.c acpi_sts = acpi_get_handle(spi_handle, "SIST", &applespi->sist); applespi 1682 drivers/input/keyboard/applespi.c dev_err(&applespi->spi->dev, applespi 1689 drivers/input/keyboard/applespi.c sts = applespi_setup_spi(applespi); applespi 1693 drivers/input/keyboard/applespi.c sts = applespi_enable_spi(applespi); applespi 1698 drivers/input/keyboard/applespi.c applespi->keyboard_input_dev = devm_input_allocate_device(&spi->dev); applespi 1700 drivers/input/keyboard/applespi.c if (!applespi->keyboard_input_dev) applespi 1703 drivers/input/keyboard/applespi.c applespi->keyboard_input_dev->name = "Apple SPI Keyboard"; applespi 1704 drivers/input/keyboard/applespi.c applespi->keyboard_input_dev->phys = "applespi/input0"; applespi 1705 drivers/input/keyboard/applespi.c applespi->keyboard_input_dev->dev.parent = &spi->dev; applespi 1706 drivers/input/keyboard/applespi.c applespi->keyboard_input_dev->id.bustype = BUS_SPI; applespi 1708 drivers/input/keyboard/applespi.c applespi->keyboard_input_dev->evbit[0] = applespi 1710 drivers/input/keyboard/applespi.c applespi->keyboard_input_dev->ledbit[0] = BIT_MASK(LED_CAPSL); applespi 1712 drivers/input/keyboard/applespi.c input_set_drvdata(applespi->keyboard_input_dev, applespi); applespi 1713 drivers/input/keyboard/applespi.c applespi->keyboard_input_dev->event = applespi_event; applespi 1717 drivers/input/keyboard/applespi.c input_set_capability(applespi->keyboard_input_dev, applespi 1722 drivers/input/keyboard/applespi.c input_set_capability(applespi->keyboard_input_dev, applespi 1727 drivers/input/keyboard/applespi.c input_set_capability(applespi->keyboard_input_dev, applespi 1730 drivers/input/keyboard/applespi.c input_set_capability(applespi->keyboard_input_dev, EV_KEY, KEY_FN); applespi 1732 drivers/input/keyboard/applespi.c sts = input_register_device(applespi->keyboard_input_dev); applespi 1734 drivers/input/keyboard/applespi.c dev_err(&applespi->spi->dev, applespi 1745 drivers/input/keyboard/applespi.c dev_err(&applespi->spi->dev, applespi 1750 drivers/input/keyboard/applespi.c applespi->gpe = (int)gpe; applespi 1752 drivers/input/keyboard/applespi.c acpi_sts = acpi_install_gpe_handler(NULL, applespi->gpe, applespi 1754 drivers/input/keyboard/applespi.c applespi_notify, applespi); applespi 1756 drivers/input/keyboard/applespi.c dev_err(&applespi->spi->dev, applespi 1758 drivers/input/keyboard/applespi.c applespi->gpe, acpi_format_exception(acpi_sts)); applespi 1762 drivers/input/keyboard/applespi.c applespi->suspended = false; applespi 1764 drivers/input/keyboard/applespi.c acpi_sts = acpi_enable_gpe(NULL, applespi->gpe); applespi 1766 drivers/input/keyboard/applespi.c dev_err(&applespi->spi->dev, applespi 1768 drivers/input/keyboard/applespi.c applespi->gpe, acpi_format_exception(acpi_sts)); applespi 1769 drivers/input/keyboard/applespi.c acpi_remove_gpe_handler(NULL, applespi->gpe, applespi_notify); applespi 1774 drivers/input/keyboard/applespi.c applespi_init(applespi, false); applespi 1784 drivers/input/keyboard/applespi.c sts = applespi_get_saved_bl_level(applespi); applespi 1786 drivers/input/keyboard/applespi.c applespi_set_bl_level(&applespi->backlight_info, sts); applespi 1788 drivers/input/keyboard/applespi.c applespi->backlight_info.name = "spi::kbd_backlight"; applespi 1789 drivers/input/keyboard/applespi.c applespi->backlight_info.default_trigger = "kbd-backlight"; applespi 1790 drivers/input/keyboard/applespi.c applespi->backlight_info.brightness_set = applespi_set_bl_level; applespi 1792 drivers/input/keyboard/applespi.c sts = devm_led_classdev_register(&spi->dev, &applespi->backlight_info); applespi 1794 drivers/input/keyboard/applespi.c dev_warn(&applespi->spi->dev, applespi 1799 drivers/input/keyboard/applespi.c applespi->debugfs_root = debugfs_create_dir("applespi", NULL); applespi 1801 drivers/input/keyboard/applespi.c debugfs_create_bool("enable_tp_dim", 0600, applespi->debugfs_root, applespi 1802 drivers/input/keyboard/applespi.c &applespi->debug_tp_dim); applespi 1804 drivers/input/keyboard/applespi.c debugfs_create_file("tp_dim", 0400, applespi->debugfs_root, applespi, applespi 1810 drivers/input/keyboard/applespi.c static void applespi_drain_writes(struct applespi_data *applespi) applespi 1814 drivers/input/keyboard/applespi.c spin_lock_irqsave(&applespi->cmd_msg_lock, flags); applespi 1816 drivers/input/keyboard/applespi.c applespi->drain = true; applespi 1817 drivers/input/keyboard/applespi.c wait_event_lock_irq(applespi->drain_complete, !applespi->write_active, applespi 1818 drivers/input/keyboard/applespi.c applespi->cmd_msg_lock); applespi 1820 drivers/input/keyboard/applespi.c spin_unlock_irqrestore(&applespi->cmd_msg_lock, flags); applespi 1823 drivers/input/keyboard/applespi.c static void applespi_drain_reads(struct applespi_data *applespi) applespi 1827 drivers/input/keyboard/applespi.c spin_lock_irqsave(&applespi->cmd_msg_lock, flags); applespi 1829 drivers/input/keyboard/applespi.c wait_event_lock_irq(applespi->drain_complete, !applespi->read_active, applespi 1830 drivers/input/keyboard/applespi.c applespi->cmd_msg_lock); applespi 1832 drivers/input/keyboard/applespi.c applespi->suspended = true; applespi 1834 drivers/input/keyboard/applespi.c spin_unlock_irqrestore(&applespi->cmd_msg_lock, flags); applespi 1839 drivers/input/keyboard/applespi.c struct applespi_data *applespi = spi_get_drvdata(spi); applespi 1841 drivers/input/keyboard/applespi.c applespi_drain_writes(applespi); applespi 1843 drivers/input/keyboard/applespi.c acpi_disable_gpe(NULL, applespi->gpe); applespi 1844 drivers/input/keyboard/applespi.c acpi_remove_gpe_handler(NULL, applespi->gpe, applespi_notify); applespi 1847 drivers/input/keyboard/applespi.c applespi_drain_reads(applespi); applespi 1849 drivers/input/keyboard/applespi.c debugfs_remove_recursive(applespi->debugfs_root); applespi 1856 drivers/input/keyboard/applespi.c struct applespi_data *applespi = spi_get_drvdata(spi); applespi 1858 drivers/input/keyboard/applespi.c applespi_save_bl_level(applespi, applespi->have_bl_level); applespi 1864 drivers/input/keyboard/applespi.c struct applespi_data *applespi = spi_get_drvdata(spi); applespi 1866 drivers/input/keyboard/applespi.c applespi_save_bl_level(applespi, applespi->have_bl_level); applespi 1874 drivers/input/keyboard/applespi.c struct applespi_data *applespi = spi_get_drvdata(spi); applespi 1879 drivers/input/keyboard/applespi.c sts = applespi_set_capsl_led(applespi, false); applespi 1881 drivers/input/keyboard/applespi.c dev_warn(&applespi->spi->dev, applespi 1884 drivers/input/keyboard/applespi.c applespi_drain_writes(applespi); applespi 1887 drivers/input/keyboard/applespi.c acpi_sts = acpi_disable_gpe(NULL, applespi->gpe); applespi 1889 drivers/input/keyboard/applespi.c dev_err(&applespi->spi->dev, applespi 1891 drivers/input/keyboard/applespi.c applespi->gpe, acpi_format_exception(acpi_sts)); applespi 1893 drivers/input/keyboard/applespi.c applespi_drain_reads(applespi); applespi 1901 drivers/input/keyboard/applespi.c struct applespi_data *applespi = spi_get_drvdata(spi); applespi 1906 drivers/input/keyboard/applespi.c spin_lock_irqsave(&applespi->cmd_msg_lock, flags); applespi 1908 drivers/input/keyboard/applespi.c applespi->drain = false; applespi 1909 drivers/input/keyboard/applespi.c applespi->have_cl_led_on = false; applespi 1910 drivers/input/keyboard/applespi.c applespi->have_bl_level = 0; applespi 1911 drivers/input/keyboard/applespi.c applespi->cmd_msg_queued = false; applespi 1912 drivers/input/keyboard/applespi.c applespi->read_active = false; applespi 1913 drivers/input/keyboard/applespi.c applespi->write_active = false; applespi 1915 drivers/input/keyboard/applespi.c applespi->suspended = false; applespi 1917 drivers/input/keyboard/applespi.c spin_unlock_irqrestore(&applespi->cmd_msg_lock, flags); applespi 1920 drivers/input/keyboard/applespi.c applespi_enable_spi(applespi); applespi 1923 drivers/input/keyboard/applespi.c acpi_sts = acpi_enable_gpe(NULL, applespi->gpe); applespi 1925 drivers/input/keyboard/applespi.c dev_err(&applespi->spi->dev, applespi 1927 drivers/input/keyboard/applespi.c applespi->gpe, acpi_format_exception(acpi_sts)); applespi 1930 drivers/input/keyboard/applespi.c applespi_init(applespi, true); applespi 10 drivers/input/keyboard/applespi_trace.h #define TRACE_SYSTEM applespi