Lines Matching full:reply
93 * struct rave_sp_reply - Reply as per RAVE device protocol
95 * @length: Expected reply length
96 * @data: Buffer to store reply payload in
97 * @code: Expected reply code
98 * @ackid: Expected reply ACK ID
99 * @received: Successful reply reception completion
177 * @ackid: ACK ID used in last reply sent to the device
179 * @reply_lock: Lock protecting @reply
180 * @reply: Pointer to memory to store reply payload
194 struct rave_sp_reply *reply; member
346 struct rave_sp_reply reply = { in rave_sp_exec() local
349 .received = COMPLETION_INITIALIZER_ONSTACK(reply.received), in rave_sp_exec()
360 reply.ackid = ackid; in rave_sp_exec()
361 reply.code = rave_sp_reply_code((u8)command); in rave_sp_exec()
366 sp->reply = &reply; in rave_sp_exec()
374 if (!wait_for_completion_timeout(&reply.received, HZ)) { in rave_sp_exec()
379 sp->reply = NULL; in rave_sp_exec()
407 struct rave_sp_reply *reply; in rave_sp_receive_reply() local
411 reply = sp->reply; in rave_sp_receive_reply()
413 if (reply) { in rave_sp_receive_reply()
414 if (reply->code == data[0] && reply->ackid == data[1] && in rave_sp_receive_reply()
415 payload_length >= reply->length) { in rave_sp_receive_reply()
418 * when handling commands that have a no-payload reply in rave_sp_receive_reply()
420 memcpy(reply->data, &data[2], reply->length); in rave_sp_receive_reply()
421 complete(&reply->received); in rave_sp_receive_reply()
422 sp->reply = NULL; in rave_sp_receive_reply()
424 dev_err(dev, "Ignoring incorrect reply\n"); in rave_sp_receive_reply()
426 reply->code, data[0]); in rave_sp_receive_reply()
428 reply->ackid, data[1]); in rave_sp_receive_reply()
430 reply->length, payload_length); in rave_sp_receive_reply()