Lines Matching refs:client_data

23 #define cl_data_to_dev(client_data) ishtp_device(client_data->cl_device)  argument
38 struct ishtp_cl_data *client_data = ishtp_get_client_data(hid_ishtp_cl); in report_bad_packet() local
40 dev_err(cl_data_to_dev(client_data), "[hid-ish]: BAD packet %02X\n" in report_bad_packet()
46 recv_msg->hdr.command, client_data->bad_recv_cnt, in report_bad_packet()
50 (unsigned int)payload_len, client_data->multi_packet_cnt, in report_bad_packet()
75 struct ishtp_cl_data *client_data = ishtp_get_client_data(hid_ishtp_cl); in process_recv() local
76 int curr_hid_dev = client_data->cur_hid_dev; in process_recv()
86 dev_err(cl_data_to_dev(client_data), in process_recv()
90 ++client_data->bad_recv_cnt; in process_recv()
101 ++client_data->bad_recv_cnt; in process_recv()
108 hid_ishtp_trace(client_data, "%s %d\n", in process_recv()
114 client_data->init_done)) { in process_recv()
115 ++client_data->bad_recv_cnt; in process_recv()
122 client_data->hid_dev_count = (unsigned int)*payload; in process_recv()
123 if (!client_data->hid_devices) in process_recv()
124 client_data->hid_devices = devm_kcalloc( in process_recv()
125 cl_data_to_dev(client_data), in process_recv()
126 client_data->hid_dev_count, in process_recv()
129 if (!client_data->hid_devices) { in process_recv()
130 dev_err(cl_data_to_dev(client_data), in process_recv()
132 wake_up_interruptible(&client_data->init_wait); in process_recv()
135 for (i = 0; i < client_data->hid_dev_count; ++i) { in process_recv()
138 dev_err(cl_data_to_dev(client_data), in process_recv()
150 if (client_data->hid_devices) in process_recv()
151 memcpy(client_data->hid_devices + i, in process_recv()
156 client_data->enum_devices_done = true; in process_recv()
157 wake_up_interruptible(&client_data->init_wait); in process_recv()
163 client_data->init_done)) { in process_recv()
164 ++client_data->bad_recv_cnt; in process_recv()
171 if (!client_data->hid_descr[curr_hid_dev]) in process_recv()
172 client_data->hid_descr[curr_hid_dev] = in process_recv()
173 devm_kmalloc(cl_data_to_dev(client_data), in process_recv()
175 if (client_data->hid_descr[curr_hid_dev]) { in process_recv()
176 memcpy(client_data->hid_descr[curr_hid_dev], in process_recv()
178 client_data->hid_descr_size[curr_hid_dev] = in process_recv()
180 client_data->hid_descr_done = true; in process_recv()
182 wake_up_interruptible(&client_data->init_wait); in process_recv()
188 client_data->init_done)) { in process_recv()
189 ++client_data->bad_recv_cnt; in process_recv()
196 if (!client_data->report_descr[curr_hid_dev]) in process_recv()
197 client_data->report_descr[curr_hid_dev] = in process_recv()
198 devm_kmalloc(cl_data_to_dev(client_data), in process_recv()
200 if (client_data->report_descr[curr_hid_dev]) { in process_recv()
201 memcpy(client_data->report_descr[curr_hid_dev], in process_recv()
204 client_data->report_descr_size[curr_hid_dev] = in process_recv()
206 client_data->report_descr_done = true; in process_recv()
208 wake_up_interruptible(&client_data->init_wait); in process_recv()
220 for (i = 0; i < client_data->num_hid_devices; ++i) { in process_recv()
222 client_data->hid_devices[i].dev_id) { in process_recv()
223 hid = client_data->hid_sensor_hubs[i]; in process_recv()
252 for (i = 0; i < client_data->num_hid_devices; ++i) { in process_recv()
254 client_data->hid_devices[i].dev_id) in process_recv()
255 if (client_data->hid_sensor_hubs[i]) { in process_recv()
257 client_data->hid_sensor_hubs[ in process_recv()
266 for (i = 0; i < client_data->num_hid_devices; ++i) in process_recv()
268 client_data->hid_devices[i].dev_id) in process_recv()
269 if (client_data->hid_sensor_hubs[i]) in process_recv()
271 client_data->hid_sensor_hubs[ in process_recv()
291 for (i = 0; i < client_data->num_hid_devices; in process_recv()
294 client_data->hid_devices[i].dev_id && in process_recv()
295 client_data->hid_sensor_hubs[i]) { in process_recv()
297 client_data->hid_sensor_hubs[ in process_recv()
308 ++client_data->bad_recv_cnt; in process_recv()
318 ++client_data->multi_packet_cnt; in process_recv()
370 struct ishtp_cl_data *client_data = hid_data->client_data; in hid_ishtp_set_feature() local
375 hid_ishtp_trace(client_data, "%s hid %p\n", __func__, hid); in hid_ishtp_set_feature()
377 rv = ishtp_hid_link_ready_wait(client_data); in hid_ishtp_set_feature()
379 hid_ishtp_trace(client_data, "%s hid %p link not ready\n", in hid_ishtp_set_feature()
386 for (i = 0; i < client_data->num_hid_devices; ++i) { in hid_ishtp_set_feature()
387 if (hid == client_data->hid_sensor_hubs[i]) { in hid_ishtp_set_feature()
389 client_data->hid_devices[i].dev_id; in hid_ishtp_set_feature()
394 if (i == client_data->num_hid_devices) in hid_ishtp_set_feature()
397 rv = ishtp_cl_send(client_data->hid_ishtp_cl, buf, len); in hid_ishtp_set_feature()
399 hid_ishtp_trace(client_data, "%s hid %p send failed\n", in hid_ishtp_set_feature()
416 struct ishtp_cl_data *client_data = hid_data->client_data; in hid_ishtp_get_report() local
421 hid_ishtp_trace(client_data, "%s hid %p\n", __func__, hid); in hid_ishtp_get_report()
422 rv = ishtp_hid_link_ready_wait(client_data); in hid_ishtp_get_report()
424 hid_ishtp_trace(client_data, "%s hid %p link not ready\n", in hid_ishtp_get_report()
431 for (i = 0; i < client_data->num_hid_devices; ++i) { in hid_ishtp_get_report()
432 if (hid == client_data->hid_sensor_hubs[i]) { in hid_ishtp_get_report()
434 client_data->hid_devices[i].dev_id; in hid_ishtp_get_report()
439 if (i == client_data->num_hid_devices) in hid_ishtp_get_report()
443 rv = ishtp_cl_send(client_data->hid_ishtp_cl, (uint8_t *)&msg, in hid_ishtp_get_report()
446 hid_ishtp_trace(client_data, "%s hid %p send failed\n", in hid_ishtp_get_report()
459 int ishtp_hid_link_ready_wait(struct ishtp_cl_data *client_data) in ishtp_hid_link_ready_wait() argument
463 if (client_data->suspended) { in ishtp_hid_link_ready_wait()
464 hid_ishtp_trace(client_data, "wait for link ready\n"); in ishtp_hid_link_ready_wait()
466 client_data->ishtp_resume_wait, in ishtp_hid_link_ready_wait()
467 !client_data->suspended, in ishtp_hid_link_ready_wait()
471 hid_ishtp_trace(client_data, "link not ready\n"); in ishtp_hid_link_ready_wait()
474 hid_ishtp_trace(client_data, "link ready\n"); in ishtp_hid_link_ready_wait()
491 struct ishtp_cl_data *client_data = ishtp_get_client_data(hid_ishtp_cl); in ishtp_enum_enum_devices() local
504 while (!client_data->enum_devices_done && in ishtp_enum_enum_devices()
506 wait_event_interruptible_timeout(client_data->init_wait, in ishtp_enum_enum_devices()
507 client_data->enum_devices_done, in ishtp_enum_enum_devices()
510 if (!client_data->enum_devices_done) in ishtp_enum_enum_devices()
516 if (!client_data->enum_devices_done) { in ishtp_enum_enum_devices()
517 dev_err(cl_data_to_dev(client_data), in ishtp_enum_enum_devices()
521 if (!client_data->hid_devices) { in ishtp_enum_enum_devices()
522 dev_err(cl_data_to_dev(client_data), in ishtp_enum_enum_devices()
527 client_data->num_hid_devices = client_data->hid_dev_count; in ishtp_enum_enum_devices()
528 dev_info(ishtp_device(client_data->cl_device), in ishtp_enum_enum_devices()
530 client_data->num_hid_devices); in ishtp_enum_enum_devices()
547 struct ishtp_cl_data *client_data = ishtp_get_client_data(hid_ishtp_cl); in ishtp_get_hid_descriptor() local
551 client_data->hid_descr_done = false; in ishtp_get_hid_descriptor()
554 msg.hdr.device_id = client_data->hid_devices[index].dev_id; in ishtp_get_hid_descriptor()
560 if (!client_data->hid_descr_done) { in ishtp_get_hid_descriptor()
561 wait_event_interruptible_timeout(client_data->init_wait, in ishtp_get_hid_descriptor()
562 client_data->hid_descr_done, in ishtp_get_hid_descriptor()
564 if (!client_data->hid_descr_done) { in ishtp_get_hid_descriptor()
565 dev_err(cl_data_to_dev(client_data), in ishtp_get_hid_descriptor()
570 if (!client_data->hid_descr[index]) { in ishtp_get_hid_descriptor()
571 dev_err(cl_data_to_dev(client_data), in ishtp_get_hid_descriptor()
594 struct ishtp_cl_data *client_data = ishtp_get_client_data(hid_ishtp_cl); in ishtp_get_report_descriptor() local
598 client_data->report_descr_done = false; in ishtp_get_report_descriptor()
601 msg.hdr.device_id = client_data->hid_devices[index].dev_id; in ishtp_get_report_descriptor()
607 if (!client_data->report_descr_done) in ishtp_get_report_descriptor()
608 wait_event_interruptible_timeout(client_data->init_wait, in ishtp_get_report_descriptor()
609 client_data->report_descr_done, in ishtp_get_report_descriptor()
611 if (!client_data->report_descr_done) { in ishtp_get_report_descriptor()
612 dev_err(cl_data_to_dev(client_data), in ishtp_get_report_descriptor()
616 if (!client_data->report_descr[index]) { in ishtp_get_report_descriptor()
617 dev_err(cl_data_to_dev(client_data), in ishtp_get_report_descriptor()
642 struct ishtp_cl_data *client_data = ishtp_get_client_data(hid_ishtp_cl); in hid_ishtp_cl_init() local
647 dev_dbg(cl_data_to_dev(client_data), "%s\n", __func__); in hid_ishtp_cl_init()
648 hid_ishtp_trace(client_data, "%s reset flag: %d\n", __func__, reset); in hid_ishtp_cl_init()
652 dev_err(cl_data_to_dev(client_data), in hid_ishtp_cl_init()
657 client_data->init_done = 0; in hid_ishtp_cl_init()
667 dev_err(cl_data_to_dev(client_data), in hid_ishtp_cl_init()
677 dev_err(cl_data_to_dev(client_data), in hid_ishtp_cl_init()
682 hid_ishtp_trace(client_data, "%s client connected\n", __func__); in hid_ishtp_cl_init()
685 ishtp_register_event_cb(client_data->cl_device, ish_cl_event_cb); in hid_ishtp_cl_init()
691 hid_ishtp_trace(client_data, "%s enumerated device count %d\n", in hid_ishtp_cl_init()
692 __func__, client_data->num_hid_devices); in hid_ishtp_cl_init()
694 for (i = 0; i < client_data->num_hid_devices; ++i) { in hid_ishtp_cl_init()
695 client_data->cur_hid_dev = i; in hid_ishtp_cl_init()
706 rv = ishtp_hid_probe(i, client_data); in hid_ishtp_cl_init()
708 dev_err(cl_data_to_dev(client_data), in hid_ishtp_cl_init()
716 client_data->init_done = 1; in hid_ishtp_cl_init()
717 client_data->suspended = false; in hid_ishtp_cl_init()
718 wake_up_interruptible(&client_data->ishtp_resume_wait); in hid_ishtp_cl_init()
719 hid_ishtp_trace(client_data, "%s successful init\n", __func__); in hid_ishtp_cl_init()
747 struct ishtp_cl_data *client_data; in hid_ishtp_cl_reset_handler() local
753 client_data = container_of(work, struct ishtp_cl_data, work); in hid_ishtp_cl_reset_handler()
755 hid_ishtp_cl = client_data->hid_ishtp_cl; in hid_ishtp_cl_reset_handler()
756 cl_device = client_data->cl_device; in hid_ishtp_cl_reset_handler()
758 hid_ishtp_trace(client_data, "%s hid_ishtp_cl %p\n", __func__, in hid_ishtp_cl_reset_handler()
760 dev_dbg(ishtp_device(client_data->cl_device), "%s\n", __func__); in hid_ishtp_cl_reset_handler()
769 ishtp_set_client_data(hid_ishtp_cl, client_data); in hid_ishtp_cl_reset_handler()
770 client_data->hid_ishtp_cl = hid_ishtp_cl; in hid_ishtp_cl_reset_handler()
772 client_data->num_hid_devices = 0; in hid_ishtp_cl_reset_handler()
778 dev_err(cl_data_to_dev(client_data), "Retry reset init\n"); in hid_ishtp_cl_reset_handler()
781 dev_err(cl_data_to_dev(client_data), "Reset Failed\n"); in hid_ishtp_cl_reset_handler()
782 hid_ishtp_trace(client_data, "%s Failed hid_ishtp_cl %p\n", in hid_ishtp_cl_reset_handler()
789 struct ishtp_cl_data *client_data = container_of(work, struct ishtp_cl_data, resume_work); in hid_ishtp_cl_resume_handler() local
790 struct ishtp_cl *hid_ishtp_cl = client_data->hid_ishtp_cl; in hid_ishtp_cl_resume_handler()
793 client_data->suspended = false; in hid_ishtp_cl_resume_handler()
794 wake_up_interruptible(&client_data->ishtp_resume_wait); in hid_ishtp_cl_resume_handler()
811 struct ishtp_cl_data *client_data; in hid_ishtp_cl_probe() local
817 client_data = devm_kzalloc(ishtp_device(cl_device), in hid_ishtp_cl_probe()
818 sizeof(*client_data), in hid_ishtp_cl_probe()
820 if (!client_data) in hid_ishtp_cl_probe()
828 ishtp_set_client_data(hid_ishtp_cl, client_data); in hid_ishtp_cl_probe()
829 client_data->hid_ishtp_cl = hid_ishtp_cl; in hid_ishtp_cl_probe()
830 client_data->cl_device = cl_device; in hid_ishtp_cl_probe()
832 init_waitqueue_head(&client_data->init_wait); in hid_ishtp_cl_probe()
833 init_waitqueue_head(&client_data->ishtp_resume_wait); in hid_ishtp_cl_probe()
835 INIT_WORK(&client_data->work, hid_ishtp_cl_reset_handler); in hid_ishtp_cl_probe()
836 INIT_WORK(&client_data->resume_work, hid_ishtp_cl_resume_handler); in hid_ishtp_cl_probe()
862 struct ishtp_cl_data *client_data = ishtp_get_client_data(hid_ishtp_cl); in hid_ishtp_cl_remove() local
864 hid_ishtp_trace(client_data, "%s hid_ishtp_cl %p\n", __func__, in hid_ishtp_cl_remove()
871 ishtp_hid_remove(client_data); in hid_ishtp_cl_remove()
876 client_data->num_hid_devices = 0; in hid_ishtp_cl_remove()
890 struct ishtp_cl_data *client_data = ishtp_get_client_data(hid_ishtp_cl); in hid_ishtp_cl_reset() local
892 hid_ishtp_trace(client_data, "%s hid_ishtp_cl %p\n", __func__, in hid_ishtp_cl_reset()
895 schedule_work(&client_data->work); in hid_ishtp_cl_reset()
912 struct ishtp_cl_data *client_data = ishtp_get_client_data(hid_ishtp_cl); in hid_ishtp_cl_suspend() local
914 hid_ishtp_trace(client_data, "%s hid_ishtp_cl %p\n", __func__, in hid_ishtp_cl_suspend()
916 client_data->suspended = true; in hid_ishtp_cl_suspend()
933 struct ishtp_cl_data *client_data = ishtp_get_client_data(hid_ishtp_cl); in hid_ishtp_cl_resume() local
935 hid_ishtp_trace(client_data, "%s hid_ishtp_cl %p\n", __func__, in hid_ishtp_cl_resume()
937 schedule_work(&client_data->resume_work); in hid_ishtp_cl_resume()