• Home
  • Raw
  • Download

Lines Matching refs:fh

188 static void v4l_fbuffer_free(struct zoran_fh *fh);
189 static void jpg_fbuffer_free(struct zoran_fh *fh);
192 static void map_mode_raw(struct zoran_fh *fh) in map_mode_raw() argument
194 fh->map_mode = ZORAN_MAP_MODE_RAW; in map_mode_raw()
195 fh->buffers.buffer_size = v4l_bufsize; in map_mode_raw()
196 fh->buffers.num_buffers = v4l_nbufs; in map_mode_raw()
198 static void map_mode_jpg(struct zoran_fh *fh, int play) in map_mode_jpg() argument
200 fh->map_mode = play ? ZORAN_MAP_MODE_JPG_PLAY : ZORAN_MAP_MODE_JPG_REC; in map_mode_jpg()
201 fh->buffers.buffer_size = jpg_bufsize; in map_mode_jpg()
202 fh->buffers.num_buffers = jpg_nbufs; in map_mode_jpg()
215 static int v4l_fbuffer_alloc(struct zoran_fh *fh) in v4l_fbuffer_alloc() argument
217 struct zoran *zr = fh->zr; in v4l_fbuffer_alloc()
221 for (i = 0; i < fh->buffers.num_buffers; i++) { in v4l_fbuffer_alloc()
222 if (fh->buffers.buffer[i].v4l.fbuffer) in v4l_fbuffer_alloc()
229 mem = kmalloc(fh->buffers.buffer_size, in v4l_fbuffer_alloc()
236 v4l_fbuffer_free(fh); in v4l_fbuffer_alloc()
239 fh->buffers.buffer[i].v4l.fbuffer = mem; in v4l_fbuffer_alloc()
240 fh->buffers.buffer[i].v4l.fbuffer_phys = virt_to_phys(mem); in v4l_fbuffer_alloc()
241 fh->buffers.buffer[i].v4l.fbuffer_bus = virt_to_bus(mem); in v4l_fbuffer_alloc()
242 for (off = 0; off < fh->buffers.buffer_size; in v4l_fbuffer_alloc()
252 fh->buffers.allocated = 1; in v4l_fbuffer_alloc()
258 static void v4l_fbuffer_free(struct zoran_fh *fh) in v4l_fbuffer_free() argument
260 struct zoran *zr = fh->zr; in v4l_fbuffer_free()
266 for (i = 0; i < fh->buffers.num_buffers; i++) { in v4l_fbuffer_free()
267 if (!fh->buffers.buffer[i].v4l.fbuffer) in v4l_fbuffer_free()
270 mem = fh->buffers.buffer[i].v4l.fbuffer; in v4l_fbuffer_free()
271 for (off = 0; off < fh->buffers.buffer_size; in v4l_fbuffer_free()
274 kfree(fh->buffers.buffer[i].v4l.fbuffer); in v4l_fbuffer_free()
275 fh->buffers.buffer[i].v4l.fbuffer = NULL; in v4l_fbuffer_free()
278 fh->buffers.allocated = 0; in v4l_fbuffer_free()
309 static int jpg_fbuffer_alloc(struct zoran_fh *fh) in jpg_fbuffer_alloc() argument
311 struct zoran *zr = fh->zr; in jpg_fbuffer_alloc()
315 for (i = 0; i < fh->buffers.num_buffers; i++) { in jpg_fbuffer_alloc()
316 if (fh->buffers.buffer[i].jpg.frag_tab) in jpg_fbuffer_alloc()
330 jpg_fbuffer_free(fh); in jpg_fbuffer_alloc()
333 fh->buffers.buffer[i].jpg.frag_tab = (__le32 *)mem; in jpg_fbuffer_alloc()
334 fh->buffers.buffer[i].jpg.frag_tab_bus = virt_to_bus(mem); in jpg_fbuffer_alloc()
336 if (fh->buffers.need_contiguous) { in jpg_fbuffer_alloc()
337 mem = kmalloc(fh->buffers.buffer_size, GFP_KERNEL); in jpg_fbuffer_alloc()
343 jpg_fbuffer_free(fh); in jpg_fbuffer_alloc()
346 fh->buffers.buffer[i].jpg.frag_tab[0] = in jpg_fbuffer_alloc()
348 fh->buffers.buffer[i].jpg.frag_tab[1] = in jpg_fbuffer_alloc()
349 cpu_to_le32((fh->buffers.buffer_size >> 1) | 1); in jpg_fbuffer_alloc()
350 for (off = 0; off < fh->buffers.buffer_size; off += PAGE_SIZE) in jpg_fbuffer_alloc()
354 for (j = 0; j < fh->buffers.buffer_size / PAGE_SIZE; j++) { in jpg_fbuffer_alloc()
361 jpg_fbuffer_free(fh); in jpg_fbuffer_alloc()
365 fh->buffers.buffer[i].jpg.frag_tab[2 * j] = in jpg_fbuffer_alloc()
367 fh->buffers.buffer[i].jpg.frag_tab[2 * j + 1] = in jpg_fbuffer_alloc()
372 fh->buffers.buffer[i].jpg.frag_tab[2 * j - 1] |= cpu_to_le32(1); in jpg_fbuffer_alloc()
379 (fh->buffers.num_buffers * fh->buffers.buffer_size) >> 10); in jpg_fbuffer_alloc()
381 fh->buffers.allocated = 1; in jpg_fbuffer_alloc()
387 static void jpg_fbuffer_free(struct zoran_fh *fh) in jpg_fbuffer_free() argument
389 struct zoran *zr = fh->zr; in jpg_fbuffer_free()
397 for (i = 0, buffer = &fh->buffers.buffer[0]; in jpg_fbuffer_free()
398 i < fh->buffers.num_buffers; i++, buffer++) { in jpg_fbuffer_free()
402 if (fh->buffers.need_contiguous) { in jpg_fbuffer_free()
407 for (off = 0; off < fh->buffers.buffer_size; off += PAGE_SIZE) in jpg_fbuffer_free()
414 for (j = 0; j < fh->buffers.buffer_size / PAGE_SIZE; j++) { in jpg_fbuffer_free()
430 fh->buffers.allocated = 0; in jpg_fbuffer_free()
438 zoran_v4l_set_format (struct zoran_fh *fh, in zoran_v4l_set_format() argument
443 struct zoran *zr = fh->zr; in zoran_v4l_set_format()
460 if (height * width * bpp > fh->buffers.buffer_size) { in zoran_v4l_set_format()
464 ZR_DEVNAME(zr), __func__, fh->buffers.buffer_size >> 10); in zoran_v4l_set_format()
478 fh->v4l_settings.width = width; in zoran_v4l_set_format()
479 fh->v4l_settings.height = height; in zoran_v4l_set_format()
480 fh->v4l_settings.format = format; in zoran_v4l_set_format()
481 fh->v4l_settings.bytesperline = bpp * fh->v4l_settings.width; in zoran_v4l_set_format()
486 static int zoran_v4l_queue_frame(struct zoran_fh *fh, int num) in zoran_v4l_queue_frame() argument
488 struct zoran *zr = fh->zr; in zoran_v4l_queue_frame()
492 if (!fh->buffers.allocated) { in zoran_v4l_queue_frame()
501 if (num >= fh->buffers.num_buffers || num < 0) { in zoran_v4l_queue_frame()
511 if (fh->buffers.active == ZORAN_FREE) { in zoran_v4l_queue_frame()
513 zr->v4l_buffers = fh->buffers; in zoran_v4l_queue_frame()
514 fh->buffers.active = ZORAN_ACTIVE; in zoran_v4l_queue_frame()
530 fh->buffers.active = ZORAN_FREE; in zoran_v4l_queue_frame()
546 fh->v4l_settings.bytesperline * in zoran_v4l_queue_frame()
548 fh->buffers.buffer[num] = zr->v4l_buffers.buffer[num]; in zoran_v4l_queue_frame()
556 zr->v4l_buffers.active = fh->buffers.active; in zoran_v4l_queue_frame()
565 static int v4l_sync(struct zoran_fh *fh, int frame) in v4l_sync() argument
567 struct zoran *zr = fh->zr; in v4l_sync()
570 if (fh->buffers.active == ZORAN_FREE) { in v4l_sync()
579 if (frame >= fh->buffers.num_buffers || frame < 0) { in v4l_sync()
609 fh->buffers.buffer[frame] = zr->v4l_buffers.buffer[frame]; in v4l_sync()
617 fh->buffers.active = zr->v4l_buffers.active = ZORAN_FREE; in v4l_sync()
631 static int zoran_jpg_queue_frame(struct zoran_fh *fh, int num, in zoran_jpg_queue_frame() argument
634 struct zoran *zr = fh->zr; in zoran_jpg_queue_frame()
639 if (!fh->buffers.allocated) { in zoran_jpg_queue_frame()
648 if (num >= fh->buffers.num_buffers || num < 0) { in zoran_jpg_queue_frame()
658 zr->jpg_settings = fh->jpg_settings; in zoran_jpg_queue_frame()
668 if (fh->buffers.active == ZORAN_FREE) { in zoran_jpg_queue_frame()
670 zr->jpg_buffers = fh->buffers; in zoran_jpg_queue_frame()
671 fh->buffers.active = ZORAN_ACTIVE; in zoran_jpg_queue_frame()
700 fh->buffers.buffer[num] = zr->jpg_buffers.buffer[num]; in zoran_jpg_queue_frame()
707 fh->buffers.active = ZORAN_FREE; in zoran_jpg_queue_frame()
718 zr->jpg_buffers.active = fh->buffers.active; in zoran_jpg_queue_frame()
723 static int jpg_qbuf(struct zoran_fh *fh, int frame, enum zoran_codec_mode mode) in jpg_qbuf() argument
725 struct zoran *zr = fh->zr; in jpg_qbuf()
731 if (fh->buffers.active == ZORAN_FREE) { in jpg_qbuf()
738 fh->buffers.active = zr->jpg_buffers.active = ZORAN_FREE; in jpg_qbuf()
751 if ((res = zoran_jpg_queue_frame(fh, frame, mode))) in jpg_qbuf()
765 static int jpg_sync(struct zoran_fh *fh, struct zoran_sync *bs) in jpg_sync() argument
767 struct zoran *zr = fh->zr; in jpg_sync()
771 if (fh->buffers.active == ZORAN_FREE) { in jpg_sync()
823 fh->buffers.buffer[frame] = zr->jpg_buffers.buffer[frame]; in jpg_sync()
830 static void zoran_open_init_session(struct zoran_fh *fh) in zoran_open_init_session() argument
833 struct zoran *zr = fh->zr; in zoran_open_init_session()
836 map_mode_raw(fh); in zoran_open_init_session()
839 fh->overlay_settings = zr->overlay_settings; in zoran_open_init_session()
840 fh->overlay_settings.is_set = 0; in zoran_open_init_session()
841 fh->overlay_settings.format = zr->overlay_settings.format; in zoran_open_init_session()
842 fh->overlay_active = ZORAN_FREE; in zoran_open_init_session()
845 fh->v4l_settings = zr->v4l_settings; in zoran_open_init_session()
847 fh->jpg_settings = zr->jpg_settings; in zoran_open_init_session()
850 memset(&fh->buffers, 0, sizeof(fh->buffers)); in zoran_open_init_session()
852 fh->buffers.buffer[i].state = BUZ_STATE_USER; /* nothing going on */ in zoran_open_init_session()
853 fh->buffers.buffer[i].bs.frame = i; in zoran_open_init_session()
855 fh->buffers.allocated = 0; in zoran_open_init_session()
856 fh->buffers.active = ZORAN_FREE; in zoran_open_init_session()
859 static void zoran_close_end_session(struct zoran_fh *fh) in zoran_close_end_session() argument
861 struct zoran *zr = fh->zr; in zoran_close_end_session()
864 if (fh->overlay_active != ZORAN_FREE) { in zoran_close_end_session()
865 fh->overlay_active = zr->overlay_active = ZORAN_FREE; in zoran_close_end_session()
872 if (fh->map_mode == ZORAN_MAP_MODE_RAW) { in zoran_close_end_session()
874 if (fh->buffers.active != ZORAN_FREE) { in zoran_close_end_session()
880 zr->v4l_buffers.active = fh->buffers.active = ZORAN_FREE; in zoran_close_end_session()
885 if (fh->buffers.allocated) in zoran_close_end_session()
886 v4l_fbuffer_free(fh); in zoran_close_end_session()
889 if (fh->buffers.active != ZORAN_FREE) { in zoran_close_end_session()
892 zr->jpg_buffers.active = fh->buffers.active = ZORAN_FREE; in zoran_close_end_session()
896 if (fh->buffers.allocated) in zoran_close_end_session()
897 jpg_fbuffer_free(fh); in zoran_close_end_session()
908 struct zoran_fh *fh; in zoran_open() local
924 fh = kzalloc(sizeof(struct zoran_fh), GFP_KERNEL); in zoran_open()
925 if (!fh) { in zoran_open()
935 fh->overlay_mask = in zoran_open()
937 if (!fh->overlay_mask) { in zoran_open()
961 file->private_data = fh; in zoran_open()
962 fh->zr = zr; in zoran_open()
963 zoran_open_init_session(fh); in zoran_open()
969 kfree(fh); in zoran_open()
982 struct zoran_fh *fh = file->private_data; in zoran_close() local
983 struct zoran *zr = fh->zr; in zoran_close()
992 zoran_close_end_session(fh); in zoran_close()
1027 kfree(fh->overlay_mask); in zoran_close()
1028 kfree(fh); in zoran_close()
1058 static int setup_fbuffer(struct zoran_fh *fh, in setup_fbuffer() argument
1065 struct zoran *zr = fh->zr; in setup_fbuffer()
1134 static int setup_window(struct zoran_fh *fh, in setup_window() argument
1143 struct zoran *zr = fh->zr; in setup_window()
1156 if (!fh->overlay_settings.format) { in setup_window()
1203 fh->overlay_settings.x = x; in setup_window()
1204 fh->overlay_settings.y = y; in setup_window()
1205 fh->overlay_settings.width = width; in setup_window()
1206 fh->overlay_settings.height = height; in setup_window()
1207 fh->overlay_settings.clipcount = clipcount; in setup_window()
1219 fh->overlay_active != ZORAN_FREE; in setup_window()
1229 fh->overlay_settings.clipcount = 1; in setup_window()
1231 if (copy_from_user(fh->overlay_mask, bitmap, in setup_window()
1250 write_overlay_mask(fh, vcp, clipcount); in setup_window()
1254 fh->overlay_settings.is_set = 1; in setup_window()
1255 if (fh->overlay_active != ZORAN_FREE && in setup_window()
1257 zr->overlay_settings = fh->overlay_settings; in setup_window()
1266 static int setup_overlay(struct zoran_fh *fh, int on) in setup_overlay() argument
1268 struct zoran *zr = fh->zr; in setup_overlay()
1271 if ((on && fh->overlay_active != ZORAN_FREE) || in setup_overlay()
1272 (!on && fh->overlay_active == ZORAN_FREE)) in setup_overlay()
1277 fh->overlay_active == ZORAN_FREE) { in setup_overlay()
1285 fh->overlay_active == ZORAN_FREE) { in setup_overlay()
1294 zr->overlay_active = fh->overlay_active = ZORAN_FREE; in setup_overlay()
1302 if (!zr->vbuf_base || !fh->overlay_settings.is_set) { in setup_overlay()
1309 if (!fh->overlay_settings.format) { in setup_overlay()
1316 zr->overlay_active = fh->overlay_active = ZORAN_LOCKED; in setup_overlay()
1318 zr->overlay_mask = fh->overlay_mask; in setup_overlay()
1319 zr->overlay_settings = fh->overlay_settings; in setup_overlay()
1331 static int zoran_v4l2_buffer_status(struct zoran_fh *fh, in zoran_v4l2_buffer_status() argument
1334 struct zoran *zr = fh->zr; in zoran_v4l2_buffer_status()
1339 switch (fh->map_mode) { in zoran_v4l2_buffer_status()
1342 if (num < 0 || num >= fh->buffers.num_buffers || in zoran_v4l2_buffer_status()
1343 !fh->buffers.allocated) { in zoran_v4l2_buffer_status()
1356 "FAL"[fh->buffers.active], num, in zoran_v4l2_buffer_status()
1358 fh->buffers.buffer[num].map ? 'Y' : 'N'); in zoran_v4l2_buffer_status()
1362 buf->length = fh->buffers.buffer_size; in zoran_v4l2_buffer_status()
1365 buf->bytesused = fh->buffers.buffer[num].bs.length; in zoran_v4l2_buffer_status()
1366 if (fh->buffers.buffer[num].state == BUZ_STATE_DONE || in zoran_v4l2_buffer_status()
1367 fh->buffers.buffer[num].state == BUZ_STATE_USER) { in zoran_v4l2_buffer_status()
1368 buf->sequence = fh->buffers.buffer[num].bs.seq; in zoran_v4l2_buffer_status()
1370 buf->timestamp = fh->buffers.buffer[num].bs.timestamp; in zoran_v4l2_buffer_status()
1375 if (fh->v4l_settings.height <= BUZ_MAX_HEIGHT / 2) in zoran_v4l2_buffer_status()
1386 if (num < 0 || num >= fh->buffers.num_buffers || in zoran_v4l2_buffer_status()
1387 !fh->buffers.allocated) { in zoran_v4l2_buffer_status()
1395 buf->type = (fh->map_mode == ZORAN_MAP_MODE_JPG_REC) ? in zoran_v4l2_buffer_status()
1398 buf->length = fh->buffers.buffer_size; in zoran_v4l2_buffer_status()
1401 if (fh->buffers.buffer[num].state == BUZ_STATE_DONE || in zoran_v4l2_buffer_status()
1402 fh->buffers.buffer[num].state == BUZ_STATE_USER) { in zoran_v4l2_buffer_status()
1403 buf->sequence = fh->buffers.buffer[num].bs.seq; in zoran_v4l2_buffer_status()
1404 buf->timestamp = fh->buffers.buffer[num].bs.timestamp; in zoran_v4l2_buffer_status()
1405 buf->bytesused = fh->buffers.buffer[num].bs.length; in zoran_v4l2_buffer_status()
1412 if (fh->jpg_settings.TmpDcm != 1) in zoran_v4l2_buffer_status()
1413 buf->field = fh->jpg_settings.odd_even ? in zoran_v4l2_buffer_status()
1416 buf->field = fh->jpg_settings.odd_even ? in zoran_v4l2_buffer_status()
1426 ZR_DEVNAME(zr), __func__, buf->type, fh->map_mode); in zoran_v4l2_buffer_status()
1523 struct zoran_fh *fh = __fh; in zoran_querycap() local
1524 struct zoran *zr = fh->zr; in zoran_querycap()
1557 struct zoran_fh *fh = __fh; in zoran_enum_fmt_vid_cap() local
1558 struct zoran *zr = fh->zr; in zoran_enum_fmt_vid_cap()
1566 struct zoran_fh *fh = __fh; in zoran_enum_fmt_vid_out() local
1567 struct zoran *zr = fh->zr; in zoran_enum_fmt_vid_out()
1575 struct zoran_fh *fh = __fh; in zoran_enum_fmt_vid_overlay() local
1576 struct zoran *zr = fh->zr; in zoran_enum_fmt_vid_overlay()
1584 struct zoran_fh *fh = __fh; in zoran_g_fmt_vid_out() local
1585 struct zoran *zr = fh->zr; in zoran_g_fmt_vid_out()
1589 fmt->fmt.pix.width = fh->jpg_settings.img_width / fh->jpg_settings.HorDcm; in zoran_g_fmt_vid_out()
1590 fmt->fmt.pix.height = fh->jpg_settings.img_height * 2 / in zoran_g_fmt_vid_out()
1591 (fh->jpg_settings.VerDcm * fh->jpg_settings.TmpDcm); in zoran_g_fmt_vid_out()
1592 fmt->fmt.pix.sizeimage = zoran_v4l2_calc_bufsize(&fh->jpg_settings); in zoran_g_fmt_vid_out()
1594 if (fh->jpg_settings.TmpDcm == 1) in zoran_g_fmt_vid_out()
1595 fmt->fmt.pix.field = (fh->jpg_settings.odd_even ? in zoran_g_fmt_vid_out()
1598 fmt->fmt.pix.field = (fh->jpg_settings.odd_even ? in zoran_g_fmt_vid_out()
1610 struct zoran_fh *fh = __fh; in zoran_g_fmt_vid_cap() local
1611 struct zoran *zr = fh->zr; in zoran_g_fmt_vid_cap()
1613 if (fh->map_mode != ZORAN_MAP_MODE_RAW) in zoran_g_fmt_vid_cap()
1614 return zoran_g_fmt_vid_out(file, fh, fmt); in zoran_g_fmt_vid_cap()
1617 fmt->fmt.pix.width = fh->v4l_settings.width; in zoran_g_fmt_vid_cap()
1618 fmt->fmt.pix.height = fh->v4l_settings.height; in zoran_g_fmt_vid_cap()
1619 fmt->fmt.pix.sizeimage = fh->v4l_settings.bytesperline * in zoran_g_fmt_vid_cap()
1620 fh->v4l_settings.height; in zoran_g_fmt_vid_cap()
1621 fmt->fmt.pix.pixelformat = fh->v4l_settings.format->fourcc; in zoran_g_fmt_vid_cap()
1622 fmt->fmt.pix.colorspace = fh->v4l_settings.format->colorspace; in zoran_g_fmt_vid_cap()
1623 fmt->fmt.pix.bytesperline = fh->v4l_settings.bytesperline; in zoran_g_fmt_vid_cap()
1624 if (BUZ_MAX_HEIGHT < (fh->v4l_settings.height * 2)) in zoran_g_fmt_vid_cap()
1635 struct zoran_fh *fh = __fh; in zoran_g_fmt_vid_overlay() local
1636 struct zoran *zr = fh->zr; in zoran_g_fmt_vid_overlay()
1640 fmt->fmt.win.w.left = fh->overlay_settings.x; in zoran_g_fmt_vid_overlay()
1641 fmt->fmt.win.w.top = fh->overlay_settings.y; in zoran_g_fmt_vid_overlay()
1642 fmt->fmt.win.w.width = fh->overlay_settings.width; in zoran_g_fmt_vid_overlay()
1643 fmt->fmt.win.w.height = fh->overlay_settings.height; in zoran_g_fmt_vid_overlay()
1644 if (fh->overlay_settings.width * 2 > BUZ_MAX_HEIGHT) in zoran_g_fmt_vid_overlay()
1656 struct zoran_fh *fh = __fh; in zoran_try_fmt_vid_overlay() local
1657 struct zoran *zr = fh->zr; in zoran_try_fmt_vid_overlay()
1677 struct zoran_fh *fh = __fh; in zoran_try_fmt_vid_out() local
1678 struct zoran *zr = fh->zr; in zoran_try_fmt_vid_out()
1686 settings = fh->jpg_settings; in zoran_try_fmt_vid_out()
1694 if (fmt->fmt.pix.height <= fh->jpg_settings.img_height / 2) in zoran_try_fmt_vid_out()
1698 if (fmt->fmt.pix.width <= fh->jpg_settings.img_width / 4) in zoran_try_fmt_vid_out()
1700 else if (fmt->fmt.pix.width <= fh->jpg_settings.img_width / 2) in zoran_try_fmt_vid_out()
1727 fmt->fmt.pix.field = (fh->jpg_settings.odd_even ? in zoran_try_fmt_vid_out()
1730 fmt->fmt.pix.field = (fh->jpg_settings.odd_even ? in zoran_try_fmt_vid_out()
1744 struct zoran_fh *fh = __fh; in zoran_try_fmt_vid_cap() local
1745 struct zoran *zr = fh->zr; in zoran_try_fmt_vid_cap()
1750 return zoran_try_fmt_vid_out(file, fh, fmt); in zoran_try_fmt_vid_cap()
1775 struct zoran_fh *fh = __fh; in zoran_s_fmt_vid_overlay() local
1776 struct zoran *zr = fh->zr; in zoran_s_fmt_vid_overlay()
1786 res = setup_window(fh, fmt->fmt.win.w.left, fmt->fmt.win.w.top, in zoran_s_fmt_vid_overlay()
1797 struct zoran_fh *fh = __fh; in zoran_s_fmt_vid_out() local
1798 struct zoran *zr = fh->zr; in zoran_s_fmt_vid_out()
1812 if (fh->buffers.allocated) { in zoran_s_fmt_vid_out()
1819 settings = fh->jpg_settings; in zoran_s_fmt_vid_out()
1827 if (fmt->fmt.pix.height <= fh->jpg_settings.img_height / 2) in zoran_s_fmt_vid_out()
1831 if (fmt->fmt.pix.width <= fh->jpg_settings.img_width / 4) in zoran_s_fmt_vid_out()
1833 else if (fmt->fmt.pix.width <= fh->jpg_settings.img_width / 2) in zoran_s_fmt_vid_out()
1856 fh->jpg_settings = settings; in zoran_s_fmt_vid_out()
1858 map_mode_jpg(fh, fmt->type == V4L2_BUF_TYPE_VIDEO_OUTPUT); in zoran_s_fmt_vid_out()
1859 fh->buffers.buffer_size = zoran_v4l2_calc_bufsize(&fh->jpg_settings); in zoran_s_fmt_vid_out()
1866 fmt->fmt.pix.field = (fh->jpg_settings.odd_even ? in zoran_s_fmt_vid_out()
1869 fmt->fmt.pix.field = (fh->jpg_settings.odd_even ? in zoran_s_fmt_vid_out()
1872 fmt->fmt.pix.sizeimage = fh->buffers.buffer_size; in zoran_s_fmt_vid_out()
1883 struct zoran_fh *fh = __fh; in zoran_s_fmt_vid_cap() local
1884 struct zoran *zr = fh->zr; in zoran_s_fmt_vid_cap()
1889 return zoran_s_fmt_vid_out(file, fh, fmt); in zoran_s_fmt_vid_cap()
1902 if ((fh->map_mode != ZORAN_MAP_MODE_RAW && fh->buffers.allocated) || in zoran_s_fmt_vid_cap()
1903 fh->buffers.active != ZORAN_FREE) { in zoran_s_fmt_vid_cap()
1914 map_mode_raw(fh); in zoran_s_fmt_vid_cap()
1916 res = zoran_v4l_set_format(fh, fmt->fmt.pix.width, fmt->fmt.pix.height, in zoran_s_fmt_vid_cap()
1922 fmt->fmt.pix.bytesperline = fh->v4l_settings.bytesperline; in zoran_s_fmt_vid_cap()
1923 fmt->fmt.pix.sizeimage = fh->v4l_settings.height * fh->v4l_settings.bytesperline; in zoran_s_fmt_vid_cap()
1924 fmt->fmt.pix.colorspace = fh->v4l_settings.format->colorspace; in zoran_s_fmt_vid_cap()
1925 if (BUZ_MAX_HEIGHT < (fh->v4l_settings.height * 2)) in zoran_s_fmt_vid_cap()
1938 struct zoran_fh *fh = __fh; in zoran_g_fbuf() local
1939 struct zoran *zr = fh->zr; in zoran_g_fbuf()
1947 fb->fmt.pixelformat = fh->overlay_settings.format->fourcc; in zoran_g_fbuf()
1960 struct zoran_fh *fh = __fh; in zoran_s_fbuf() local
1961 struct zoran *zr = fh->zr; in zoran_s_fbuf()
1976 res = setup_fbuffer(fh, fb->base, &zoran_formats[i], fb->fmt.width, in zoran_s_fbuf()
1985 struct zoran_fh *fh = __fh; in zoran_overlay() local
1986 struct zoran *zr = fh->zr; in zoran_overlay()
1990 res = setup_overlay(fh, on); in zoran_overlay()
2000 struct zoran_fh *fh = __fh; in zoran_reqbufs() local
2001 struct zoran *zr = fh->zr; in zoran_reqbufs()
2013 return zoran_streamoff(file, fh, req->type); in zoran_reqbufs()
2016 if (fh->buffers.allocated) { in zoran_reqbufs()
2025 if (fh->map_mode == ZORAN_MAP_MODE_RAW && in zoran_reqbufs()
2034 map_mode_raw(fh); in zoran_reqbufs()
2035 fh->buffers.num_buffers = req->count; in zoran_reqbufs()
2037 if (v4l_fbuffer_alloc(fh)) { in zoran_reqbufs()
2041 } else if (fh->map_mode == ZORAN_MAP_MODE_JPG_REC || in zoran_reqbufs()
2042 fh->map_mode == ZORAN_MAP_MODE_JPG_PLAY) { in zoran_reqbufs()
2050 map_mode_jpg(fh, req->type == V4L2_BUF_TYPE_VIDEO_OUTPUT); in zoran_reqbufs()
2051 fh->buffers.num_buffers = req->count; in zoran_reqbufs()
2052 fh->buffers.buffer_size = zoran_v4l2_calc_bufsize(&fh->jpg_settings); in zoran_reqbufs()
2054 if (jpg_fbuffer_alloc(fh)) { in zoran_reqbufs()
2074 struct zoran_fh *fh = __fh; in zoran_querybuf() local
2075 struct zoran *zr = fh->zr; in zoran_querybuf()
2079 res = zoran_v4l2_buffer_status(fh, buf, buf->index); in zoran_querybuf()
2087 struct zoran_fh *fh = __fh; in zoran_qbuf() local
2088 struct zoran *zr = fh->zr; in zoran_qbuf()
2093 switch (fh->map_mode) { in zoran_qbuf()
2098 ZR_DEVNAME(zr), buf->type, fh->map_mode); in zoran_qbuf()
2103 res = zoran_v4l_queue_frame(fh, buf->index); in zoran_qbuf()
2106 if (!zr->v4l_memgrab_active && fh->buffers.active == ZORAN_LOCKED) in zoran_qbuf()
2112 if (fh->map_mode == ZORAN_MAP_MODE_JPG_PLAY) { in zoran_qbuf()
2123 ZR_DEVNAME(zr), buf->type, fh->map_mode); in zoran_qbuf()
2128 res = zoran_jpg_queue_frame(fh, buf->index, codec_mode); in zoran_qbuf()
2132 fh->buffers.active == ZORAN_LOCKED) in zoran_qbuf()
2152 struct zoran_fh *fh = __fh; in zoran_dqbuf() local
2153 struct zoran *zr = fh->zr; in zoran_dqbuf()
2158 switch (fh->map_mode) { in zoran_dqbuf()
2163 ZR_DEVNAME(zr), buf->type, fh->map_mode); in zoran_dqbuf()
2174 res = v4l_sync(fh, num); in zoran_dqbuf()
2178 res = zoran_v4l2_buffer_status(fh, buf, num); in zoran_dqbuf()
2186 if (fh->map_mode == ZORAN_MAP_MODE_JPG_PLAY) in zoran_dqbuf()
2194 ZR_DEVNAME(zr), buf->type, fh->map_mode); in zoran_dqbuf()
2207 res = jpg_sync(fh, &bs); in zoran_dqbuf()
2210 res = zoran_v4l2_buffer_status(fh, buf, bs.frame); in zoran_dqbuf()
2229 struct zoran_fh *fh = __fh; in zoran_streamon() local
2230 struct zoran *zr = fh->zr; in zoran_streamon()
2235 switch (fh->map_mode) { in zoran_streamon()
2238 fh->buffers.active != ZORAN_ACTIVE) { in zoran_streamon()
2243 zr->v4l_buffers.active = fh->buffers.active = ZORAN_LOCKED; in zoran_streamon()
2244 zr->v4l_settings = fh->v4l_settings; in zoran_streamon()
2257 fh->buffers.active != ZORAN_ACTIVE) { in zoran_streamon()
2262 zr->jpg_buffers.active = fh->buffers.active = ZORAN_LOCKED; in zoran_streamon()
2274 ZR_DEVNAME(zr), fh->map_mode); in zoran_streamon()
2286 struct zoran_fh *fh = __fh; in zoran_streamoff() local
2287 struct zoran *zr = fh->zr; in zoran_streamoff()
2293 switch (fh->map_mode) { in zoran_streamoff()
2295 if (fh->buffers.active == ZORAN_FREE && in zoran_streamoff()
2310 for (i = 0; i < fh->buffers.num_buffers; i++) in zoran_streamoff()
2312 fh->buffers = zr->v4l_buffers; in zoran_streamoff()
2314 zr->v4l_buffers.active = fh->buffers.active = ZORAN_FREE; in zoran_streamoff()
2326 if (fh->buffers.active == ZORAN_FREE && in zoran_streamoff()
2334 res = jpg_qbuf(fh, -1, in zoran_streamoff()
2335 (fh->map_mode == ZORAN_MAP_MODE_JPG_REC) ? in zoran_streamoff()
2344 ZR_DEVNAME(zr), fh->map_mode); in zoran_streamoff()
2357 struct zoran_fh *fh = __fh; in zoran_queryctrl() local
2358 struct zoran *zr = fh->zr; in zoran_queryctrl()
2372 struct zoran_fh *fh = __fh; in zoran_g_ctrl() local
2373 struct zoran *zr = fh->zr; in zoran_g_ctrl()
2389 struct zoran_fh *fh = __fh; in zoran_s_ctrl() local
2390 struct zoran *zr = fh->zr; in zoran_s_ctrl()
2406 struct zoran_fh *fh = __fh; in zoran_g_std() local
2407 struct zoran *zr = fh->zr; in zoran_g_std()
2417 struct zoran_fh *fh = __fh; in zoran_s_std() local
2418 struct zoran *zr = fh->zr; in zoran_s_std()
2435 struct zoran_fh *fh = __fh; in zoran_enum_input() local
2436 struct zoran *zr = fh->zr; in zoran_enum_input()
2455 struct zoran_fh *fh = __fh; in zoran_g_input() local
2456 struct zoran *zr = fh->zr; in zoran_g_input()
2467 struct zoran_fh *fh = __fh; in zoran_s_input() local
2468 struct zoran *zr = fh->zr; in zoran_s_input()
2515 struct zoran_fh *fh = __fh; in zoran_cropcap() local
2516 struct zoran *zr = fh->zr; in zoran_cropcap()
2526 fh->map_mode == ZORAN_MAP_MODE_RAW)) { in zoran_cropcap()
2547 struct zoran_fh *fh = __fh; in zoran_g_crop() local
2548 struct zoran *zr = fh->zr; in zoran_g_crop()
2558 fh->map_mode == ZORAN_MAP_MODE_RAW)) { in zoran_g_crop()
2567 crop->c.top = fh->jpg_settings.img_y; in zoran_g_crop()
2568 crop->c.left = fh->jpg_settings.img_x; in zoran_g_crop()
2569 crop->c.width = fh->jpg_settings.img_width; in zoran_g_crop()
2570 crop->c.height = fh->jpg_settings.img_height; in zoran_g_crop()
2580 struct zoran_fh *fh = __fh; in zoran_s_crop() local
2581 struct zoran *zr = fh->zr; in zoran_s_crop()
2585 settings = fh->jpg_settings; in zoran_s_crop()
2589 if (fh->buffers.allocated) { in zoran_s_crop()
2599 fh->map_mode == ZORAN_MAP_MODE_RAW)) { in zoran_s_crop()
2619 fh->jpg_settings = settings; in zoran_s_crop()
2629 struct zoran_fh *fh = __fh; in zoran_g_jpegcomp() local
2630 struct zoran *zr = fh->zr; in zoran_g_jpegcomp()
2635 params->quality = fh->jpg_settings.jpg_comp.quality; in zoran_g_jpegcomp()
2636 params->APPn = fh->jpg_settings.jpg_comp.APPn; in zoran_g_jpegcomp()
2638 fh->jpg_settings.jpg_comp.APP_data, in zoran_g_jpegcomp()
2639 fh->jpg_settings.jpg_comp.APP_len); in zoran_g_jpegcomp()
2640 params->APP_len = fh->jpg_settings.jpg_comp.APP_len; in zoran_g_jpegcomp()
2642 fh->jpg_settings.jpg_comp.COM_data, in zoran_g_jpegcomp()
2643 fh->jpg_settings.jpg_comp.COM_len); in zoran_g_jpegcomp()
2644 params->COM_len = fh->jpg_settings.jpg_comp.COM_len; in zoran_g_jpegcomp()
2646 fh->jpg_settings.jpg_comp.jpeg_markers; in zoran_g_jpegcomp()
2656 struct zoran_fh *fh = __fh; in zoran_s_jpegcomp() local
2657 struct zoran *zr = fh->zr; in zoran_s_jpegcomp()
2661 settings = fh->jpg_settings; in zoran_s_jpegcomp()
2667 if (fh->buffers.active != ZORAN_FREE) { in zoran_s_jpegcomp()
2678 if (!fh->buffers.allocated) in zoran_s_jpegcomp()
2679 fh->buffers.buffer_size = in zoran_s_jpegcomp()
2680 zoran_v4l2_calc_bufsize(&fh->jpg_settings); in zoran_s_jpegcomp()
2681 fh->jpg_settings.jpg_comp = settings.jpg_comp; in zoran_s_jpegcomp()
2692 struct zoran_fh *fh = file->private_data; in zoran_poll() local
2693 struct zoran *zr = fh->zr; in zoran_poll()
2707 switch (fh->map_mode) { in zoran_poll()
2717 "FAL"[fh->buffers.active], zr->v4l_sync_tail, in zoran_poll()
2721 if (fh->buffers.active != ZORAN_FREE && in zoran_poll()
2739 "FAL"[fh->buffers.active], zr->jpg_que_tail, in zoran_poll()
2742 if (fh->buffers.active != ZORAN_FREE && in zoran_poll()
2744 if (fh->map_mode == ZORAN_MAP_MODE_JPG_REC) in zoran_poll()
2757 ZR_DEVNAME(zr), __func__, fh->map_mode); in zoran_poll()
2790 struct zoran_fh *fh = map->fh; in zoran_vm_close() local
2791 struct zoran *zr = fh->zr; in zoran_vm_close()
2798 __func__, mode_name(fh->map_mode)); in zoran_vm_close()
2800 for (i = 0; i < fh->buffers.num_buffers; i++) { in zoran_vm_close()
2801 if (fh->buffers.buffer[i].map == map) in zoran_vm_close()
2802 fh->buffers.buffer[i].map = NULL; in zoran_vm_close()
2807 for (i = 0; i < fh->buffers.num_buffers; i++) { in zoran_vm_close()
2808 if (fh->buffers.buffer[i].map) { in zoran_vm_close()
2815 __func__, mode_name(fh->map_mode)); in zoran_vm_close()
2818 if (fh->map_mode == ZORAN_MAP_MODE_RAW) { in zoran_vm_close()
2819 if (fh->buffers.active != ZORAN_FREE) { in zoran_vm_close()
2825 zr->v4l_buffers.active = fh->buffers.active = ZORAN_FREE; in zoran_vm_close()
2828 v4l_fbuffer_free(fh); in zoran_vm_close()
2830 if (fh->buffers.active != ZORAN_FREE) { in zoran_vm_close()
2831 jpg_qbuf(fh, -1, zr->codec_mode); in zoran_vm_close()
2833 zr->jpg_buffers.active = fh->buffers.active = ZORAN_FREE; in zoran_vm_close()
2835 jpg_fbuffer_free(fh); in zoran_vm_close()
2850 struct zoran_fh *fh = file->private_data; in zoran_mmap() local
2851 struct zoran *zr = fh->zr; in zoran_mmap()
2863 mode_name(fh->map_mode), vma->vm_start, vma->vm_end, size); in zoran_mmap()
2876 if (!fh->buffers.allocated) { in zoran_mmap()
2880 ZR_DEVNAME(zr), __func__, mode_name(fh->map_mode)); in zoran_mmap()
2885 first = offset / fh->buffers.buffer_size; in zoran_mmap()
2886 last = first - 1 + size / fh->buffers.buffer_size; in zoran_mmap()
2887 if (offset % fh->buffers.buffer_size != 0 || in zoran_mmap()
2888 size % fh->buffers.buffer_size != 0 || first < 0 || in zoran_mmap()
2889 last < 0 || first >= fh->buffers.num_buffers || in zoran_mmap()
2890 last >= fh->buffers.buffer_size) { in zoran_mmap()
2894 ZR_DEVNAME(zr), __func__, mode_name(fh->map_mode), offset, size, in zoran_mmap()
2895 fh->buffers.buffer_size, in zoran_mmap()
2896 fh->buffers.num_buffers); in zoran_mmap()
2903 if (fh->buffers.buffer[i].map) { in zoran_mmap()
2907 ZR_DEVNAME(zr), __func__, mode_name(fh->map_mode), i); in zoran_mmap()
2919 map->fh = fh; in zoran_mmap()
2926 if (fh->map_mode == ZORAN_MAP_MODE_RAW) { in zoran_mmap()
2929 if (todo > fh->buffers.buffer_size) in zoran_mmap()
2930 todo = fh->buffers.buffer_size; in zoran_mmap()
2931 page = fh->buffers.buffer[i].v4l.fbuffer_phys; in zoran_mmap()
2943 fh->buffers.buffer[i].map = map; in zoran_mmap()
2950 j < fh->buffers.buffer_size / PAGE_SIZE; in zoran_mmap()
2953 (le32_to_cpu(fh->buffers.buffer[i].jpg. in zoran_mmap()
2959 le32_to_cpu(fh->buffers. in zoran_mmap()
2977 if (le32_to_cpu(fh->buffers.buffer[i].jpg. in zoran_mmap()
2981 fh->buffers.buffer[i].map = map; in zoran_mmap()
3039 struct zoran_fh *fh = file->private_data; in zoran_ioctl() local
3040 struct zoran *zr = fh->zr; in zoran_ioctl()