Lines Matching refs:work_data
109 void (*cbk)(struct atmel_ecc_work_data *work_data, void *areq,
268 static void atmel_ecdh_done(struct atmel_ecc_work_data *work_data, void *areq, in atmel_ecdh_done() argument
272 struct atmel_ecdh_ctx *ctx = work_data->ctx; in atmel_ecdh_done()
273 struct atmel_ecc_cmd *cmd = &work_data->cmd; in atmel_ecdh_done()
290 kzfree(work_data); in atmel_ecdh_done()
348 struct atmel_ecc_work_data *work_data = in atmel_ecc_work_handler() local
350 struct atmel_ecc_cmd *cmd = &work_data->cmd; in atmel_ecc_work_handler()
351 struct i2c_client *client = work_data->ctx->client; in atmel_ecc_work_handler()
355 work_data->cbk(work_data, work_data->areq, status); in atmel_ecc_work_handler()
358 static void atmel_ecc_enqueue(struct atmel_ecc_work_data *work_data, in atmel_ecc_enqueue() argument
359 void (*cbk)(struct atmel_ecc_work_data *work_data, in atmel_ecc_enqueue() argument
363 work_data->cbk = (void *)cbk; in atmel_ecc_enqueue()
364 work_data->areq = areq; in atmel_ecc_enqueue()
366 INIT_WORK(&work_data->work, atmel_ecc_work_handler); in atmel_ecc_enqueue()
367 schedule_work(&work_data->work); in atmel_ecc_enqueue()
473 struct atmel_ecc_work_data *work_data; in atmel_ecdh_compute_shared_secret() local
489 work_data = kmalloc(sizeof(*work_data), gfp); in atmel_ecdh_compute_shared_secret()
490 if (!work_data) in atmel_ecdh_compute_shared_secret()
493 work_data->ctx = ctx; in atmel_ecdh_compute_shared_secret()
495 ret = atmel_ecc_init_ecdh_cmd(&work_data->cmd, req->src); in atmel_ecdh_compute_shared_secret()
499 atmel_ecc_enqueue(work_data, atmel_ecdh_done, req); in atmel_ecdh_compute_shared_secret()
504 kfree(work_data); in atmel_ecdh_compute_shared_secret()