Lines Matching defs:pvt_data
73 static size_t get_optee_rng_data(struct optee_rng_private *pvt_data,
87 inv_arg.session = pvt_data->session_id;
92 param[0].u.memref.shm = pvt_data->entropy_shm_pool;
96 ret = tee_client_invoke_func(pvt_data->ctx, &inv_arg, param);
98 dev_err(pvt_data->dev, "TA_CMD_GET_ENTROPY invoke err: %x\n",
103 rng_data = tee_shm_get_va(pvt_data->entropy_shm_pool, 0);
105 dev_err(pvt_data->dev, "tee_shm_get_va failed\n");
117 struct optee_rng_private *pvt_data = to_optee_rng_private(rng);
126 rng_size = get_optee_rng_data(pvt_data, data, (max - read));
131 if (wait && pvt_data->data_rate) {
134 msleep((1000 * (max - read)) / pvt_data->data_rate);
145 struct optee_rng_private *pvt_data = to_optee_rng_private(rng);
148 entropy_shm_pool = tee_shm_alloc(pvt_data->ctx, MAX_ENTROPY_REQ_SZ,
151 dev_err(pvt_data->dev, "tee_shm_alloc failed\n");
155 pvt_data->entropy_shm_pool = entropy_shm_pool;
162 struct optee_rng_private *pvt_data = to_optee_rng_private(rng);
164 tee_shm_free(pvt_data->entropy_shm_pool);
167 static struct optee_rng_private pvt_data = {
187 inv_arg.session = pvt_data.session_id;
193 ret = tee_client_invoke_func(pvt_data.ctx, &inv_arg, param);
200 pvt_data.data_rate = param[0].u.value.a;
201 pvt_data.optee_rng.quality = param[0].u.value.b;
223 pvt_data.ctx = tee_client_open_context(NULL, optee_ctx_match, NULL,
225 if (IS_ERR(pvt_data.ctx))
233 ret = tee_client_open_session(pvt_data.ctx, &sess_arg, NULL);
240 pvt_data.session_id = sess_arg.session;
246 err = hwrng_register(&pvt_data.optee_rng);
252 pvt_data.dev = dev;
257 tee_client_close_session(pvt_data.ctx, pvt_data.session_id);
259 tee_client_close_context(pvt_data.ctx);
266 hwrng_unregister(&pvt_data.optee_rng);
267 tee_client_close_session(pvt_data.ctx, pvt_data.session_id);
268 tee_client_close_context(pvt_data.ctx);