Lines Matching full:bulk

139 			/* actual buffer used to store bulk reply */
151 } bulk; /* bulk data */ member
179 /* ordered workqueue to process all bulk operations */
255 container_of(work, struct mmal_msg_context, u.bulk.work); in buffer_work_cb()
256 struct mmal_buffer *buffer = msg_context->u.bulk.buffer; in buffer_work_cb()
264 buffer->length = msg_context->u.bulk.buffer_used; in buffer_work_cb()
265 buffer->mmal_flags = msg_context->u.bulk.mmal_flags; in buffer_work_cb()
266 buffer->dts = msg_context->u.bulk.dts; in buffer_work_cb()
267 buffer->pts = msg_context->u.bulk.pts; in buffer_work_cb()
269 atomic_dec(&msg_context->u.bulk.port->buffers_with_vpu); in buffer_work_cb()
271 msg_context->u.bulk.port->buffer_cb(msg_context->u.bulk.instance, in buffer_work_cb()
272 msg_context->u.bulk.port, in buffer_work_cb()
273 msg_context->u.bulk.status, in buffer_work_cb()
274 msg_context->u.bulk.buffer); in buffer_work_cb()
279 * VCHI will allow up to 4 bulk receives to be scheduled before blocking.
288 u.bulk.buffer_to_host_work); in buffer_to_host_work_cb()
290 unsigned long len = msg_context->u.bulk.buffer_used; in buffer_to_host_work_cb()
296 /* queue the bulk submission */ in buffer_to_host_work_cb()
299 msg_context->u.bulk.buffer->buffer, in buffer_to_host_work_cb()
314 /* enqueue a bulk receive for a given message context */
323 if (!msg_context->u.bulk.buffer) { in bulk_receive()
324 pr_err("bulk.buffer not configured - error in buffer_from_host\n"); in bulk_receive()
333 * waiting bulk receive? in bulk_receive()
340 if (rd_len > msg_context->u.bulk.buffer->buffer_size) { in bulk_receive()
341 rd_len = msg_context->u.bulk.buffer->buffer_size; in bulk_receive()
349 msg_context->u.bulk.buffer_used = rd_len; in bulk_receive()
350 msg_context->u.bulk.dts = msg->u.buffer_from_host.buffer_header.dts; in bulk_receive()
351 msg_context->u.bulk.pts = msg->u.buffer_from_host.buffer_header.pts; in bulk_receive()
354 &msg_context->u.bulk.buffer_to_host_work); in bulk_receive()
364 memcpy(msg_context->u.bulk.buffer->buffer, in inline_receive()
368 msg_context->u.bulk.buffer_used = in inline_receive()
396 /* store bulk message context for when data arrives */ in buffer_from_host()
397 msg_context->u.bulk.instance = instance; in buffer_from_host()
398 msg_context->u.bulk.port = port; in buffer_from_host()
399 msg_context->u.bulk.buffer = buf; in buffer_from_host()
400 msg_context->u.bulk.buffer_used = 0; in buffer_from_host()
403 INIT_WORK(&msg_context->u.bulk.work, buffer_work_cb); in buffer_from_host()
404 INIT_WORK(&msg_context->u.bulk.buffer_to_host_work, in buffer_from_host()
478 msg_context->u.bulk.mmal_flags = in buffer_to_host_cb()
485 msg_context->u.bulk.status = msg->h.status; in buffer_to_host_cb()
491 msg_context->u.bulk.status = in buffer_to_host_cb()
493 if (msg_context->u.bulk.status == 0) in buffer_to_host_cb()
494 return; /* successful bulk submission, bulk in buffer_to_host_cb()
499 msg_context->u.bulk.status = 0; in buffer_to_host_cb()
500 msg_context->u.bulk.buffer_used = 0; in buffer_to_host_cb()
503 /* data is not in message, queue a bulk receive */ in buffer_to_host_cb()
504 msg_context->u.bulk.status = in buffer_to_host_cb()
506 if (msg_context->u.bulk.status == 0) in buffer_to_host_cb()
507 return; /* successful bulk submission, bulk in buffer_to_host_cb()
512 pr_err("error %d on bulk submission\n", in buffer_to_host_cb()
513 msg_context->u.bulk.status); in buffer_to_host_cb()
518 msg_context->u.bulk.status = inline_receive(instance, msg, in buffer_to_host_cb()
524 msg_context->u.bulk.status = -EINVAL; in buffer_to_host_cb()
525 msg_context->u.bulk.buffer_used = in buffer_to_host_cb()
530 schedule_work(&msg_context->u.bulk.work); in buffer_to_host_cb()
536 msg_context->u.bulk.status = 0; in bulk_receive_cb()
539 schedule_work(&msg_context->u.bulk.work); in bulk_receive_cb()
545 pr_err("%s: bulk ABORTED msg_context:%p\n", __func__, msg_context); in bulk_abort_cb()
547 msg_context->u.bulk.status = -EINTR; in bulk_abort_cb()
549 schedule_work(&msg_context->u.bulk.work); in bulk_abort_cb()