Lines Matching refs:client_data
74 #define cl_data_to_dev(client_data) ishtp_device((client_data)->cl_device) argument
144 struct ishtp_cl_data *client_data = in ish_evt_handler() local
147 cros_ec_irq_thread(0, client_data->ec_dev); in ish_evt_handler()
163 static int ish_send(struct ishtp_cl_data *client_data, in ish_send() argument
170 struct ishtp_cl *cros_ish_cl = client_data->cros_ish_cl; in ish_send()
172 dev_dbg(cl_data_to_dev(client_data), in ish_send()
177 client_data->response.data = in_msg; in ish_send()
178 client_data->response.max_size = in_size; in ish_send()
179 client_data->response.error = 0; in ish_send()
180 client_data->response.token = next_token++; in ish_send()
181 client_data->response.received = false; in ish_send()
183 out_hdr->token = client_data->response.token; in ish_send()
187 dev_err(cl_data_to_dev(client_data), in ish_send()
192 wait_event_interruptible_timeout(client_data->response.wait_queue, in ish_send()
193 client_data->response.received, in ish_send()
195 if (!client_data->response.received) { in ish_send()
196 dev_err(cl_data_to_dev(client_data), in ish_send()
201 if (client_data->response.error < 0) in ish_send()
202 return client_data->response.error; in ish_send()
204 return client_data->response.size; in ish_send()
221 struct ishtp_cl_data *client_data = in process_recv() local
223 struct device *dev = cl_data_to_dev(client_data); in process_recv()
242 client_data->response.error = -EBADMSG; in process_recv()
249 client_data->response.error = -EMSGSIZE; in process_recv()
258 if (client_data->response.received) { in process_recv()
264 if (client_data->response.token != in_msg->hdr.token) { in process_recv()
272 if (!client_data->response.data) { in process_recv()
275 client_data->response.error = -EINVAL; in process_recv()
279 if (data_len > client_data->response.max_size) { in process_recv()
282 data_len, client_data->response.max_size); in process_recv()
283 client_data->response.error = -EMSGSIZE; in process_recv()
290 client_data->response.error = -EIO; in process_recv()
295 client_data->response.size = data_len; in process_recv()
301 memcpy(client_data->response.data, in process_recv()
310 client_data->response.received = true; in process_recv()
313 wake_up_interruptible(&client_data->response.wait_queue); in process_recv()
325 client_data->ec_dev->last_event_time = timestamp; in process_recv()
326 schedule_work(&client_data->work_ec_evt); in process_recv()
380 struct ishtp_cl_data *client_data = ishtp_get_client_data(cros_ish_cl); in cros_ish_init() local
384 dev_err(cl_data_to_dev(client_data), in cros_ish_init()
397 dev_err(cl_data_to_dev(client_data), in cros_ish_init()
409 dev_err(cl_data_to_dev(client_data), in cros_ish_init()
414 ishtp_register_event_cb(client_data->cl_device, ish_event_cb); in cros_ish_init()
489 struct ishtp_cl_data *client_data = ishtp_get_client_data(cros_ish_cl); in cros_ec_pkt_xfer_ish() local
490 struct device *dev = cl_data_to_dev(client_data); in cros_ec_pkt_xfer_ish()
538 rv = ish_send(client_data, in cros_ec_pkt_xfer_ish()
566 static int cros_ec_dev_init(struct ishtp_cl_data *client_data) in cros_ec_dev_init() argument
569 struct device *dev = cl_data_to_dev(client_data); in cros_ec_dev_init()
575 client_data->ec_dev = ec_dev; in cros_ec_dev_init()
579 ec_dev->priv = client_data->cros_ish_cl; in cros_ec_dev_init()
596 struct ishtp_cl_data *client_data = in reset_handler() local
602 cros_ish_cl = client_data->cros_ish_cl; in reset_handler()
603 cl_device = client_data->cl_device; in reset_handler()
617 ishtp_set_client_data(cros_ish_cl, client_data); in reset_handler()
618 client_data->cros_ish_cl = cros_ish_cl; in reset_handler()
623 dev_err(cl_data_to_dev(client_data), "Reset Failed\n"); in reset_handler()
629 client_data->ec_dev->priv = client_data->cros_ish_cl; in reset_handler()
630 dev = cl_data_to_dev(client_data); in reset_handler()
631 dev->driver_data = client_data->ec_dev; in reset_handler()
633 dev_info(cl_data_to_dev(client_data), "Chrome EC ISH reset done\n"); in reset_handler()
648 struct ishtp_cl_data *client_data = in cros_ec_ishtp_probe() local
650 sizeof(*client_data), GFP_KERNEL); in cros_ec_ishtp_probe()
651 if (!client_data) in cros_ec_ishtp_probe()
664 ishtp_set_client_data(cros_ish_cl, client_data); in cros_ec_ishtp_probe()
665 client_data->cros_ish_cl = cros_ish_cl; in cros_ec_ishtp_probe()
666 client_data->cl_device = cl_device; in cros_ec_ishtp_probe()
668 init_waitqueue_head(&client_data->response.wait_queue); in cros_ec_ishtp_probe()
670 INIT_WORK(&client_data->work_ishtp_reset, in cros_ec_ishtp_probe()
672 INIT_WORK(&client_data->work_ec_evt, in cros_ec_ishtp_probe()
684 rv = cros_ec_dev_init(client_data); in cros_ec_ishtp_probe()
714 struct ishtp_cl_data *client_data = ishtp_get_client_data(cros_ish_cl); in cros_ec_ishtp_remove() local
716 cancel_work_sync(&client_data->work_ishtp_reset); in cros_ec_ishtp_remove()
717 cancel_work_sync(&client_data->work_ec_evt); in cros_ec_ishtp_remove()
731 struct ishtp_cl_data *client_data = ishtp_get_client_data(cros_ish_cl); in cros_ec_ishtp_reset() local
733 schedule_work(&client_data->work_ishtp_reset); in cros_ec_ishtp_reset()
748 struct ishtp_cl_data *client_data = ishtp_get_client_data(cros_ish_cl); in cros_ec_ishtp_suspend() local
750 return cros_ec_suspend(client_data->ec_dev); in cros_ec_ishtp_suspend()
763 struct ishtp_cl_data *client_data = ishtp_get_client_data(cros_ish_cl); in cros_ec_ishtp_resume() local
765 return cros_ec_resume(client_data->ec_dev); in cros_ec_ishtp_resume()