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()
1558 struct zoran_fh *fh = __fh; in zoran_enum_fmt_vid_cap() local
1559 struct zoran *zr = fh->zr; in zoran_enum_fmt_vid_cap()
1567 struct zoran_fh *fh = __fh; in zoran_enum_fmt_vid_out() local
1568 struct zoran *zr = fh->zr; in zoran_enum_fmt_vid_out()
1576 struct zoran_fh *fh = __fh; in zoran_enum_fmt_vid_overlay() local
1577 struct zoran *zr = fh->zr; in zoran_enum_fmt_vid_overlay()
1585 struct zoran_fh *fh = __fh; in zoran_g_fmt_vid_out() local
1586 struct zoran *zr = fh->zr; in zoran_g_fmt_vid_out()
1590 fmt->fmt.pix.width = fh->jpg_settings.img_width / fh->jpg_settings.HorDcm; in zoran_g_fmt_vid_out()
1591 fmt->fmt.pix.height = fh->jpg_settings.img_height * 2 / in zoran_g_fmt_vid_out()
1592 (fh->jpg_settings.VerDcm * fh->jpg_settings.TmpDcm); in zoran_g_fmt_vid_out()
1593 fmt->fmt.pix.sizeimage = zoran_v4l2_calc_bufsize(&fh->jpg_settings); in zoran_g_fmt_vid_out()
1595 if (fh->jpg_settings.TmpDcm == 1) in zoran_g_fmt_vid_out()
1596 fmt->fmt.pix.field = (fh->jpg_settings.odd_even ? in zoran_g_fmt_vid_out()
1599 fmt->fmt.pix.field = (fh->jpg_settings.odd_even ? in zoran_g_fmt_vid_out()
1611 struct zoran_fh *fh = __fh; in zoran_g_fmt_vid_cap() local
1612 struct zoran *zr = fh->zr; in zoran_g_fmt_vid_cap()
1614 if (fh->map_mode != ZORAN_MAP_MODE_RAW) in zoran_g_fmt_vid_cap()
1615 return zoran_g_fmt_vid_out(file, fh, fmt); in zoran_g_fmt_vid_cap()
1618 fmt->fmt.pix.width = fh->v4l_settings.width; in zoran_g_fmt_vid_cap()
1619 fmt->fmt.pix.height = fh->v4l_settings.height; in zoran_g_fmt_vid_cap()
1620 fmt->fmt.pix.sizeimage = fh->v4l_settings.bytesperline * in zoran_g_fmt_vid_cap()
1621 fh->v4l_settings.height; in zoran_g_fmt_vid_cap()
1622 fmt->fmt.pix.pixelformat = fh->v4l_settings.format->fourcc; in zoran_g_fmt_vid_cap()
1623 fmt->fmt.pix.colorspace = fh->v4l_settings.format->colorspace; in zoran_g_fmt_vid_cap()
1624 fmt->fmt.pix.bytesperline = fh->v4l_settings.bytesperline; in zoran_g_fmt_vid_cap()
1625 if (BUZ_MAX_HEIGHT < (fh->v4l_settings.height * 2)) in zoran_g_fmt_vid_cap()
1636 struct zoran_fh *fh = __fh; in zoran_g_fmt_vid_overlay() local
1637 struct zoran *zr = fh->zr; in zoran_g_fmt_vid_overlay()
1641 fmt->fmt.win.w.left = fh->overlay_settings.x; in zoran_g_fmt_vid_overlay()
1642 fmt->fmt.win.w.top = fh->overlay_settings.y; in zoran_g_fmt_vid_overlay()
1643 fmt->fmt.win.w.width = fh->overlay_settings.width; in zoran_g_fmt_vid_overlay()
1644 fmt->fmt.win.w.height = fh->overlay_settings.height; in zoran_g_fmt_vid_overlay()
1645 if (fh->overlay_settings.width * 2 > BUZ_MAX_HEIGHT) in zoran_g_fmt_vid_overlay()
1657 struct zoran_fh *fh = __fh; in zoran_try_fmt_vid_overlay() local
1658 struct zoran *zr = fh->zr; in zoran_try_fmt_vid_overlay()
1678 struct zoran_fh *fh = __fh; in zoran_try_fmt_vid_out() local
1679 struct zoran *zr = fh->zr; in zoran_try_fmt_vid_out()
1687 settings = fh->jpg_settings; in zoran_try_fmt_vid_out()
1695 if (fmt->fmt.pix.height <= fh->jpg_settings.img_height / 2) in zoran_try_fmt_vid_out()
1699 if (fmt->fmt.pix.width <= fh->jpg_settings.img_width / 4) in zoran_try_fmt_vid_out()
1701 else if (fmt->fmt.pix.width <= fh->jpg_settings.img_width / 2) in zoran_try_fmt_vid_out()
1728 fmt->fmt.pix.field = (fh->jpg_settings.odd_even ? in zoran_try_fmt_vid_out()
1731 fmt->fmt.pix.field = (fh->jpg_settings.odd_even ? in zoran_try_fmt_vid_out()
1745 struct zoran_fh *fh = __fh; in zoran_try_fmt_vid_cap() local
1746 struct zoran *zr = fh->zr; in zoran_try_fmt_vid_cap()
1751 return zoran_try_fmt_vid_out(file, fh, fmt); in zoran_try_fmt_vid_cap()
1776 struct zoran_fh *fh = __fh; in zoran_s_fmt_vid_overlay() local
1777 struct zoran *zr = fh->zr; in zoran_s_fmt_vid_overlay()
1787 res = setup_window(fh, fmt->fmt.win.w.left, fmt->fmt.win.w.top, in zoran_s_fmt_vid_overlay()
1798 struct zoran_fh *fh = __fh; in zoran_s_fmt_vid_out() local
1799 struct zoran *zr = fh->zr; in zoran_s_fmt_vid_out()
1813 if (fh->buffers.allocated) { in zoran_s_fmt_vid_out()
1820 settings = fh->jpg_settings; in zoran_s_fmt_vid_out()
1828 if (fmt->fmt.pix.height <= fh->jpg_settings.img_height / 2) in zoran_s_fmt_vid_out()
1832 if (fmt->fmt.pix.width <= fh->jpg_settings.img_width / 4) in zoran_s_fmt_vid_out()
1834 else if (fmt->fmt.pix.width <= fh->jpg_settings.img_width / 2) in zoran_s_fmt_vid_out()
1857 fh->jpg_settings = settings; in zoran_s_fmt_vid_out()
1859 map_mode_jpg(fh, fmt->type == V4L2_BUF_TYPE_VIDEO_OUTPUT); in zoran_s_fmt_vid_out()
1860 fh->buffers.buffer_size = zoran_v4l2_calc_bufsize(&fh->jpg_settings); in zoran_s_fmt_vid_out()
1867 fmt->fmt.pix.field = (fh->jpg_settings.odd_even ? in zoran_s_fmt_vid_out()
1870 fmt->fmt.pix.field = (fh->jpg_settings.odd_even ? in zoran_s_fmt_vid_out()
1873 fmt->fmt.pix.sizeimage = fh->buffers.buffer_size; in zoran_s_fmt_vid_out()
1884 struct zoran_fh *fh = __fh; in zoran_s_fmt_vid_cap() local
1885 struct zoran *zr = fh->zr; in zoran_s_fmt_vid_cap()
1890 return zoran_s_fmt_vid_out(file, fh, fmt); in zoran_s_fmt_vid_cap()
1903 if ((fh->map_mode != ZORAN_MAP_MODE_RAW && fh->buffers.allocated) || in zoran_s_fmt_vid_cap()
1904 fh->buffers.active != ZORAN_FREE) { in zoran_s_fmt_vid_cap()
1915 map_mode_raw(fh); in zoran_s_fmt_vid_cap()
1917 res = zoran_v4l_set_format(fh, fmt->fmt.pix.width, fmt->fmt.pix.height, in zoran_s_fmt_vid_cap()
1923 fmt->fmt.pix.bytesperline = fh->v4l_settings.bytesperline; in zoran_s_fmt_vid_cap()
1924 fmt->fmt.pix.sizeimage = fh->v4l_settings.height * fh->v4l_settings.bytesperline; in zoran_s_fmt_vid_cap()
1925 fmt->fmt.pix.colorspace = fh->v4l_settings.format->colorspace; in zoran_s_fmt_vid_cap()
1926 if (BUZ_MAX_HEIGHT < (fh->v4l_settings.height * 2)) in zoran_s_fmt_vid_cap()
1939 struct zoran_fh *fh = __fh; in zoran_g_fbuf() local
1940 struct zoran *zr = fh->zr; in zoran_g_fbuf()
1948 fb->fmt.pixelformat = fh->overlay_settings.format->fourcc; in zoran_g_fbuf()
1961 struct zoran_fh *fh = __fh; in zoran_s_fbuf() local
1962 struct zoran *zr = fh->zr; in zoran_s_fbuf()
1977 res = setup_fbuffer(fh, fb->base, &zoran_formats[i], fb->fmt.width, in zoran_s_fbuf()
1986 struct zoran_fh *fh = __fh; in zoran_overlay() local
1987 struct zoran *zr = fh->zr; in zoran_overlay()
1991 res = setup_overlay(fh, on); in zoran_overlay()
2001 struct zoran_fh *fh = __fh; in zoran_reqbufs() local
2002 struct zoran *zr = fh->zr; in zoran_reqbufs()
2014 return zoran_streamoff(file, fh, req->type); in zoran_reqbufs()
2017 if (fh->buffers.allocated) { in zoran_reqbufs()
2026 if (fh->map_mode == ZORAN_MAP_MODE_RAW && in zoran_reqbufs()
2035 map_mode_raw(fh); in zoran_reqbufs()
2036 fh->buffers.num_buffers = req->count; in zoran_reqbufs()
2038 if (v4l_fbuffer_alloc(fh)) { in zoran_reqbufs()
2042 } else if (fh->map_mode == ZORAN_MAP_MODE_JPG_REC || in zoran_reqbufs()
2043 fh->map_mode == ZORAN_MAP_MODE_JPG_PLAY) { in zoran_reqbufs()
2051 map_mode_jpg(fh, req->type == V4L2_BUF_TYPE_VIDEO_OUTPUT); in zoran_reqbufs()
2052 fh->buffers.num_buffers = req->count; in zoran_reqbufs()
2053 fh->buffers.buffer_size = zoran_v4l2_calc_bufsize(&fh->jpg_settings); in zoran_reqbufs()
2055 if (jpg_fbuffer_alloc(fh)) { in zoran_reqbufs()
2075 struct zoran_fh *fh = __fh; in zoran_querybuf() local
2076 struct zoran *zr = fh->zr; in zoran_querybuf()
2080 res = zoran_v4l2_buffer_status(fh, buf, buf->index); in zoran_querybuf()
2088 struct zoran_fh *fh = __fh; in zoran_qbuf() local
2089 struct zoran *zr = fh->zr; in zoran_qbuf()
2094 switch (fh->map_mode) { in zoran_qbuf()
2099 ZR_DEVNAME(zr), buf->type, fh->map_mode); in zoran_qbuf()
2104 res = zoran_v4l_queue_frame(fh, buf->index); in zoran_qbuf()
2107 if (!zr->v4l_memgrab_active && fh->buffers.active == ZORAN_LOCKED) in zoran_qbuf()
2113 if (fh->map_mode == ZORAN_MAP_MODE_JPG_PLAY) { in zoran_qbuf()
2124 ZR_DEVNAME(zr), buf->type, fh->map_mode); in zoran_qbuf()
2129 res = zoran_jpg_queue_frame(fh, buf->index, codec_mode); in zoran_qbuf()
2133 fh->buffers.active == ZORAN_LOCKED) in zoran_qbuf()
2153 struct zoran_fh *fh = __fh; in zoran_dqbuf() local
2154 struct zoran *zr = fh->zr; in zoran_dqbuf()
2159 switch (fh->map_mode) { in zoran_dqbuf()
2164 ZR_DEVNAME(zr), buf->type, fh->map_mode); in zoran_dqbuf()
2175 res = v4l_sync(fh, num); in zoran_dqbuf()
2179 res = zoran_v4l2_buffer_status(fh, buf, num); in zoran_dqbuf()
2187 if (fh->map_mode == ZORAN_MAP_MODE_JPG_PLAY) in zoran_dqbuf()
2195 ZR_DEVNAME(zr), buf->type, fh->map_mode); in zoran_dqbuf()
2208 res = jpg_sync(fh, &bs); in zoran_dqbuf()
2211 res = zoran_v4l2_buffer_status(fh, buf, bs.frame); in zoran_dqbuf()
2230 struct zoran_fh *fh = __fh; in zoran_streamon() local
2231 struct zoran *zr = fh->zr; in zoran_streamon()
2236 switch (fh->map_mode) { in zoran_streamon()
2239 fh->buffers.active != ZORAN_ACTIVE) { in zoran_streamon()
2244 zr->v4l_buffers.active = fh->buffers.active = ZORAN_LOCKED; in zoran_streamon()
2245 zr->v4l_settings = fh->v4l_settings; in zoran_streamon()
2258 fh->buffers.active != ZORAN_ACTIVE) { in zoran_streamon()
2263 zr->jpg_buffers.active = fh->buffers.active = ZORAN_LOCKED; in zoran_streamon()
2275 ZR_DEVNAME(zr), fh->map_mode); in zoran_streamon()
2287 struct zoran_fh *fh = __fh; in zoran_streamoff() local
2288 struct zoran *zr = fh->zr; in zoran_streamoff()
2294 switch (fh->map_mode) { in zoran_streamoff()
2296 if (fh->buffers.active == ZORAN_FREE && in zoran_streamoff()
2311 for (i = 0; i < fh->buffers.num_buffers; i++) in zoran_streamoff()
2313 fh->buffers = zr->v4l_buffers; in zoran_streamoff()
2315 zr->v4l_buffers.active = fh->buffers.active = ZORAN_FREE; in zoran_streamoff()
2327 if (fh->buffers.active == ZORAN_FREE && in zoran_streamoff()
2335 res = jpg_qbuf(fh, -1, in zoran_streamoff()
2336 (fh->map_mode == ZORAN_MAP_MODE_JPG_REC) ? in zoran_streamoff()
2345 ZR_DEVNAME(zr), fh->map_mode); in zoran_streamoff()
2358 struct zoran_fh *fh = __fh; in zoran_queryctrl() local
2359 struct zoran *zr = fh->zr; in zoran_queryctrl()
2373 struct zoran_fh *fh = __fh; in zoran_g_ctrl() local
2374 struct zoran *zr = fh->zr; in zoran_g_ctrl()
2390 struct zoran_fh *fh = __fh; in zoran_s_ctrl() local
2391 struct zoran *zr = fh->zr; in zoran_s_ctrl()
2407 struct zoran_fh *fh = __fh; in zoran_g_std() local
2408 struct zoran *zr = fh->zr; in zoran_g_std()
2418 struct zoran_fh *fh = __fh; in zoran_s_std() local
2419 struct zoran *zr = fh->zr; in zoran_s_std()
2436 struct zoran_fh *fh = __fh; in zoran_enum_input() local
2437 struct zoran *zr = fh->zr; in zoran_enum_input()
2456 struct zoran_fh *fh = __fh; in zoran_g_input() local
2457 struct zoran *zr = fh->zr; in zoran_g_input()
2468 struct zoran_fh *fh = __fh; in zoran_s_input() local
2469 struct zoran *zr = fh->zr; in zoran_s_input()
2516 struct zoran_fh *fh = __fh; in zoran_cropcap() local
2517 struct zoran *zr = fh->zr; in zoran_cropcap()
2527 fh->map_mode == ZORAN_MAP_MODE_RAW)) { in zoran_cropcap()
2548 struct zoran_fh *fh = __fh; in zoran_g_crop() local
2549 struct zoran *zr = fh->zr; in zoran_g_crop()
2559 fh->map_mode == ZORAN_MAP_MODE_RAW)) { in zoran_g_crop()
2568 crop->c.top = fh->jpg_settings.img_y; in zoran_g_crop()
2569 crop->c.left = fh->jpg_settings.img_x; in zoran_g_crop()
2570 crop->c.width = fh->jpg_settings.img_width; in zoran_g_crop()
2571 crop->c.height = fh->jpg_settings.img_height; in zoran_g_crop()
2581 struct zoran_fh *fh = __fh; in zoran_s_crop() local
2582 struct zoran *zr = fh->zr; in zoran_s_crop()
2586 settings = fh->jpg_settings; in zoran_s_crop()
2590 if (fh->buffers.allocated) { in zoran_s_crop()
2600 fh->map_mode == ZORAN_MAP_MODE_RAW)) { in zoran_s_crop()
2620 fh->jpg_settings = settings; in zoran_s_crop()
2630 struct zoran_fh *fh = __fh; in zoran_g_jpegcomp() local
2631 struct zoran *zr = fh->zr; in zoran_g_jpegcomp()
2636 params->quality = fh->jpg_settings.jpg_comp.quality; in zoran_g_jpegcomp()
2637 params->APPn = fh->jpg_settings.jpg_comp.APPn; in zoran_g_jpegcomp()
2639 fh->jpg_settings.jpg_comp.APP_data, in zoran_g_jpegcomp()
2640 fh->jpg_settings.jpg_comp.APP_len); in zoran_g_jpegcomp()
2641 params->APP_len = fh->jpg_settings.jpg_comp.APP_len; in zoran_g_jpegcomp()
2643 fh->jpg_settings.jpg_comp.COM_data, in zoran_g_jpegcomp()
2644 fh->jpg_settings.jpg_comp.COM_len); in zoran_g_jpegcomp()
2645 params->COM_len = fh->jpg_settings.jpg_comp.COM_len; in zoran_g_jpegcomp()
2647 fh->jpg_settings.jpg_comp.jpeg_markers; in zoran_g_jpegcomp()
2657 struct zoran_fh *fh = __fh; in zoran_s_jpegcomp() local
2658 struct zoran *zr = fh->zr; in zoran_s_jpegcomp()
2662 settings = fh->jpg_settings; in zoran_s_jpegcomp()
2668 if (fh->buffers.active != ZORAN_FREE) { in zoran_s_jpegcomp()
2679 if (!fh->buffers.allocated) in zoran_s_jpegcomp()
2680 fh->buffers.buffer_size = in zoran_s_jpegcomp()
2681 zoran_v4l2_calc_bufsize(&fh->jpg_settings); in zoran_s_jpegcomp()
2682 fh->jpg_settings.jpg_comp = settings.jpg_comp; in zoran_s_jpegcomp()
2693 struct zoran_fh *fh = file->private_data; in zoran_poll() local
2694 struct zoran *zr = fh->zr; in zoran_poll()
2708 switch (fh->map_mode) { in zoran_poll()
2718 "FAL"[fh->buffers.active], zr->v4l_sync_tail, in zoran_poll()
2722 if (fh->buffers.active != ZORAN_FREE && in zoran_poll()
2740 "FAL"[fh->buffers.active], zr->jpg_que_tail, in zoran_poll()
2743 if (fh->buffers.active != ZORAN_FREE && in zoran_poll()
2745 if (fh->map_mode == ZORAN_MAP_MODE_JPG_REC) in zoran_poll()
2758 ZR_DEVNAME(zr), __func__, fh->map_mode); in zoran_poll()
2791 struct zoran_fh *fh = map->fh; in zoran_vm_close() local
2792 struct zoran *zr = fh->zr; in zoran_vm_close()
2799 __func__, mode_name(fh->map_mode)); in zoran_vm_close()
2801 for (i = 0; i < fh->buffers.num_buffers; i++) { in zoran_vm_close()
2802 if (fh->buffers.buffer[i].map == map) in zoran_vm_close()
2803 fh->buffers.buffer[i].map = NULL; in zoran_vm_close()
2808 for (i = 0; i < fh->buffers.num_buffers; i++) { in zoran_vm_close()
2809 if (fh->buffers.buffer[i].map) { in zoran_vm_close()
2816 __func__, mode_name(fh->map_mode)); in zoran_vm_close()
2819 if (fh->map_mode == ZORAN_MAP_MODE_RAW) { in zoran_vm_close()
2820 if (fh->buffers.active != ZORAN_FREE) { in zoran_vm_close()
2826 zr->v4l_buffers.active = fh->buffers.active = ZORAN_FREE; in zoran_vm_close()
2829 v4l_fbuffer_free(fh); in zoran_vm_close()
2831 if (fh->buffers.active != ZORAN_FREE) { in zoran_vm_close()
2832 jpg_qbuf(fh, -1, zr->codec_mode); in zoran_vm_close()
2834 zr->jpg_buffers.active = fh->buffers.active = ZORAN_FREE; in zoran_vm_close()
2836 jpg_fbuffer_free(fh); in zoran_vm_close()
2851 struct zoran_fh *fh = file->private_data; in zoran_mmap() local
2852 struct zoran *zr = fh->zr; in zoran_mmap()
2864 mode_name(fh->map_mode), vma->vm_start, vma->vm_end, size); in zoran_mmap()
2877 if (!fh->buffers.allocated) { in zoran_mmap()
2881 ZR_DEVNAME(zr), __func__, mode_name(fh->map_mode)); in zoran_mmap()
2886 first = offset / fh->buffers.buffer_size; in zoran_mmap()
2887 last = first - 1 + size / fh->buffers.buffer_size; in zoran_mmap()
2888 if (offset % fh->buffers.buffer_size != 0 || in zoran_mmap()
2889 size % fh->buffers.buffer_size != 0 || first < 0 || in zoran_mmap()
2890 last < 0 || first >= fh->buffers.num_buffers || in zoran_mmap()
2891 last >= fh->buffers.buffer_size) { in zoran_mmap()
2895 ZR_DEVNAME(zr), __func__, mode_name(fh->map_mode), offset, size, in zoran_mmap()
2896 fh->buffers.buffer_size, in zoran_mmap()
2897 fh->buffers.num_buffers); in zoran_mmap()
2904 if (fh->buffers.buffer[i].map) { in zoran_mmap()
2908 ZR_DEVNAME(zr), __func__, mode_name(fh->map_mode), i); in zoran_mmap()
2920 map->fh = fh; in zoran_mmap()
2927 if (fh->map_mode == ZORAN_MAP_MODE_RAW) { in zoran_mmap()
2930 if (todo > fh->buffers.buffer_size) in zoran_mmap()
2931 todo = fh->buffers.buffer_size; in zoran_mmap()
2932 page = fh->buffers.buffer[i].v4l.fbuffer_phys; in zoran_mmap()
2944 fh->buffers.buffer[i].map = map; in zoran_mmap()
2951 j < fh->buffers.buffer_size / PAGE_SIZE; in zoran_mmap()
2954 (le32_to_cpu(fh->buffers.buffer[i].jpg. in zoran_mmap()
2960 le32_to_cpu(fh->buffers. in zoran_mmap()
2978 if (le32_to_cpu(fh->buffers.buffer[i].jpg. in zoran_mmap()
2982 fh->buffers.buffer[i].map = map; in zoran_mmap()
3040 struct zoran_fh *fh = file->private_data; in zoran_ioctl() local
3041 struct zoran *zr = fh->zr; in zoran_ioctl()