Lines Matching defs:wait_data
412 struct cdx_mcdi_blocking_data *wait_data =
415 wait_data->rc = rc;
416 memcpy(wait_data->outbuf, outbuf,
417 min(outlen_actual, wait_data->outlen));
418 wait_data->outlen_actual = outlen_actual;
421 wait_data->done = true;
422 wake_up(&wait_data->wq);
423 kref_put(&wait_data->ref, cdx_mcdi_blocking_data_release);
431 struct cdx_mcdi_blocking_data *wait_data;
439 wait_data = kmalloc(sizeof(*wait_data), GFP_KERNEL);
440 if (!wait_data)
445 kfree(wait_data);
449 kref_init(&wait_data->ref);
450 wait_data->done = false;
451 init_waitqueue_head(&wait_data->wq);
452 wait_data->outbuf = outbuf;
453 wait_data->outlen = outlen;
457 cmd_item->cookie = (unsigned long)wait_data;
464 kref_get(&wait_data->ref);
467 kref_put(&wait_data->ref, cdx_mcdi_blocking_data_release);
471 if (!wait_event_timeout(wait_data->wq, wait_data->done,
473 !wait_data->done) {
479 wait_data->rc = -ETIMEDOUT;
480 wait_data->outlen_actual = 0;
484 *outlen_actual = wait_data->outlen_actual;
485 rc = wait_data->rc;
488 kref_put(&wait_data->ref, cdx_mcdi_blocking_data_release);