Lines Matching defs:client_data

26 #define cl_data_to_dev(client_data) ishtp_device(client_data->cl_device)
41 struct ishtp_cl_data *client_data = ishtp_get_client_data(hid_ishtp_cl);
43 dev_err(cl_data_to_dev(client_data), "[hid-ish]: BAD packet %02X\n"
49 recv_msg->hdr.command, client_data->bad_recv_cnt,
53 (unsigned int)payload_len, client_data->multi_packet_cnt,
78 struct ishtp_cl_data *client_data = ishtp_get_client_data(hid_ishtp_cl);
79 int curr_hid_dev = client_data->cur_hid_dev;
89 dev_err(cl_data_to_dev(client_data),
93 ++client_data->bad_recv_cnt;
104 ++client_data->bad_recv_cnt;
111 hid_ishtp_trace(client_data, "%s %d\n",
117 client_data->init_done)) {
118 ++client_data->bad_recv_cnt;
125 client_data->hid_dev_count = (unsigned int)*payload;
126 if (!client_data->hid_devices)
127 client_data->hid_devices = devm_kcalloc(
128 cl_data_to_dev(client_data),
129 client_data->hid_dev_count,
132 if (!client_data->hid_devices) {
133 dev_err(cl_data_to_dev(client_data),
135 wake_up_interruptible(&client_data->init_wait);
138 for (i = 0; i < client_data->hid_dev_count; ++i) {
141 dev_err(cl_data_to_dev(client_data),
153 if (client_data->hid_devices)
154 memcpy(client_data->hid_devices + i,
159 client_data->enum_devices_done = true;
160 wake_up_interruptible(&client_data->init_wait);
166 client_data->init_done)) {
167 ++client_data->bad_recv_cnt;
174 if (!client_data->hid_descr[curr_hid_dev])
175 client_data->hid_descr[curr_hid_dev] =
176 devm_kmalloc(cl_data_to_dev(client_data),
178 if (client_data->hid_descr[curr_hid_dev]) {
179 memcpy(client_data->hid_descr[curr_hid_dev],
181 client_data->hid_descr_size[curr_hid_dev] =
183 client_data->hid_descr_done = true;
185 wake_up_interruptible(&client_data->init_wait);
191 client_data->init_done)) {
192 ++client_data->bad_recv_cnt;
199 if (!client_data->report_descr[curr_hid_dev])
200 client_data->report_descr[curr_hid_dev] =
201 devm_kmalloc(cl_data_to_dev(client_data),
203 if (client_data->report_descr[curr_hid_dev]) {
204 memcpy(client_data->report_descr[curr_hid_dev],
207 client_data->report_descr_size[curr_hid_dev] =
209 client_data->report_descr_done = true;
211 wake_up_interruptible(&client_data->init_wait);
223 for (i = 0; i < client_data->num_hid_devices; ++i) {
225 client_data->hid_devices[i].dev_id) {
226 hid = client_data->hid_sensor_hubs[i];
255 for (i = 0; i < client_data->num_hid_devices; ++i) {
257 client_data->hid_devices[i].dev_id)
258 if (client_data->hid_sensor_hubs[i]) {
260 client_data->hid_sensor_hubs[
269 for (i = 0; i < client_data->num_hid_devices; ++i)
271 client_data->hid_devices[i].dev_id)
272 if (client_data->hid_sensor_hubs[i])
274 client_data->hid_sensor_hubs[
294 for (i = 0; i < client_data->num_hid_devices;
297 client_data->hid_devices[i].dev_id &&
298 client_data->hid_sensor_hubs[i]) {
300 client_data->hid_sensor_hubs[
311 ++client_data->bad_recv_cnt;
321 ++client_data->multi_packet_cnt;
373 struct ishtp_cl_data *client_data = hid_data->client_data;
378 hid_ishtp_trace(client_data, "%s hid %p\n", __func__, hid);
380 rv = ishtp_hid_link_ready_wait(client_data);
382 hid_ishtp_trace(client_data, "%s hid %p link not ready\n",
389 for (i = 0; i < client_data->num_hid_devices; ++i) {
390 if (hid == client_data->hid_sensor_hubs[i]) {
392 client_data->hid_devices[i].dev_id;
397 if (i == client_data->num_hid_devices)
400 rv = ishtp_cl_send(client_data->hid_ishtp_cl, buf, len);
402 hid_ishtp_trace(client_data, "%s hid %p send failed\n",
419 struct ishtp_cl_data *client_data = hid_data->client_data;
424 hid_ishtp_trace(client_data, "%s hid %p\n", __func__, hid);
425 rv = ishtp_hid_link_ready_wait(client_data);
427 hid_ishtp_trace(client_data, "%s hid %p link not ready\n",
434 for (i = 0; i < client_data->num_hid_devices; ++i) {
435 if (hid == client_data->hid_sensor_hubs[i]) {
437 client_data->hid_devices[i].dev_id;
442 if (i == client_data->num_hid_devices)
446 rv = ishtp_cl_send(client_data->hid_ishtp_cl, (uint8_t *)&msg,
449 hid_ishtp_trace(client_data, "%s hid %p send failed\n",
455 * @client_data: client data instance
462 int ishtp_hid_link_ready_wait(struct ishtp_cl_data *client_data)
466 if (client_data->suspended) {
467 hid_ishtp_trace(client_data, "wait for link ready\n");
469 client_data->ishtp_resume_wait,
470 !client_data->suspended,
474 hid_ishtp_trace(client_data, "link not ready\n");
477 hid_ishtp_trace(client_data, "link ready\n");
494 struct ishtp_cl_data *client_data = ishtp_get_client_data(hid_ishtp_cl);
507 while (!client_data->enum_devices_done &&
509 wait_event_interruptible_timeout(client_data->init_wait,
510 client_data->enum_devices_done,
513 if (!client_data->enum_devices_done)
519 if (!client_data->enum_devices_done) {
520 dev_err(cl_data_to_dev(client_data),
524 if (!client_data->hid_devices) {
525 dev_err(cl_data_to_dev(client_data),
530 client_data->num_hid_devices = client_data->hid_dev_count;
531 dev_info(ishtp_device(client_data->cl_device),
533 client_data->num_hid_devices);
550 struct ishtp_cl_data *client_data = ishtp_get_client_data(hid_ishtp_cl);
554 client_data->hid_descr_done = false;
557 msg.hdr.device_id = client_data->hid_devices[index].dev_id;
563 if (!client_data->hid_descr_done) {
564 wait_event_interruptible_timeout(client_data->init_wait,
565 client_data->hid_descr_done,
567 if (!client_data->hid_descr_done) {
568 dev_err(cl_data_to_dev(client_data),
573 if (!client_data->hid_descr[index]) {
574 dev_err(cl_data_to_dev(client_data),
597 struct ishtp_cl_data *client_data = ishtp_get_client_data(hid_ishtp_cl);
601 client_data->report_descr_done = false;
604 msg.hdr.device_id = client_data->hid_devices[index].dev_id;
610 if (!client_data->report_descr_done)
611 wait_event_interruptible_timeout(client_data->init_wait,
612 client_data->report_descr_done,
614 if (!client_data->report_descr_done) {
615 dev_err(cl_data_to_dev(client_data),
619 if (!client_data->report_descr[index]) {
620 dev_err(cl_data_to_dev(client_data),
644 struct ishtp_cl_data *client_data = ishtp_get_client_data(hid_ishtp_cl);
648 dev_dbg(cl_data_to_dev(client_data), "%s\n", __func__);
649 hid_ishtp_trace(client_data, "%s reset flag: %d\n", __func__, reset);
651 client_data->init_done = 0;
659 dev_err(cl_data_to_dev(client_data),
664 hid_ishtp_trace(client_data, "%s client connected\n", __func__);
667 ishtp_register_event_cb(client_data->cl_device, ish_cl_event_cb);
673 hid_ishtp_trace(client_data, "%s enumerated device count %d\n",
674 __func__, client_data->num_hid_devices);
676 for (i = 0; i < client_data->num_hid_devices; ++i) {
677 client_data->cur_hid_dev = i;
688 rv = ishtp_hid_probe(i, client_data);
690 dev_err(cl_data_to_dev(client_data),
698 client_data->init_done = 1;
699 client_data->suspended = false;
700 wake_up_interruptible(&client_data->ishtp_resume_wait);
701 hid_ishtp_trace(client_data, "%s successful init\n", __func__);
725 struct ishtp_cl_data *client_data;
730 client_data = container_of(work, struct ishtp_cl_data, work);
732 hid_ishtp_cl = client_data->hid_ishtp_cl;
734 hid_ishtp_trace(client_data, "%s hid_ishtp_cl %p\n", __func__,
736 dev_dbg(ishtp_device(client_data->cl_device), "%s\n", __func__);
740 client_data->num_hid_devices = 0;
746 dev_err(cl_data_to_dev(client_data), "Retry reset init\n");
749 dev_err(cl_data_to_dev(client_data), "Reset Failed\n");
750 hid_ishtp_trace(client_data, "%s Failed hid_ishtp_cl %p\n",
757 struct ishtp_cl_data *client_data = container_of(work, struct ishtp_cl_data, resume_work);
758 struct ishtp_cl *hid_ishtp_cl = client_data->hid_ishtp_cl;
761 client_data->suspended = false;
762 wake_up_interruptible(&client_data->ishtp_resume_wait);
779 struct ishtp_cl_data *client_data;
785 client_data = devm_kzalloc(ishtp_device(cl_device),
786 sizeof(*client_data),
788 if (!client_data)
796 ishtp_set_client_data(hid_ishtp_cl, client_data);
797 client_data->hid_ishtp_cl = hid_ishtp_cl;
798 client_data->cl_device = cl_device;
800 init_waitqueue_head(&client_data->init_wait);
801 init_waitqueue_head(&client_data->ishtp_resume_wait);
803 INIT_WORK(&client_data->work, hid_ishtp_cl_reset_handler);
804 INIT_WORK(&client_data->resume_work, hid_ishtp_cl_resume_handler);
830 struct ishtp_cl_data *client_data = ishtp_get_client_data(hid_ishtp_cl);
832 hid_ishtp_trace(client_data, "%s hid_ishtp_cl %p\n", __func__,
838 ishtp_hid_remove(client_data);
842 client_data->num_hid_devices = 0;
856 struct ishtp_cl_data *client_data = ishtp_get_client_data(hid_ishtp_cl);
858 hid_ishtp_trace(client_data, "%s hid_ishtp_cl %p\n", __func__,
861 schedule_work(&client_data->work);
878 struct ishtp_cl_data *client_data = ishtp_get_client_data(hid_ishtp_cl);
880 hid_ishtp_trace(client_data, "%s hid_ishtp_cl %p\n", __func__,
882 client_data->suspended = true;
899 struct ishtp_cl_data *client_data = ishtp_get_client_data(hid_ishtp_cl);
901 hid_ishtp_trace(client_data, "%s hid_ishtp_cl %p\n", __func__,
903 schedule_work(&client_data->resume_work);