Lines Matching refs:client_data

238 #define cl_data_to_dev(client_data) ishtp_device((client_data)->cl_device)
243 * @client_data Client data instance.
250 static int get_firmware_variant(struct ishtp_cl_data *client_data,
255 struct device *devc = ishtp_get_pci_device(client_data->cl_device);
268 * @client_data: Client data instance
278 static int loader_cl_send(struct ishtp_cl_data *client_data,
284 struct ishtp_cl *loader_ishtp_cl = client_data->loader_ishtp_cl;
286 dev_dbg(cl_data_to_dev(client_data),
294 client_data->response.data = in_msg;
295 client_data->response.max_size = in_size;
296 client_data->response.error = 0;
297 client_data->response.received = false;
301 dev_err(cl_data_to_dev(client_data),
306 wait_event_interruptible_timeout(client_data->response.wait_queue,
307 client_data->response.received,
309 if (!client_data->response.received) {
310 dev_err(cl_data_to_dev(client_data),
316 if (client_data->response.error < 0)
317 return client_data->response.error;
319 return client_data->response.size;
335 struct ishtp_cl_data *client_data =
339 if (!client_data->response.data) {
340 dev_err(cl_data_to_dev(client_data),
342 client_data->response.error = -EINVAL;
346 if (client_data->response.received) {
347 dev_err(cl_data_to_dev(client_data),
349 client_data->response.error = -EINVAL;
357 dev_warn(cl_data_to_dev(client_data),
359 client_data->response.error = -EBADMSG;
364 dev_err(cl_data_to_dev(client_data),
367 client_data->response.error = -EMSGSIZE;
373 dev_dbg(cl_data_to_dev(client_data),
383 dev_err(cl_data_to_dev(client_data),
386 client_data->response.error = -EPROTO;
390 if (data_len > client_data->response.max_size) {
391 dev_err(cl_data_to_dev(client_data),
393 data_len, client_data->response.max_size);
394 client_data->response.error = -EMSGSIZE;
400 dev_err(cl_data_to_dev(client_data),
402 client_data->response.error = -EIO;
407 dev_err(cl_data_to_dev(client_data),
410 client_data->response.error = -EIO;
415 client_data->response.size = data_len;
421 memcpy(client_data->response.data,
425 client_data->response.received = true;
433 wake_up_interruptible(&client_data->response.wait_queue);
457 * @client_data: Client data instance
465 static int ish_query_loader_prop(struct ishtp_cl_data *client_data,
476 rv = loader_cl_send(client_data,
482 client_data->flag_retry = true;
489 dev_err(cl_data_to_dev(client_data),
492 client_data->flag_retry = true;
501 dev_dbg(cl_data_to_dev(client_data),
510 dev_dbg(cl_data_to_dev(client_data),
519 dev_err(cl_data_to_dev(client_data),
529 dev_err(cl_data_to_dev(client_data),
540 * @client_data: Client data instance
549 static int ish_fw_xfer_ishtp(struct ishtp_cl_data *client_data,
562 client_data->flag_retry = true;
586 dev_dbg(cl_data_to_dev(client_data),
592 rv = loader_cl_send(client_data,
598 client_data->flag_retry = true;
616 * @client_data: Client data instance
629 static int ish_fw_xfer_direct_dma(struct ishtp_cl_data *client_data,
639 struct device *devc = ishtp_get_pci_device(client_data->cl_device);
661 client_data->flag_retry = true;
687 dev_dbg(cl_data_to_dev(client_data),
694 rv = loader_cl_send(client_data,
700 client_data->flag_retry = true;
714 * @client_data: client data instance
721 static int ish_fw_start(struct ishtp_cl_data *client_data)
728 return loader_cl_send(client_data,
737 * @client_data: Client data instance
743 static int load_fw_from_host(struct ishtp_cl_data *client_data)
750 struct ishtp_cl *loader_ishtp_cl = client_data->loader_ishtp_cl;
752 client_data->flag_retry = false;
756 client_data->flag_retry = true;
762 rv = get_firmware_variant(client_data, filename);
766 rv = request_firmware(&fw, filename, cl_data_to_dev(client_data));
772 rv = ish_query_loader_prop(client_data, fw, &fw_info);
780 rv = ish_fw_xfer_direct_dma(client_data, fw, fw_info);
782 rv = ish_fw_xfer_ishtp(client_data, fw);
784 dev_err(cl_data_to_dev(client_data),
793 rv = ish_fw_start(client_data);
798 dev_info(cl_data_to_dev(client_data), "ISH firmware %s loaded\n",
809 if (client_data->flag_retry &&
810 client_data->retry_count++ < MAX_LOAD_ATTEMPTS) {
811 dev_warn(cl_data_to_dev(client_data),
816 dev_err(cl_data_to_dev(client_data),
824 struct ishtp_cl_data *client_data;
826 client_data = container_of(work, struct ishtp_cl_data,
828 load_fw_from_host(client_data);
842 struct ishtp_cl_data *client_data =
845 dev_dbg(cl_data_to_dev(client_data), "reset flag: %d\n", reset);
849 dev_err(cl_data_to_dev(client_data), "ishtp_cl_link failed\n");
861 dev_err(cl_data_to_dev(client_data),
873 dev_err(cl_data_to_dev(client_data), "Client connect fail\n");
877 dev_dbg(cl_data_to_dev(client_data), "Client connected\n");
879 ishtp_register_event_cb(client_data->cl_device, loader_cl_event_cb);
902 struct ishtp_cl_data *client_data;
906 client_data = container_of(work, struct ishtp_cl_data,
909 loader_ishtp_cl = client_data->loader_ishtp_cl;
910 cl_device = client_data->cl_device;
922 ishtp_set_client_data(loader_ishtp_cl, client_data);
923 client_data->loader_ishtp_cl = loader_ishtp_cl;
924 client_data->cl_device = cl_device;
933 load_fw_from_host(client_data);
947 struct ishtp_cl_data *client_data;
950 client_data = devm_kzalloc(ishtp_device(cl_device),
951 sizeof(*client_data),
953 if (!client_data)
961 ishtp_set_client_data(loader_ishtp_cl, client_data);
962 client_data->loader_ishtp_cl = loader_ishtp_cl;
963 client_data->cl_device = cl_device;
965 init_waitqueue_head(&client_data->response.wait_queue);
967 INIT_WORK(&client_data->work_ishtp_reset,
969 INIT_WORK(&client_data->work_fw_load,
979 client_data->retry_count = 0;
982 schedule_work(&client_data->work_fw_load);
997 struct ishtp_cl_data *client_data;
1000 client_data = ishtp_get_client_data(loader_ishtp_cl);
1008 cancel_work_sync(&client_data->work_fw_load);
1009 cancel_work_sync(&client_data->work_ishtp_reset);
1026 struct ishtp_cl_data *client_data;
1029 client_data = ishtp_get_client_data(loader_ishtp_cl);
1031 schedule_work(&client_data->work_ishtp_reset);