Lines Matching refs:client_data

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