Lines Matching defs:client_data

242 #define cl_data_to_dev(client_data) ishtp_device((client_data)->cl_device)
247 * @client_data: Client data instance.
254 static int get_firmware_variant(struct ishtp_cl_data *client_data,
259 struct device *devc = ishtp_get_pci_device(client_data->cl_device);
273 * @client_data: Client data instance
283 static int loader_cl_send(struct ishtp_cl_data *client_data,
289 struct ishtp_cl *loader_ishtp_cl = client_data->loader_ishtp_cl;
291 dev_dbg(cl_data_to_dev(client_data),
299 client_data->response.data = in_msg;
300 client_data->response.max_size = in_size;
301 client_data->response.error = 0;
302 client_data->response.received = false;
306 dev_err(cl_data_to_dev(client_data),
311 wait_event_interruptible_timeout(client_data->response.wait_queue,
312 client_data->response.received,
314 if (!client_data->response.received) {
315 dev_err(cl_data_to_dev(client_data),
321 if (client_data->response.error < 0)
322 return client_data->response.error;
324 return client_data->response.size;
340 struct ishtp_cl_data *client_data =
344 if (!client_data->response.data) {
345 dev_err(cl_data_to_dev(client_data),
347 client_data->response.error = -EINVAL;
351 if (client_data->response.received) {
352 dev_err(cl_data_to_dev(client_data),
354 client_data->response.error = -EINVAL;
362 dev_warn(cl_data_to_dev(client_data),
364 client_data->response.error = -EBADMSG;
369 dev_err(cl_data_to_dev(client_data),
372 client_data->response.error = -EMSGSIZE;
378 dev_dbg(cl_data_to_dev(client_data),
388 dev_err(cl_data_to_dev(client_data),
391 client_data->response.error = -EPROTO;
395 if (data_len > client_data->response.max_size) {
396 dev_err(cl_data_to_dev(client_data),
398 data_len, client_data->response.max_size);
399 client_data->response.error = -EMSGSIZE;
405 dev_err(cl_data_to_dev(client_data),
407 client_data->response.error = -EIO;
412 dev_err(cl_data_to_dev(client_data),
415 client_data->response.error = -EIO;
420 client_data->response.size = data_len;
426 memcpy(client_data->response.data,
430 client_data->response.received = true;
438 wake_up_interruptible(&client_data->response.wait_queue);
462 * @client_data: Client data instance
470 static int ish_query_loader_prop(struct ishtp_cl_data *client_data,
481 rv = loader_cl_send(client_data,
487 client_data->flag_retry = true;
494 dev_err(cl_data_to_dev(client_data),
497 client_data->flag_retry = true;
506 dev_dbg(cl_data_to_dev(client_data),
515 dev_dbg(cl_data_to_dev(client_data),
524 dev_err(cl_data_to_dev(client_data),
534 dev_err(cl_data_to_dev(client_data),
545 * @client_data: Client data instance
554 static int ish_fw_xfer_ishtp(struct ishtp_cl_data *client_data,
567 client_data->flag_retry = true;
591 dev_dbg(cl_data_to_dev(client_data),
597 rv = loader_cl_send(client_data,
603 client_data->flag_retry = true;
621 * @client_data: Client data instance
634 static int ish_fw_xfer_direct_dma(struct ishtp_cl_data *client_data,
644 struct device *devc = ishtp_get_pci_device(client_data->cl_device);
666 client_data->flag_retry = true;
692 dev_dbg(cl_data_to_dev(client_data),
699 rv = loader_cl_send(client_data,
705 client_data->flag_retry = true;
719 * @client_data: client data instance
726 static int ish_fw_start(struct ishtp_cl_data *client_data)
733 return loader_cl_send(client_data,
742 * @client_data: Client data instance
748 static int load_fw_from_host(struct ishtp_cl_data *client_data)
755 struct ishtp_cl *loader_ishtp_cl = client_data->loader_ishtp_cl;
757 client_data->flag_retry = false;
761 client_data->flag_retry = true;
767 rv = get_firmware_variant(client_data, filename);
771 rv = request_firmware(&fw, filename, cl_data_to_dev(client_data));
777 rv = ish_query_loader_prop(client_data, fw, &fw_info);
785 rv = ish_fw_xfer_direct_dma(client_data, fw, fw_info);
787 rv = ish_fw_xfer_ishtp(client_data, fw);
789 dev_err(cl_data_to_dev(client_data),
798 rv = ish_fw_start(client_data);
803 dev_info(cl_data_to_dev(client_data), "ISH firmware %s loaded\n",
814 if (client_data->flag_retry &&
815 client_data->retry_count++ < MAX_LOAD_ATTEMPTS) {
816 dev_warn(cl_data_to_dev(client_data),
821 dev_err(cl_data_to_dev(client_data),
829 struct ishtp_cl_data *client_data;
831 client_data = container_of(work, struct ishtp_cl_data,
833 load_fw_from_host(client_data);
846 struct ishtp_cl_data *client_data =
849 dev_dbg(cl_data_to_dev(client_data), "reset flag: %d\n", reset);
857 dev_err(cl_data_to_dev(client_data), "Client connect fail\n");
861 dev_dbg(cl_data_to_dev(client_data), "Client connected\n");
863 ishtp_register_event_cb(client_data->cl_device, loader_cl_event_cb);
883 struct ishtp_cl_data *client_data;
887 client_data = container_of(work, struct ishtp_cl_data,
890 loader_ishtp_cl = client_data->loader_ishtp_cl;
891 cl_device = client_data->cl_device;
902 load_fw_from_host(client_data);
916 struct ishtp_cl_data *client_data;
919 client_data = devm_kzalloc(ishtp_device(cl_device),
920 sizeof(*client_data),
922 if (!client_data)
930 ishtp_set_client_data(loader_ishtp_cl, client_data);
931 client_data->loader_ishtp_cl = loader_ishtp_cl;
932 client_data->cl_device = cl_device;
934 init_waitqueue_head(&client_data->response.wait_queue);
936 INIT_WORK(&client_data->work_ishtp_reset,
938 INIT_WORK(&client_data->work_fw_load,
948 client_data->retry_count = 0;
951 schedule_work(&client_data->work_fw_load);
966 struct ishtp_cl_data *client_data;
969 client_data = ishtp_get_client_data(loader_ishtp_cl);
977 cancel_work_sync(&client_data->work_fw_load);
978 cancel_work_sync(&client_data->work_ishtp_reset);
993 struct ishtp_cl_data *client_data;
996 client_data = ishtp_get_client_data(loader_ishtp_cl);
998 schedule_work(&client_data->work_ishtp_reset);