Lines Matching refs:ctx

33 	struct dvb_vb2_ctx *ctx = vb2_get_drv_priv(vq);  in _queue_setup()  local
35 ctx->buf_cnt = *nbuffers; in _queue_setup()
37 sizes[0] = ctx->buf_siz; in _queue_setup()
44 dprintk(3, "[%s] count=%d, size=%d\n", ctx->name, in _queue_setup()
52 struct dvb_vb2_ctx *ctx = vb2_get_drv_priv(vb->vb2_queue); in _buffer_prepare() local
53 unsigned long size = ctx->buf_siz; in _buffer_prepare()
57 ctx->name, vb2_plane_size(vb, 0), size); in _buffer_prepare()
62 dprintk(3, "[%s]\n", ctx->name); in _buffer_prepare()
69 struct dvb_vb2_ctx *ctx = vb2_get_drv_priv(vb->vb2_queue); in _buffer_queue() local
73 spin_lock_irqsave(&ctx->slock, flags); in _buffer_queue()
74 list_add_tail(&buf->list, &ctx->dvb_q); in _buffer_queue()
75 spin_unlock_irqrestore(&ctx->slock, flags); in _buffer_queue()
77 dprintk(3, "[%s]\n", ctx->name); in _buffer_queue()
82 struct dvb_vb2_ctx *ctx = vb2_get_drv_priv(vq); in _start_streaming() local
84 dprintk(3, "[%s] count=%d\n", ctx->name, count); in _start_streaming()
90 struct dvb_vb2_ctx *ctx = vb2_get_drv_priv(vq); in _stop_streaming() local
94 dprintk(3, "[%s]\n", ctx->name); in _stop_streaming()
96 spin_lock_irqsave(&ctx->slock, flags); in _stop_streaming()
97 while (!list_empty(&ctx->dvb_q)) { in _stop_streaming()
98 buf = list_entry(ctx->dvb_q.next, in _stop_streaming()
103 spin_unlock_irqrestore(&ctx->slock, flags); in _stop_streaming()
108 struct dvb_vb2_ctx *ctx = vb2_get_drv_priv(vq); in _dmxdev_lock() local
110 mutex_lock(&ctx->mutex); in _dmxdev_lock()
111 dprintk(3, "[%s]\n", ctx->name); in _dmxdev_lock()
116 struct dvb_vb2_ctx *ctx = vb2_get_drv_priv(vq); in _dmxdev_unlock() local
118 if (mutex_is_locked(&ctx->mutex)) in _dmxdev_unlock()
119 mutex_unlock(&ctx->mutex); in _dmxdev_unlock()
120 dprintk(3, "[%s]\n", ctx->name); in _dmxdev_unlock()
135 struct dvb_vb2_ctx *ctx = vb2_get_drv_priv(vb->vb2_queue); in _fill_dmx_buffer() local
142 dprintk(3, "[%s]\n", ctx->name); in _fill_dmx_buffer()
147 struct dvb_vb2_ctx *ctx = vb2_get_drv_priv(vb->vb2_queue); in _fill_vb2_buffer() local
150 dprintk(3, "[%s]\n", ctx->name); in _fill_vb2_buffer()
163 int dvb_vb2_init(struct dvb_vb2_ctx *ctx, const char *name, int nonblocking) in dvb_vb2_init() argument
165 struct vb2_queue *q = &ctx->vb_q; in dvb_vb2_init()
168 memset(ctx, 0, sizeof(struct dvb_vb2_ctx)); in dvb_vb2_init()
174 q->drv_priv = ctx; in dvb_vb2_init()
183 ctx->state = DVB_VB2_STATE_NONE; in dvb_vb2_init()
184 dprintk(1, "[%s] errno=%d\n", ctx->name, ret); in dvb_vb2_init()
188 mutex_init(&ctx->mutex); in dvb_vb2_init()
189 spin_lock_init(&ctx->slock); in dvb_vb2_init()
190 INIT_LIST_HEAD(&ctx->dvb_q); in dvb_vb2_init()
192 strscpy(ctx->name, name, DVB_VB2_NAME_MAX); in dvb_vb2_init()
193 ctx->nonblocking = nonblocking; in dvb_vb2_init()
194 ctx->state = DVB_VB2_STATE_INIT; in dvb_vb2_init()
196 dprintk(3, "[%s]\n", ctx->name); in dvb_vb2_init()
201 int dvb_vb2_release(struct dvb_vb2_ctx *ctx) in dvb_vb2_release() argument
203 struct vb2_queue *q = (struct vb2_queue *)&ctx->vb_q; in dvb_vb2_release()
205 if (ctx->state & DVB_VB2_STATE_INIT) in dvb_vb2_release()
208 ctx->state = DVB_VB2_STATE_NONE; in dvb_vb2_release()
209 dprintk(3, "[%s]\n", ctx->name); in dvb_vb2_release()
214 int dvb_vb2_stream_on(struct dvb_vb2_ctx *ctx) in dvb_vb2_stream_on() argument
216 struct vb2_queue *q = &ctx->vb_q; in dvb_vb2_stream_on()
221 ctx->state = DVB_VB2_STATE_NONE; in dvb_vb2_stream_on()
222 dprintk(1, "[%s] errno=%d\n", ctx->name, ret); in dvb_vb2_stream_on()
225 ctx->state |= DVB_VB2_STATE_STREAMON; in dvb_vb2_stream_on()
226 dprintk(3, "[%s]\n", ctx->name); in dvb_vb2_stream_on()
231 int dvb_vb2_stream_off(struct dvb_vb2_ctx *ctx) in dvb_vb2_stream_off() argument
233 struct vb2_queue *q = (struct vb2_queue *)&ctx->vb_q; in dvb_vb2_stream_off()
236 ctx->state &= ~DVB_VB2_STATE_STREAMON; in dvb_vb2_stream_off()
239 ctx->state = DVB_VB2_STATE_NONE; in dvb_vb2_stream_off()
240 dprintk(1, "[%s] errno=%d\n", ctx->name, ret); in dvb_vb2_stream_off()
243 dprintk(3, "[%s]\n", ctx->name); in dvb_vb2_stream_off()
248 int dvb_vb2_is_streaming(struct dvb_vb2_ctx *ctx) in dvb_vb2_is_streaming() argument
250 return (ctx->state & DVB_VB2_STATE_STREAMON); in dvb_vb2_is_streaming()
253 int dvb_vb2_fill_buffer(struct dvb_vb2_ctx *ctx, in dvb_vb2_fill_buffer() argument
269 spin_lock_irqsave(&ctx->slock, flags); in dvb_vb2_fill_buffer()
271 ctx->flags |= *buffer_flags; in dvb_vb2_fill_buffer()
275 if (!ctx->buf) { in dvb_vb2_fill_buffer()
276 if (list_empty(&ctx->dvb_q)) { in dvb_vb2_fill_buffer()
278 ctx->name); in dvb_vb2_fill_buffer()
282 ctx->buf = list_entry(ctx->dvb_q.next, in dvb_vb2_fill_buffer()
284 ctx->remain = vb2_plane_size(&ctx->buf->vb, 0); in dvb_vb2_fill_buffer()
285 ctx->offset = 0; in dvb_vb2_fill_buffer()
288 if (!dvb_vb2_is_streaming(ctx)) { in dvb_vb2_fill_buffer()
289 vb2_buffer_done(&ctx->buf->vb, VB2_BUF_STATE_ERROR); in dvb_vb2_fill_buffer()
290 list_del(&ctx->buf->list); in dvb_vb2_fill_buffer()
291 ctx->buf = NULL; in dvb_vb2_fill_buffer()
296 ll = min(todo, ctx->remain); in dvb_vb2_fill_buffer()
297 vbuf = vb2_plane_vaddr(&ctx->buf->vb, 0); in dvb_vb2_fill_buffer()
298 memcpy(vbuf + ctx->offset, psrc, ll); in dvb_vb2_fill_buffer()
302 ctx->remain -= ll; in dvb_vb2_fill_buffer()
303 ctx->offset += ll; in dvb_vb2_fill_buffer()
305 if (ctx->remain == 0) { in dvb_vb2_fill_buffer()
306 vb2_buffer_done(&ctx->buf->vb, VB2_BUF_STATE_DONE); in dvb_vb2_fill_buffer()
307 list_del(&ctx->buf->list); in dvb_vb2_fill_buffer()
308 ctx->buf = NULL; in dvb_vb2_fill_buffer()
312 if (ctx->nonblocking && ctx->buf) { in dvb_vb2_fill_buffer()
313 vb2_set_plane_payload(&ctx->buf->vb, 0, ll); in dvb_vb2_fill_buffer()
314 vb2_buffer_done(&ctx->buf->vb, VB2_BUF_STATE_DONE); in dvb_vb2_fill_buffer()
315 list_del(&ctx->buf->list); in dvb_vb2_fill_buffer()
316 ctx->buf = NULL; in dvb_vb2_fill_buffer()
318 spin_unlock_irqrestore(&ctx->slock, flags); in dvb_vb2_fill_buffer()
321 dprintk(1, "[%s] %d bytes are dropped.\n", ctx->name, todo); in dvb_vb2_fill_buffer()
323 dprintk(3, "[%s]\n", ctx->name); in dvb_vb2_fill_buffer()
325 dprintk(3, "[%s] %d bytes are copied\n", ctx->name, len - todo); in dvb_vb2_fill_buffer()
329 int dvb_vb2_reqbufs(struct dvb_vb2_ctx *ctx, struct dmx_requestbuffers *req) in dvb_vb2_reqbufs() argument
339 ctx->buf_siz = req->size; in dvb_vb2_reqbufs()
340 ctx->buf_cnt = req->count; in dvb_vb2_reqbufs()
341 ret = vb2_core_reqbufs(&ctx->vb_q, VB2_MEMORY_MMAP, 0, &req->count); in dvb_vb2_reqbufs()
343 ctx->state = DVB_VB2_STATE_NONE; in dvb_vb2_reqbufs()
344 dprintk(1, "[%s] count=%d size=%d errno=%d\n", ctx->name, in dvb_vb2_reqbufs()
345 ctx->buf_cnt, ctx->buf_siz, ret); in dvb_vb2_reqbufs()
348 ctx->state |= DVB_VB2_STATE_REQBUFS; in dvb_vb2_reqbufs()
349 dprintk(3, "[%s] count=%d size=%d\n", ctx->name, in dvb_vb2_reqbufs()
350 ctx->buf_cnt, ctx->buf_siz); in dvb_vb2_reqbufs()
355 int dvb_vb2_querybuf(struct dvb_vb2_ctx *ctx, struct dmx_buffer *b) in dvb_vb2_querybuf() argument
357 struct vb2_queue *q = &ctx->vb_q; in dvb_vb2_querybuf()
360 dprintk(1, "[%s] buffer index out of range\n", ctx->name); in dvb_vb2_querybuf()
363 vb2_core_querybuf(&ctx->vb_q, b->index, b); in dvb_vb2_querybuf()
364 dprintk(3, "[%s] index=%d\n", ctx->name, b->index); in dvb_vb2_querybuf()
368 int dvb_vb2_expbuf(struct dvb_vb2_ctx *ctx, struct dmx_exportbuffer *exp) in dvb_vb2_expbuf() argument
370 struct vb2_queue *q = &ctx->vb_q; in dvb_vb2_expbuf()
373 ret = vb2_core_expbuf(&ctx->vb_q, &exp->fd, q->type, exp->index, in dvb_vb2_expbuf()
376 dprintk(1, "[%s] index=%d errno=%d\n", ctx->name, in dvb_vb2_expbuf()
380 dprintk(3, "[%s] index=%d fd=%d\n", ctx->name, exp->index, exp->fd); in dvb_vb2_expbuf()
385 int dvb_vb2_qbuf(struct dvb_vb2_ctx *ctx, struct dmx_buffer *b) in dvb_vb2_qbuf() argument
387 struct vb2_queue *q = &ctx->vb_q; in dvb_vb2_qbuf()
391 dprintk(1, "[%s] buffer index out of range\n", ctx->name); in dvb_vb2_qbuf()
394 ret = vb2_core_qbuf(&ctx->vb_q, b->index, b, NULL); in dvb_vb2_qbuf()
396 dprintk(1, "[%s] index=%d errno=%d\n", ctx->name, in dvb_vb2_qbuf()
400 dprintk(5, "[%s] index=%d\n", ctx->name, b->index); in dvb_vb2_qbuf()
405 int dvb_vb2_dqbuf(struct dvb_vb2_ctx *ctx, struct dmx_buffer *b) in dvb_vb2_dqbuf() argument
410 ret = vb2_core_dqbuf(&ctx->vb_q, &b->index, b, ctx->nonblocking); in dvb_vb2_dqbuf()
412 dprintk(1, "[%s] errno=%d\n", ctx->name, ret); in dvb_vb2_dqbuf()
416 spin_lock_irqsave(&ctx->slock, flags); in dvb_vb2_dqbuf()
417 b->count = ctx->count++; in dvb_vb2_dqbuf()
418 b->flags = ctx->flags; in dvb_vb2_dqbuf()
419 ctx->flags = 0; in dvb_vb2_dqbuf()
420 spin_unlock_irqrestore(&ctx->slock, flags); in dvb_vb2_dqbuf()
423 ctx->name, b->index, ctx->count, b->flags); in dvb_vb2_dqbuf()
429 int dvb_vb2_mmap(struct dvb_vb2_ctx *ctx, struct vm_area_struct *vma) in dvb_vb2_mmap() argument
433 ret = vb2_mmap(&ctx->vb_q, vma); in dvb_vb2_mmap()
435 dprintk(1, "[%s] errno=%d\n", ctx->name, ret); in dvb_vb2_mmap()
438 dprintk(3, "[%s] ret=%d\n", ctx->name, ret); in dvb_vb2_mmap()
443 __poll_t dvb_vb2_poll(struct dvb_vb2_ctx *ctx, struct file *file, in dvb_vb2_poll() argument
446 dprintk(3, "[%s]\n", ctx->name); in dvb_vb2_poll()
447 return vb2_core_poll(&ctx->vb_q, file, wait); in dvb_vb2_poll()