Lines Matching refs:wait_data

432 	struct cdx_mcdi_blocking_data *wait_data =  in cdx_mcdi_rpc_completer()  local
435 wait_data->rc = rc; in cdx_mcdi_rpc_completer()
436 memcpy(wait_data->outbuf, outbuf, in cdx_mcdi_rpc_completer()
437 min(outlen_actual, wait_data->outlen)); in cdx_mcdi_rpc_completer()
438 wait_data->outlen_actual = outlen_actual; in cdx_mcdi_rpc_completer()
441 wait_data->done = true; in cdx_mcdi_rpc_completer()
442 wake_up(&wait_data->wq); in cdx_mcdi_rpc_completer()
443 kref_put(&wait_data->ref, cdx_mcdi_blocking_data_release); in cdx_mcdi_rpc_completer()
451 struct cdx_mcdi_blocking_data *wait_data; in cdx_mcdi_rpc_sync() local
459 wait_data = kmalloc(sizeof(*wait_data), GFP_KERNEL); in cdx_mcdi_rpc_sync()
460 if (!wait_data) in cdx_mcdi_rpc_sync()
465 kfree(wait_data); in cdx_mcdi_rpc_sync()
469 kref_init(&wait_data->ref); in cdx_mcdi_rpc_sync()
470 wait_data->done = false; in cdx_mcdi_rpc_sync()
471 init_waitqueue_head(&wait_data->wq); in cdx_mcdi_rpc_sync()
472 wait_data->outbuf = outbuf; in cdx_mcdi_rpc_sync()
473 wait_data->outlen = outlen; in cdx_mcdi_rpc_sync()
477 cmd_item->cookie = (unsigned long)wait_data; in cdx_mcdi_rpc_sync()
484 kref_get(&wait_data->ref); in cdx_mcdi_rpc_sync()
487 kref_put(&wait_data->ref, cdx_mcdi_blocking_data_release); in cdx_mcdi_rpc_sync()
491 if (!wait_event_timeout(wait_data->wq, wait_data->done, in cdx_mcdi_rpc_sync()
493 !wait_data->done) { in cdx_mcdi_rpc_sync()
499 wait_data->rc = -ETIMEDOUT; in cdx_mcdi_rpc_sync()
500 wait_data->outlen_actual = 0; in cdx_mcdi_rpc_sync()
504 *outlen_actual = wait_data->outlen_actual; in cdx_mcdi_rpc_sync()
505 rc = wait_data->rc; in cdx_mcdi_rpc_sync()
508 kref_put(&wait_data->ref, cdx_mcdi_blocking_data_release); in cdx_mcdi_rpc_sync()