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()
172 q->drv_priv = ctx; in dvb_vb2_init()
180 ctx->state = DVB_VB2_STATE_NONE; in dvb_vb2_init()
181 dprintk(1, "[%s] errno=%d\n", ctx->name, ret); in dvb_vb2_init()
185 mutex_init(&ctx->mutex); in dvb_vb2_init()
186 spin_lock_init(&ctx->slock); in dvb_vb2_init()
187 INIT_LIST_HEAD(&ctx->dvb_q); in dvb_vb2_init()
189 strscpy(ctx->name, name, DVB_VB2_NAME_MAX); in dvb_vb2_init()
190 ctx->nonblocking = nonblocking; in dvb_vb2_init()
191 ctx->state = DVB_VB2_STATE_INIT; in dvb_vb2_init()
193 dprintk(3, "[%s]\n", ctx->name); in dvb_vb2_init()
198 int dvb_vb2_release(struct dvb_vb2_ctx *ctx) in dvb_vb2_release() argument
200 struct vb2_queue *q = (struct vb2_queue *)&ctx->vb_q; in dvb_vb2_release()
202 if (ctx->state & DVB_VB2_STATE_INIT) in dvb_vb2_release()
205 ctx->state = DVB_VB2_STATE_NONE; in dvb_vb2_release()
206 dprintk(3, "[%s]\n", ctx->name); in dvb_vb2_release()
211 int dvb_vb2_stream_on(struct dvb_vb2_ctx *ctx) in dvb_vb2_stream_on() argument
213 struct vb2_queue *q = &ctx->vb_q; in dvb_vb2_stream_on()
218 ctx->state = DVB_VB2_STATE_NONE; in dvb_vb2_stream_on()
219 dprintk(1, "[%s] errno=%d\n", ctx->name, ret); in dvb_vb2_stream_on()
222 ctx->state |= DVB_VB2_STATE_STREAMON; in dvb_vb2_stream_on()
223 dprintk(3, "[%s]\n", ctx->name); in dvb_vb2_stream_on()
228 int dvb_vb2_stream_off(struct dvb_vb2_ctx *ctx) in dvb_vb2_stream_off() argument
230 struct vb2_queue *q = (struct vb2_queue *)&ctx->vb_q; in dvb_vb2_stream_off()
233 ctx->state &= ~DVB_VB2_STATE_STREAMON; in dvb_vb2_stream_off()
236 ctx->state = DVB_VB2_STATE_NONE; in dvb_vb2_stream_off()
237 dprintk(1, "[%s] errno=%d\n", ctx->name, ret); in dvb_vb2_stream_off()
240 dprintk(3, "[%s]\n", ctx->name); in dvb_vb2_stream_off()
245 int dvb_vb2_is_streaming(struct dvb_vb2_ctx *ctx) in dvb_vb2_is_streaming() argument
247 return (ctx->state & DVB_VB2_STATE_STREAMON); in dvb_vb2_is_streaming()
250 int dvb_vb2_fill_buffer(struct dvb_vb2_ctx *ctx, in dvb_vb2_fill_buffer() argument
266 spin_lock_irqsave(&ctx->slock, flags); in dvb_vb2_fill_buffer()
268 ctx->flags |= *buffer_flags; in dvb_vb2_fill_buffer()
272 if (!ctx->buf) { in dvb_vb2_fill_buffer()
273 if (list_empty(&ctx->dvb_q)) { in dvb_vb2_fill_buffer()
275 ctx->name); in dvb_vb2_fill_buffer()
279 ctx->buf = list_entry(ctx->dvb_q.next, in dvb_vb2_fill_buffer()
281 ctx->remain = vb2_plane_size(&ctx->buf->vb, 0); in dvb_vb2_fill_buffer()
282 ctx->offset = 0; in dvb_vb2_fill_buffer()
285 if (!dvb_vb2_is_streaming(ctx)) { in dvb_vb2_fill_buffer()
286 vb2_buffer_done(&ctx->buf->vb, VB2_BUF_STATE_ERROR); in dvb_vb2_fill_buffer()
287 list_del(&ctx->buf->list); in dvb_vb2_fill_buffer()
288 ctx->buf = NULL; in dvb_vb2_fill_buffer()
293 ll = min(todo, ctx->remain); in dvb_vb2_fill_buffer()
294 vbuf = vb2_plane_vaddr(&ctx->buf->vb, 0); in dvb_vb2_fill_buffer()
295 memcpy(vbuf + ctx->offset, psrc, ll); in dvb_vb2_fill_buffer()
299 ctx->remain -= ll; in dvb_vb2_fill_buffer()
300 ctx->offset += ll; in dvb_vb2_fill_buffer()
302 if (ctx->remain == 0) { in dvb_vb2_fill_buffer()
303 vb2_buffer_done(&ctx->buf->vb, VB2_BUF_STATE_DONE); in dvb_vb2_fill_buffer()
304 list_del(&ctx->buf->list); in dvb_vb2_fill_buffer()
305 ctx->buf = NULL; in dvb_vb2_fill_buffer()
309 if (ctx->nonblocking && ctx->buf) { in dvb_vb2_fill_buffer()
310 vb2_set_plane_payload(&ctx->buf->vb, 0, ll); in dvb_vb2_fill_buffer()
311 vb2_buffer_done(&ctx->buf->vb, VB2_BUF_STATE_DONE); in dvb_vb2_fill_buffer()
312 list_del(&ctx->buf->list); in dvb_vb2_fill_buffer()
313 ctx->buf = NULL; in dvb_vb2_fill_buffer()
315 spin_unlock_irqrestore(&ctx->slock, flags); in dvb_vb2_fill_buffer()
318 dprintk(1, "[%s] %d bytes are dropped.\n", ctx->name, todo); in dvb_vb2_fill_buffer()
320 dprintk(3, "[%s]\n", ctx->name); in dvb_vb2_fill_buffer()
322 dprintk(3, "[%s] %d bytes are copied\n", ctx->name, len - todo); in dvb_vb2_fill_buffer()
326 int dvb_vb2_reqbufs(struct dvb_vb2_ctx *ctx, struct dmx_requestbuffers *req) in dvb_vb2_reqbufs() argument
336 ctx->buf_siz = req->size; in dvb_vb2_reqbufs()
337 ctx->buf_cnt = req->count; in dvb_vb2_reqbufs()
338 ret = vb2_core_reqbufs(&ctx->vb_q, VB2_MEMORY_MMAP, 0, &req->count); in dvb_vb2_reqbufs()
340 ctx->state = DVB_VB2_STATE_NONE; in dvb_vb2_reqbufs()
341 dprintk(1, "[%s] count=%d size=%d errno=%d\n", ctx->name, in dvb_vb2_reqbufs()
342 ctx->buf_cnt, ctx->buf_siz, ret); in dvb_vb2_reqbufs()
345 ctx->state |= DVB_VB2_STATE_REQBUFS; in dvb_vb2_reqbufs()
346 dprintk(3, "[%s] count=%d size=%d\n", ctx->name, in dvb_vb2_reqbufs()
347 ctx->buf_cnt, ctx->buf_siz); in dvb_vb2_reqbufs()
352 int dvb_vb2_querybuf(struct dvb_vb2_ctx *ctx, struct dmx_buffer *b) in dvb_vb2_querybuf() argument
354 struct vb2_queue *q = &ctx->vb_q; in dvb_vb2_querybuf()
358 dprintk(1, "[%s] invalid buffer index\n", ctx->name); in dvb_vb2_querybuf()
361 vb2_core_querybuf(&ctx->vb_q, vb2, b); in dvb_vb2_querybuf()
362 dprintk(3, "[%s] index=%d\n", ctx->name, b->index); in dvb_vb2_querybuf()
366 int dvb_vb2_expbuf(struct dvb_vb2_ctx *ctx, struct dmx_exportbuffer *exp) in dvb_vb2_expbuf() argument
368 struct vb2_queue *q = &ctx->vb_q; in dvb_vb2_expbuf()
373 dprintk(1, "[%s] invalid buffer index\n", ctx->name); in dvb_vb2_expbuf()
377 ret = vb2_core_expbuf(&ctx->vb_q, &exp->fd, q->type, vb2, in dvb_vb2_expbuf()
380 dprintk(1, "[%s] index=%d errno=%d\n", ctx->name, in dvb_vb2_expbuf()
384 dprintk(3, "[%s] index=%d fd=%d\n", ctx->name, exp->index, exp->fd); in dvb_vb2_expbuf()
389 int dvb_vb2_qbuf(struct dvb_vb2_ctx *ctx, struct dmx_buffer *b) in dvb_vb2_qbuf() argument
391 struct vb2_queue *q = &ctx->vb_q; in dvb_vb2_qbuf()
396 dprintk(1, "[%s] invalid buffer index\n", ctx->name); in dvb_vb2_qbuf()
399 ret = vb2_core_qbuf(&ctx->vb_q, vb2, b, NULL); in dvb_vb2_qbuf()
401 dprintk(1, "[%s] index=%d errno=%d\n", ctx->name, in dvb_vb2_qbuf()
405 dprintk(5, "[%s] index=%d\n", ctx->name, b->index); in dvb_vb2_qbuf()
410 int dvb_vb2_dqbuf(struct dvb_vb2_ctx *ctx, struct dmx_buffer *b) in dvb_vb2_dqbuf() argument
415 ret = vb2_core_dqbuf(&ctx->vb_q, &b->index, b, ctx->nonblocking); in dvb_vb2_dqbuf()
417 dprintk(1, "[%s] errno=%d\n", ctx->name, ret); in dvb_vb2_dqbuf()
421 spin_lock_irqsave(&ctx->slock, flags); in dvb_vb2_dqbuf()
422 b->count = ctx->count++; in dvb_vb2_dqbuf()
423 b->flags = ctx->flags; in dvb_vb2_dqbuf()
424 ctx->flags = 0; in dvb_vb2_dqbuf()
425 spin_unlock_irqrestore(&ctx->slock, flags); in dvb_vb2_dqbuf()
428 ctx->name, b->index, ctx->count, b->flags); in dvb_vb2_dqbuf()
434 int dvb_vb2_mmap(struct dvb_vb2_ctx *ctx, struct vm_area_struct *vma) in dvb_vb2_mmap() argument
438 ret = vb2_mmap(&ctx->vb_q, vma); in dvb_vb2_mmap()
440 dprintk(1, "[%s] errno=%d\n", ctx->name, ret); in dvb_vb2_mmap()
443 dprintk(3, "[%s] ret=%d\n", ctx->name, ret); in dvb_vb2_mmap()
448 __poll_t dvb_vb2_poll(struct dvb_vb2_ctx *ctx, struct file *file, in dvb_vb2_poll() argument
451 dprintk(3, "[%s]\n", ctx->name); in dvb_vb2_poll()
452 return vb2_core_poll(&ctx->vb_q, file, wait); in dvb_vb2_poll()