diff options
Diffstat (limited to 'drivers/media/video/cx18/cx18-streams.c')
-rw-r--r-- | drivers/media/video/cx18/cx18-streams.c | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/drivers/media/video/cx18/cx18-streams.c b/drivers/media/video/cx18/cx18-streams.c index 9f8adda6f261..7755937fc521 100644 --- a/drivers/media/video/cx18/cx18-streams.c +++ b/drivers/media/video/cx18/cx18-streams.c | |||
@@ -262,9 +262,11 @@ static int cx18_reg_dev(struct cx18 *cx, int type) | |||
262 | 262 | ||
263 | switch (vfl_type) { | 263 | switch (vfl_type) { |
264 | case VFL_TYPE_GRABBER: | 264 | case VFL_TYPE_GRABBER: |
265 | CX18_INFO("Registered device video%d for %s (%d x %d kB)\n", | 265 | CX18_INFO("Registered device video%d for %s " |
266 | "(%d x %d.%02d kB)\n", | ||
266 | num, s->name, cx->stream_buffers[type], | 267 | num, s->name, cx->stream_buffers[type], |
267 | cx->stream_buf_size[type]/1024); | 268 | cx->stream_buf_size[type] / 1024, |
269 | (cx->stream_buf_size[type] * 100 / 1024) % 100); | ||
268 | break; | 270 | break; |
269 | 271 | ||
270 | case VFL_TYPE_RADIO: | 272 | case VFL_TYPE_RADIO: |
@@ -501,9 +503,23 @@ static void cx18_stream_configure_mdls(struct cx18_stream *s) | |||
501 | { | 503 | { |
502 | cx18_unload_queues(s); | 504 | cx18_unload_queues(s); |
503 | 505 | ||
504 | /* For now */ | 506 | switch (s->type) { |
505 | s->bufs_per_mdl = 1; | 507 | case CX18_ENC_STREAM_TYPE_YUV: |
506 | s->mdl_size = s->buf_size * s->bufs_per_mdl; | 508 | /* |
509 | * Height should be a multiple of 32 lines. | ||
510 | * Set the MDL size to the exact size needed for one frame. | ||
511 | * Use enough buffers per MDL to cover the MDL size | ||
512 | */ | ||
513 | s->mdl_size = 720 * s->cx->params.height * 3 / 2; | ||
514 | s->bufs_per_mdl = s->mdl_size / s->buf_size; | ||
515 | if (s->mdl_size % s->buf_size) | ||
516 | s->bufs_per_mdl++; | ||
517 | break; | ||
518 | default: | ||
519 | s->bufs_per_mdl = 1; | ||
520 | s->mdl_size = s->buf_size * s->bufs_per_mdl; | ||
521 | break; | ||
522 | } | ||
507 | 523 | ||
508 | cx18_load_queues(s); | 524 | cx18_load_queues(s); |
509 | } | 525 | } |