Lines Matching refs:client_data

18 #define cl_data_to_dev(client_data) ishtp_device(client_data->cl_device)  argument
33 struct ishtp_cl_data *client_data = ishtp_get_client_data(hid_ishtp_cl); in report_bad_packet() local
35 dev_err(cl_data_to_dev(client_data), "[hid-ish]: BAD packet %02X\n" in report_bad_packet()
41 recv_msg->hdr.command, client_data->bad_recv_cnt, in report_bad_packet()
45 (unsigned int)payload_len, client_data->multi_packet_cnt, in report_bad_packet()
70 struct ishtp_cl_data *client_data = ishtp_get_client_data(hid_ishtp_cl); in process_recv() local
71 int curr_hid_dev = client_data->cur_hid_dev; in process_recv()
81 dev_err(cl_data_to_dev(client_data), in process_recv()
85 ++client_data->bad_recv_cnt; in process_recv()
96 ++client_data->bad_recv_cnt; in process_recv()
103 hid_ishtp_trace(client_data, "%s %d\n", in process_recv()
109 client_data->init_done)) { in process_recv()
110 ++client_data->bad_recv_cnt; in process_recv()
117 client_data->hid_dev_count = (unsigned int)*payload; in process_recv()
118 if (!client_data->hid_devices) in process_recv()
119 client_data->hid_devices = devm_kcalloc( in process_recv()
120 cl_data_to_dev(client_data), in process_recv()
121 client_data->hid_dev_count, in process_recv()
124 if (!client_data->hid_devices) { in process_recv()
125 dev_err(cl_data_to_dev(client_data), in process_recv()
127 wake_up_interruptible(&client_data->init_wait); in process_recv()
130 for (i = 0; i < client_data->hid_dev_count; ++i) { in process_recv()
133 dev_err(cl_data_to_dev(client_data), in process_recv()
145 if (client_data->hid_devices) in process_recv()
146 memcpy(client_data->hid_devices + i, in process_recv()
151 client_data->enum_devices_done = true; in process_recv()
152 wake_up_interruptible(&client_data->init_wait); in process_recv()
158 client_data->init_done)) { in process_recv()
159 ++client_data->bad_recv_cnt; in process_recv()
166 if (!client_data->hid_descr[curr_hid_dev]) in process_recv()
167 client_data->hid_descr[curr_hid_dev] = in process_recv()
168 devm_kmalloc(cl_data_to_dev(client_data), in process_recv()
170 if (client_data->hid_descr[curr_hid_dev]) { in process_recv()
171 memcpy(client_data->hid_descr[curr_hid_dev], in process_recv()
173 client_data->hid_descr_size[curr_hid_dev] = in process_recv()
175 client_data->hid_descr_done = true; in process_recv()
177 wake_up_interruptible(&client_data->init_wait); in process_recv()
183 client_data->init_done)) { in process_recv()
184 ++client_data->bad_recv_cnt; in process_recv()
191 if (!client_data->report_descr[curr_hid_dev]) in process_recv()
192 client_data->report_descr[curr_hid_dev] = in process_recv()
193 devm_kmalloc(cl_data_to_dev(client_data), in process_recv()
195 if (client_data->report_descr[curr_hid_dev]) { in process_recv()
196 memcpy(client_data->report_descr[curr_hid_dev], in process_recv()
199 client_data->report_descr_size[curr_hid_dev] = in process_recv()
201 client_data->report_descr_done = true; in process_recv()
203 wake_up_interruptible(&client_data->init_wait); in process_recv()
215 for (i = 0; i < client_data->num_hid_devices; ++i) { in process_recv()
217 client_data->hid_devices[i].dev_id) { in process_recv()
218 hid = client_data->hid_sensor_hubs[i]; in process_recv()
247 for (i = 0; i < client_data->num_hid_devices; ++i) { in process_recv()
249 client_data->hid_devices[i].dev_id) in process_recv()
250 if (client_data->hid_sensor_hubs[i]) { in process_recv()
252 client_data->hid_sensor_hubs[ in process_recv()
261 for (i = 0; i < client_data->num_hid_devices; ++i) in process_recv()
263 client_data->hid_devices[i].dev_id) in process_recv()
264 if (client_data->hid_sensor_hubs[i]) in process_recv()
266 client_data->hid_sensor_hubs[ in process_recv()
286 for (i = 0; i < client_data->num_hid_devices; in process_recv()
289 client_data->hid_devices[i].dev_id && in process_recv()
290 client_data->hid_sensor_hubs[i]) { in process_recv()
292 client_data->hid_sensor_hubs[ in process_recv()
303 ++client_data->bad_recv_cnt; in process_recv()
313 ++client_data->multi_packet_cnt; in process_recv()
365 struct ishtp_cl_data *client_data = hid_data->client_data; in hid_ishtp_set_feature() local
370 hid_ishtp_trace(client_data, "%s hid %p\n", __func__, hid); in hid_ishtp_set_feature()
372 rv = ishtp_hid_link_ready_wait(client_data); in hid_ishtp_set_feature()
374 hid_ishtp_trace(client_data, "%s hid %p link not ready\n", in hid_ishtp_set_feature()
381 for (i = 0; i < client_data->num_hid_devices; ++i) { in hid_ishtp_set_feature()
382 if (hid == client_data->hid_sensor_hubs[i]) { in hid_ishtp_set_feature()
384 client_data->hid_devices[i].dev_id; in hid_ishtp_set_feature()
389 if (i == client_data->num_hid_devices) in hid_ishtp_set_feature()
392 rv = ishtp_cl_send(client_data->hid_ishtp_cl, buf, len); in hid_ishtp_set_feature()
394 hid_ishtp_trace(client_data, "%s hid %p send failed\n", in hid_ishtp_set_feature()
411 struct ishtp_cl_data *client_data = hid_data->client_data; in hid_ishtp_get_report() local
416 hid_ishtp_trace(client_data, "%s hid %p\n", __func__, hid); in hid_ishtp_get_report()
417 rv = ishtp_hid_link_ready_wait(client_data); in hid_ishtp_get_report()
419 hid_ishtp_trace(client_data, "%s hid %p link not ready\n", in hid_ishtp_get_report()
426 for (i = 0; i < client_data->num_hid_devices; ++i) { in hid_ishtp_get_report()
427 if (hid == client_data->hid_sensor_hubs[i]) { in hid_ishtp_get_report()
429 client_data->hid_devices[i].dev_id; in hid_ishtp_get_report()
434 if (i == client_data->num_hid_devices) in hid_ishtp_get_report()
438 rv = ishtp_cl_send(client_data->hid_ishtp_cl, (uint8_t *)&msg, in hid_ishtp_get_report()
441 hid_ishtp_trace(client_data, "%s hid %p send failed\n", in hid_ishtp_get_report()
454 int ishtp_hid_link_ready_wait(struct ishtp_cl_data *client_data) in ishtp_hid_link_ready_wait() argument
458 if (client_data->suspended) { in ishtp_hid_link_ready_wait()
459 hid_ishtp_trace(client_data, "wait for link ready\n"); in ishtp_hid_link_ready_wait()
461 client_data->ishtp_resume_wait, in ishtp_hid_link_ready_wait()
462 !client_data->suspended, in ishtp_hid_link_ready_wait()
466 hid_ishtp_trace(client_data, "link not ready\n"); in ishtp_hid_link_ready_wait()
469 hid_ishtp_trace(client_data, "link ready\n"); in ishtp_hid_link_ready_wait()
486 struct ishtp_cl_data *client_data = ishtp_get_client_data(hid_ishtp_cl); in ishtp_enum_enum_devices() local
499 while (!client_data->enum_devices_done && in ishtp_enum_enum_devices()
501 wait_event_interruptible_timeout(client_data->init_wait, in ishtp_enum_enum_devices()
502 client_data->enum_devices_done, in ishtp_enum_enum_devices()
505 if (!client_data->enum_devices_done) in ishtp_enum_enum_devices()
511 if (!client_data->enum_devices_done) { in ishtp_enum_enum_devices()
512 dev_err(cl_data_to_dev(client_data), in ishtp_enum_enum_devices()
516 if (!client_data->hid_devices) { in ishtp_enum_enum_devices()
517 dev_err(cl_data_to_dev(client_data), in ishtp_enum_enum_devices()
522 client_data->num_hid_devices = client_data->hid_dev_count; in ishtp_enum_enum_devices()
523 dev_info(ishtp_device(client_data->cl_device), in ishtp_enum_enum_devices()
525 client_data->num_hid_devices); in ishtp_enum_enum_devices()
542 struct ishtp_cl_data *client_data = ishtp_get_client_data(hid_ishtp_cl); in ishtp_get_hid_descriptor() local
546 client_data->hid_descr_done = false; in ishtp_get_hid_descriptor()
549 msg.hdr.device_id = client_data->hid_devices[index].dev_id; in ishtp_get_hid_descriptor()
555 if (!client_data->hid_descr_done) { in ishtp_get_hid_descriptor()
556 wait_event_interruptible_timeout(client_data->init_wait, in ishtp_get_hid_descriptor()
557 client_data->hid_descr_done, in ishtp_get_hid_descriptor()
559 if (!client_data->hid_descr_done) { in ishtp_get_hid_descriptor()
560 dev_err(cl_data_to_dev(client_data), in ishtp_get_hid_descriptor()
565 if (!client_data->hid_descr[index]) { in ishtp_get_hid_descriptor()
566 dev_err(cl_data_to_dev(client_data), in ishtp_get_hid_descriptor()
589 struct ishtp_cl_data *client_data = ishtp_get_client_data(hid_ishtp_cl); in ishtp_get_report_descriptor() local
593 client_data->report_descr_done = false; in ishtp_get_report_descriptor()
596 msg.hdr.device_id = client_data->hid_devices[index].dev_id; in ishtp_get_report_descriptor()
602 if (!client_data->report_descr_done) in ishtp_get_report_descriptor()
603 wait_event_interruptible_timeout(client_data->init_wait, in ishtp_get_report_descriptor()
604 client_data->report_descr_done, in ishtp_get_report_descriptor()
606 if (!client_data->report_descr_done) { in ishtp_get_report_descriptor()
607 dev_err(cl_data_to_dev(client_data), in ishtp_get_report_descriptor()
611 if (!client_data->report_descr[index]) { in ishtp_get_report_descriptor()
612 dev_err(cl_data_to_dev(client_data), in ishtp_get_report_descriptor()
637 struct ishtp_cl_data *client_data = ishtp_get_client_data(hid_ishtp_cl); in hid_ishtp_cl_init() local
642 dev_dbg(cl_data_to_dev(client_data), "%s\n", __func__); in hid_ishtp_cl_init()
643 hid_ishtp_trace(client_data, "%s reset flag: %d\n", __func__, reset); in hid_ishtp_cl_init()
647 dev_err(cl_data_to_dev(client_data), in hid_ishtp_cl_init()
652 client_data->init_done = 0; in hid_ishtp_cl_init()
662 dev_err(cl_data_to_dev(client_data), in hid_ishtp_cl_init()
672 dev_err(cl_data_to_dev(client_data), in hid_ishtp_cl_init()
677 hid_ishtp_trace(client_data, "%s client connected\n", __func__); in hid_ishtp_cl_init()
680 ishtp_register_event_cb(client_data->cl_device, ish_cl_event_cb); in hid_ishtp_cl_init()
686 hid_ishtp_trace(client_data, "%s enumerated device count %d\n", in hid_ishtp_cl_init()
687 __func__, client_data->num_hid_devices); in hid_ishtp_cl_init()
689 for (i = 0; i < client_data->num_hid_devices; ++i) { in hid_ishtp_cl_init()
690 client_data->cur_hid_dev = i; in hid_ishtp_cl_init()
701 rv = ishtp_hid_probe(i, client_data); in hid_ishtp_cl_init()
703 dev_err(cl_data_to_dev(client_data), in hid_ishtp_cl_init()
711 client_data->init_done = 1; in hid_ishtp_cl_init()
712 client_data->suspended = false; in hid_ishtp_cl_init()
713 wake_up_interruptible(&client_data->ishtp_resume_wait); in hid_ishtp_cl_init()
714 hid_ishtp_trace(client_data, "%s successful init\n", __func__); in hid_ishtp_cl_init()
742 struct ishtp_cl_data *client_data; in hid_ishtp_cl_reset_handler() local
748 client_data = container_of(work, struct ishtp_cl_data, work); in hid_ishtp_cl_reset_handler()
750 hid_ishtp_cl = client_data->hid_ishtp_cl; in hid_ishtp_cl_reset_handler()
751 cl_device = client_data->cl_device; in hid_ishtp_cl_reset_handler()
753 hid_ishtp_trace(client_data, "%s hid_ishtp_cl %p\n", __func__, in hid_ishtp_cl_reset_handler()
755 dev_dbg(ishtp_device(client_data->cl_device), "%s\n", __func__); in hid_ishtp_cl_reset_handler()
764 ishtp_set_client_data(hid_ishtp_cl, client_data); in hid_ishtp_cl_reset_handler()
765 client_data->hid_ishtp_cl = hid_ishtp_cl; in hid_ishtp_cl_reset_handler()
767 client_data->num_hid_devices = 0; in hid_ishtp_cl_reset_handler()
773 dev_err(cl_data_to_dev(client_data), "Retry reset init\n"); in hid_ishtp_cl_reset_handler()
776 dev_err(cl_data_to_dev(client_data), "Reset Failed\n"); in hid_ishtp_cl_reset_handler()
777 hid_ishtp_trace(client_data, "%s Failed hid_ishtp_cl %p\n", in hid_ishtp_cl_reset_handler()
795 struct ishtp_cl_data *client_data; in hid_ishtp_cl_probe() local
801 client_data = devm_kzalloc(ishtp_device(cl_device), in hid_ishtp_cl_probe()
802 sizeof(*client_data), in hid_ishtp_cl_probe()
804 if (!client_data) in hid_ishtp_cl_probe()
812 ishtp_set_client_data(hid_ishtp_cl, client_data); in hid_ishtp_cl_probe()
813 client_data->hid_ishtp_cl = hid_ishtp_cl; in hid_ishtp_cl_probe()
814 client_data->cl_device = cl_device; in hid_ishtp_cl_probe()
816 init_waitqueue_head(&client_data->init_wait); in hid_ishtp_cl_probe()
817 init_waitqueue_head(&client_data->ishtp_resume_wait); in hid_ishtp_cl_probe()
819 INIT_WORK(&client_data->work, hid_ishtp_cl_reset_handler); in hid_ishtp_cl_probe()
844 struct ishtp_cl_data *client_data = ishtp_get_client_data(hid_ishtp_cl); in hid_ishtp_cl_remove() local
846 hid_ishtp_trace(client_data, "%s hid_ishtp_cl %p\n", __func__, in hid_ishtp_cl_remove()
853 ishtp_hid_remove(client_data); in hid_ishtp_cl_remove()
858 client_data->num_hid_devices = 0; in hid_ishtp_cl_remove()
874 struct ishtp_cl_data *client_data = ishtp_get_client_data(hid_ishtp_cl); in hid_ishtp_cl_reset() local
876 hid_ishtp_trace(client_data, "%s hid_ishtp_cl %p\n", __func__, in hid_ishtp_cl_reset()
879 schedule_work(&client_data->work); in hid_ishtp_cl_reset()
896 struct ishtp_cl_data *client_data = ishtp_get_client_data(hid_ishtp_cl); in hid_ishtp_cl_suspend() local
898 hid_ishtp_trace(client_data, "%s hid_ishtp_cl %p\n", __func__, in hid_ishtp_cl_suspend()
900 client_data->suspended = true; in hid_ishtp_cl_suspend()
917 struct ishtp_cl_data *client_data = ishtp_get_client_data(hid_ishtp_cl); in hid_ishtp_cl_resume() local
919 hid_ishtp_trace(client_data, "%s hid_ishtp_cl %p\n", __func__, in hid_ishtp_cl_resume()
921 client_data->suspended = false; in hid_ishtp_cl_resume()