Lines Matching refs:fh

189 static void v4l_fbuffer_free(struct zoran_fh *fh);
190 static void jpg_fbuffer_free(struct zoran_fh *fh);
193 static void map_mode_raw(struct zoran_fh *fh) in map_mode_raw() argument
195 fh->map_mode = ZORAN_MAP_MODE_RAW; in map_mode_raw()
196 fh->buffers.buffer_size = v4l_bufsize; in map_mode_raw()
197 fh->buffers.num_buffers = v4l_nbufs; in map_mode_raw()
199 static void map_mode_jpg(struct zoran_fh *fh, int play) in map_mode_jpg() argument
201 fh->map_mode = play ? ZORAN_MAP_MODE_JPG_PLAY : ZORAN_MAP_MODE_JPG_REC; in map_mode_jpg()
202 fh->buffers.buffer_size = jpg_bufsize; in map_mode_jpg()
203 fh->buffers.num_buffers = jpg_nbufs; in map_mode_jpg()
216 static int v4l_fbuffer_alloc(struct zoran_fh *fh) in v4l_fbuffer_alloc() argument
218 struct zoran *zr = fh->zr; in v4l_fbuffer_alloc()
222 for (i = 0; i < fh->buffers.num_buffers; i++) { in v4l_fbuffer_alloc()
223 if (fh->buffers.buffer[i].v4l.fbuffer) in v4l_fbuffer_alloc()
230 mem = kmalloc(fh->buffers.buffer_size, in v4l_fbuffer_alloc()
237 v4l_fbuffer_free(fh); in v4l_fbuffer_alloc()
240 fh->buffers.buffer[i].v4l.fbuffer = mem; in v4l_fbuffer_alloc()
241 fh->buffers.buffer[i].v4l.fbuffer_phys = virt_to_phys(mem); in v4l_fbuffer_alloc()
242 fh->buffers.buffer[i].v4l.fbuffer_bus = virt_to_bus(mem); in v4l_fbuffer_alloc()
243 for (off = 0; off < fh->buffers.buffer_size; in v4l_fbuffer_alloc()
253 fh->buffers.allocated = 1; in v4l_fbuffer_alloc()
259 static void v4l_fbuffer_free(struct zoran_fh *fh) in v4l_fbuffer_free() argument
261 struct zoran *zr = fh->zr; in v4l_fbuffer_free()
267 for (i = 0; i < fh->buffers.num_buffers; i++) { in v4l_fbuffer_free()
268 if (!fh->buffers.buffer[i].v4l.fbuffer) in v4l_fbuffer_free()
271 mem = fh->buffers.buffer[i].v4l.fbuffer; in v4l_fbuffer_free()
272 for (off = 0; off < fh->buffers.buffer_size; in v4l_fbuffer_free()
275 kfree(fh->buffers.buffer[i].v4l.fbuffer); in v4l_fbuffer_free()
276 fh->buffers.buffer[i].v4l.fbuffer = NULL; in v4l_fbuffer_free()
279 fh->buffers.allocated = 0; in v4l_fbuffer_free()
310 static int jpg_fbuffer_alloc(struct zoran_fh *fh) in jpg_fbuffer_alloc() argument
312 struct zoran *zr = fh->zr; in jpg_fbuffer_alloc()
316 for (i = 0; i < fh->buffers.num_buffers; i++) { in jpg_fbuffer_alloc()
317 if (fh->buffers.buffer[i].jpg.frag_tab) in jpg_fbuffer_alloc()
331 jpg_fbuffer_free(fh); in jpg_fbuffer_alloc()
334 fh->buffers.buffer[i].jpg.frag_tab = (__le32 *)mem; in jpg_fbuffer_alloc()
335 fh->buffers.buffer[i].jpg.frag_tab_bus = virt_to_bus(mem); in jpg_fbuffer_alloc()
337 if (fh->buffers.need_contiguous) { in jpg_fbuffer_alloc()
338 mem = kmalloc(fh->buffers.buffer_size, GFP_KERNEL); in jpg_fbuffer_alloc()
344 jpg_fbuffer_free(fh); in jpg_fbuffer_alloc()
347 fh->buffers.buffer[i].jpg.frag_tab[0] = in jpg_fbuffer_alloc()
349 fh->buffers.buffer[i].jpg.frag_tab[1] = in jpg_fbuffer_alloc()
350 cpu_to_le32((fh->buffers.buffer_size >> 1) | 1); in jpg_fbuffer_alloc()
351 for (off = 0; off < fh->buffers.buffer_size; off += PAGE_SIZE) in jpg_fbuffer_alloc()
355 for (j = 0; j < fh->buffers.buffer_size / PAGE_SIZE; j++) { in jpg_fbuffer_alloc()
362 jpg_fbuffer_free(fh); in jpg_fbuffer_alloc()
366 fh->buffers.buffer[i].jpg.frag_tab[2 * j] = in jpg_fbuffer_alloc()
368 fh->buffers.buffer[i].jpg.frag_tab[2 * j + 1] = in jpg_fbuffer_alloc()
373 fh->buffers.buffer[i].jpg.frag_tab[2 * j - 1] |= cpu_to_le32(1); in jpg_fbuffer_alloc()
380 (fh->buffers.num_buffers * fh->buffers.buffer_size) >> 10); in jpg_fbuffer_alloc()
382 fh->buffers.allocated = 1; in jpg_fbuffer_alloc()
388 static void jpg_fbuffer_free(struct zoran_fh *fh) in jpg_fbuffer_free() argument
390 struct zoran *zr = fh->zr; in jpg_fbuffer_free()
398 for (i = 0, buffer = &fh->buffers.buffer[0]; in jpg_fbuffer_free()
399 i < fh->buffers.num_buffers; i++, buffer++) { in jpg_fbuffer_free()
403 if (fh->buffers.need_contiguous) { in jpg_fbuffer_free()
408 for (off = 0; off < fh->buffers.buffer_size; off += PAGE_SIZE) in jpg_fbuffer_free()
415 for (j = 0; j < fh->buffers.buffer_size / PAGE_SIZE; j++) { in jpg_fbuffer_free()
431 fh->buffers.allocated = 0; in jpg_fbuffer_free()
439 zoran_v4l_set_format (struct zoran_fh *fh, in zoran_v4l_set_format() argument
444 struct zoran *zr = fh->zr; in zoran_v4l_set_format()
461 if (height * width * bpp > fh->buffers.buffer_size) { in zoran_v4l_set_format()
465 ZR_DEVNAME(zr), __func__, fh->buffers.buffer_size >> 10); in zoran_v4l_set_format()
479 fh->v4l_settings.width = width; in zoran_v4l_set_format()
480 fh->v4l_settings.height = height; in zoran_v4l_set_format()
481 fh->v4l_settings.format = format; in zoran_v4l_set_format()
482 fh->v4l_settings.bytesperline = bpp * fh->v4l_settings.width; in zoran_v4l_set_format()
487 static int zoran_v4l_queue_frame(struct zoran_fh *fh, int num) in zoran_v4l_queue_frame() argument
489 struct zoran *zr = fh->zr; in zoran_v4l_queue_frame()
493 if (!fh->buffers.allocated) { in zoran_v4l_queue_frame()
502 if (num >= fh->buffers.num_buffers || num < 0) { in zoran_v4l_queue_frame()
512 if (fh->buffers.active == ZORAN_FREE) { in zoran_v4l_queue_frame()
514 zr->v4l_buffers = fh->buffers; in zoran_v4l_queue_frame()
515 fh->buffers.active = ZORAN_ACTIVE; in zoran_v4l_queue_frame()
531 fh->buffers.active = ZORAN_FREE; in zoran_v4l_queue_frame()
547 fh->v4l_settings.bytesperline * in zoran_v4l_queue_frame()
549 fh->buffers.buffer[num] = zr->v4l_buffers.buffer[num]; in zoran_v4l_queue_frame()
557 zr->v4l_buffers.active = fh->buffers.active; in zoran_v4l_queue_frame()
566 static int v4l_sync(struct zoran_fh *fh, int frame) in v4l_sync() argument
568 struct zoran *zr = fh->zr; in v4l_sync()
571 if (fh->buffers.active == ZORAN_FREE) { in v4l_sync()
580 if (frame >= fh->buffers.num_buffers || frame < 0) { in v4l_sync()
614 fh->buffers.buffer[frame] = zr->v4l_buffers.buffer[frame]; in v4l_sync()
622 fh->buffers.active = zr->v4l_buffers.active = ZORAN_FREE; in v4l_sync()
636 static int zoran_jpg_queue_frame(struct zoran_fh *fh, int num, in zoran_jpg_queue_frame() argument
639 struct zoran *zr = fh->zr; in zoran_jpg_queue_frame()
644 if (!fh->buffers.allocated) { in zoran_jpg_queue_frame()
653 if (num >= fh->buffers.num_buffers || num < 0) { in zoran_jpg_queue_frame()
663 zr->jpg_settings = fh->jpg_settings; in zoran_jpg_queue_frame()
673 if (fh->buffers.active == ZORAN_FREE) { in zoran_jpg_queue_frame()
675 zr->jpg_buffers = fh->buffers; in zoran_jpg_queue_frame()
676 fh->buffers.active = ZORAN_ACTIVE; in zoran_jpg_queue_frame()
705 fh->buffers.buffer[num] = zr->jpg_buffers.buffer[num]; in zoran_jpg_queue_frame()
712 fh->buffers.active = ZORAN_FREE; in zoran_jpg_queue_frame()
723 zr->jpg_buffers.active = fh->buffers.active; in zoran_jpg_queue_frame()
728 static int jpg_qbuf(struct zoran_fh *fh, int frame, enum zoran_codec_mode mode) in jpg_qbuf() argument
730 struct zoran *zr = fh->zr; in jpg_qbuf()
736 if (fh->buffers.active == ZORAN_FREE) { in jpg_qbuf()
743 fh->buffers.active = zr->jpg_buffers.active = ZORAN_FREE; in jpg_qbuf()
756 if ((res = zoran_jpg_queue_frame(fh, frame, mode))) in jpg_qbuf()
770 static int jpg_sync(struct zoran_fh *fh, struct zoran_sync *bs) in jpg_sync() argument
772 struct zoran *zr = fh->zr; in jpg_sync()
776 if (fh->buffers.active == ZORAN_FREE) { in jpg_sync()
831 fh->buffers.buffer[frame] = zr->jpg_buffers.buffer[frame]; in jpg_sync()
838 static void zoran_open_init_session(struct zoran_fh *fh) in zoran_open_init_session() argument
841 struct zoran *zr = fh->zr; in zoran_open_init_session()
844 map_mode_raw(fh); in zoran_open_init_session()
847 fh->overlay_settings = zr->overlay_settings; in zoran_open_init_session()
848 fh->overlay_settings.is_set = 0; in zoran_open_init_session()
849 fh->overlay_settings.format = zr->overlay_settings.format; in zoran_open_init_session()
850 fh->overlay_active = ZORAN_FREE; in zoran_open_init_session()
853 fh->v4l_settings = zr->v4l_settings; in zoran_open_init_session()
855 fh->jpg_settings = zr->jpg_settings; in zoran_open_init_session()
858 memset(&fh->buffers, 0, sizeof(fh->buffers)); in zoran_open_init_session()
860 fh->buffers.buffer[i].state = BUZ_STATE_USER; /* nothing going on */ in zoran_open_init_session()
861 fh->buffers.buffer[i].bs.frame = i; in zoran_open_init_session()
863 fh->buffers.allocated = 0; in zoran_open_init_session()
864 fh->buffers.active = ZORAN_FREE; in zoran_open_init_session()
867 static void zoran_close_end_session(struct zoran_fh *fh) in zoran_close_end_session() argument
869 struct zoran *zr = fh->zr; in zoran_close_end_session()
872 if (fh->overlay_active != ZORAN_FREE) { in zoran_close_end_session()
873 fh->overlay_active = zr->overlay_active = ZORAN_FREE; in zoran_close_end_session()
880 if (fh->map_mode == ZORAN_MAP_MODE_RAW) { in zoran_close_end_session()
882 if (fh->buffers.active != ZORAN_FREE) { in zoran_close_end_session()
888 zr->v4l_buffers.active = fh->buffers.active = ZORAN_FREE; in zoran_close_end_session()
893 if (fh->buffers.allocated) in zoran_close_end_session()
894 v4l_fbuffer_free(fh); in zoran_close_end_session()
897 if (fh->buffers.active != ZORAN_FREE) { in zoran_close_end_session()
900 zr->jpg_buffers.active = fh->buffers.active = ZORAN_FREE; in zoran_close_end_session()
904 if (fh->buffers.allocated) in zoran_close_end_session()
905 jpg_fbuffer_free(fh); in zoran_close_end_session()
916 struct zoran_fh *fh; in zoran_open() local
932 fh = kzalloc(sizeof(struct zoran_fh), GFP_KERNEL); in zoran_open()
933 if (!fh) { in zoran_open()
941 v4l2_fh_init(&fh->fh, video_devdata(file)); in zoran_open()
945 fh->overlay_mask = in zoran_open()
947 if (!fh->overlay_mask) { in zoran_open()
969 file->private_data = fh; in zoran_open()
970 fh->zr = zr; in zoran_open()
971 zoran_open_init_session(fh); in zoran_open()
972 v4l2_fh_add(&fh->fh); in zoran_open()
978 kfree(fh); in zoran_open()
991 struct zoran_fh *fh = file->private_data; in zoran_close() local
992 struct zoran *zr = fh->zr; in zoran_close()
1001 zoran_close_end_session(fh); in zoran_close()
1035 v4l2_fh_del(&fh->fh); in zoran_close()
1036 v4l2_fh_exit(&fh->fh); in zoran_close()
1037 kfree(fh->overlay_mask); in zoran_close()
1038 kfree(fh); in zoran_close()
1045 static int setup_fbuffer(struct zoran_fh *fh, in setup_fbuffer() argument
1052 struct zoran *zr = fh->zr; in setup_fbuffer()
1121 static int setup_window(struct zoran_fh *fh, in setup_window() argument
1130 struct zoran *zr = fh->zr; in setup_window()
1143 if (!fh->overlay_settings.format) { in setup_window()
1190 fh->overlay_settings.x = x; in setup_window()
1191 fh->overlay_settings.y = y; in setup_window()
1192 fh->overlay_settings.width = width; in setup_window()
1193 fh->overlay_settings.height = height; in setup_window()
1194 fh->overlay_settings.clipcount = clipcount; in setup_window()
1206 fh->overlay_active != ZORAN_FREE; in setup_window()
1216 fh->overlay_settings.clipcount = 1; in setup_window()
1218 if (copy_from_user(fh->overlay_mask, bitmap, in setup_window()
1237 write_overlay_mask(fh, vcp, clipcount); in setup_window()
1241 fh->overlay_settings.is_set = 1; in setup_window()
1242 if (fh->overlay_active != ZORAN_FREE && in setup_window()
1244 zr->overlay_settings = fh->overlay_settings; in setup_window()
1253 static int setup_overlay(struct zoran_fh *fh, int on) in setup_overlay() argument
1255 struct zoran *zr = fh->zr; in setup_overlay()
1258 if ((on && fh->overlay_active != ZORAN_FREE) || in setup_overlay()
1259 (!on && fh->overlay_active == ZORAN_FREE)) in setup_overlay()
1264 fh->overlay_active == ZORAN_FREE) { in setup_overlay()
1272 fh->overlay_active == ZORAN_FREE) { in setup_overlay()
1281 zr->overlay_active = fh->overlay_active = ZORAN_FREE; in setup_overlay()
1289 if (!zr->vbuf_base || !fh->overlay_settings.is_set) { in setup_overlay()
1296 if (!fh->overlay_settings.format) { in setup_overlay()
1303 zr->overlay_active = fh->overlay_active = ZORAN_LOCKED; in setup_overlay()
1305 zr->overlay_mask = fh->overlay_mask; in setup_overlay()
1306 zr->overlay_settings = fh->overlay_settings; in setup_overlay()
1318 static int zoran_v4l2_buffer_status(struct zoran_fh *fh, in zoran_v4l2_buffer_status() argument
1321 struct zoran *zr = fh->zr; in zoran_v4l2_buffer_status()
1326 switch (fh->map_mode) { in zoran_v4l2_buffer_status()
1329 if (num < 0 || num >= fh->buffers.num_buffers || in zoran_v4l2_buffer_status()
1330 !fh->buffers.allocated) { in zoran_v4l2_buffer_status()
1343 "FAL"[fh->buffers.active], num, in zoran_v4l2_buffer_status()
1345 fh->buffers.buffer[num].map ? 'Y' : 'N'); in zoran_v4l2_buffer_status()
1349 buf->length = fh->buffers.buffer_size; in zoran_v4l2_buffer_status()
1352 buf->bytesused = fh->buffers.buffer[num].bs.length; in zoran_v4l2_buffer_status()
1353 if (fh->buffers.buffer[num].state == BUZ_STATE_DONE || in zoran_v4l2_buffer_status()
1354 fh->buffers.buffer[num].state == BUZ_STATE_USER) { in zoran_v4l2_buffer_status()
1355 buf->sequence = fh->buffers.buffer[num].bs.seq; in zoran_v4l2_buffer_status()
1357 buf->timestamp = fh->buffers.buffer[num].bs.timestamp; in zoran_v4l2_buffer_status()
1362 if (fh->v4l_settings.height <= BUZ_MAX_HEIGHT / 2) in zoran_v4l2_buffer_status()
1373 if (num < 0 || num >= fh->buffers.num_buffers || in zoran_v4l2_buffer_status()
1374 !fh->buffers.allocated) { in zoran_v4l2_buffer_status()
1382 buf->type = (fh->map_mode == ZORAN_MAP_MODE_JPG_REC) ? in zoran_v4l2_buffer_status()
1385 buf->length = fh->buffers.buffer_size; in zoran_v4l2_buffer_status()
1388 if (fh->buffers.buffer[num].state == BUZ_STATE_DONE || in zoran_v4l2_buffer_status()
1389 fh->buffers.buffer[num].state == BUZ_STATE_USER) { in zoran_v4l2_buffer_status()
1390 buf->sequence = fh->buffers.buffer[num].bs.seq; in zoran_v4l2_buffer_status()
1391 buf->timestamp = fh->buffers.buffer[num].bs.timestamp; in zoran_v4l2_buffer_status()
1392 buf->bytesused = fh->buffers.buffer[num].bs.length; in zoran_v4l2_buffer_status()
1399 if (fh->jpg_settings.TmpDcm != 1) in zoran_v4l2_buffer_status()
1400 buf->field = fh->jpg_settings.odd_even ? in zoran_v4l2_buffer_status()
1403 buf->field = fh->jpg_settings.odd_even ? in zoran_v4l2_buffer_status()
1413 ZR_DEVNAME(zr), __func__, buf->type, fh->map_mode); in zoran_v4l2_buffer_status()
1510 struct zoran_fh *fh = __fh; in zoran_querycap() local
1511 struct zoran *zr = fh->zr; in zoran_querycap()
1544 struct zoran_fh *fh = __fh; in zoran_enum_fmt_vid_cap() local
1545 struct zoran *zr = fh->zr; in zoran_enum_fmt_vid_cap()
1553 struct zoran_fh *fh = __fh; in zoran_enum_fmt_vid_out() local
1554 struct zoran *zr = fh->zr; in zoran_enum_fmt_vid_out()
1562 struct zoran_fh *fh = __fh; in zoran_enum_fmt_vid_overlay() local
1563 struct zoran *zr = fh->zr; in zoran_enum_fmt_vid_overlay()
1571 struct zoran_fh *fh = __fh; in zoran_g_fmt_vid_out() local
1573 fmt->fmt.pix.width = fh->jpg_settings.img_width / fh->jpg_settings.HorDcm; in zoran_g_fmt_vid_out()
1574 fmt->fmt.pix.height = fh->jpg_settings.img_height * 2 / in zoran_g_fmt_vid_out()
1575 (fh->jpg_settings.VerDcm * fh->jpg_settings.TmpDcm); in zoran_g_fmt_vid_out()
1576 fmt->fmt.pix.sizeimage = zoran_v4l2_calc_bufsize(&fh->jpg_settings); in zoran_g_fmt_vid_out()
1578 if (fh->jpg_settings.TmpDcm == 1) in zoran_g_fmt_vid_out()
1579 fmt->fmt.pix.field = (fh->jpg_settings.odd_even ? in zoran_g_fmt_vid_out()
1582 fmt->fmt.pix.field = (fh->jpg_settings.odd_even ? in zoran_g_fmt_vid_out()
1593 struct zoran_fh *fh = __fh; in zoran_g_fmt_vid_cap() local
1594 struct zoran *zr = fh->zr; in zoran_g_fmt_vid_cap()
1596 if (fh->map_mode != ZORAN_MAP_MODE_RAW) in zoran_g_fmt_vid_cap()
1597 return zoran_g_fmt_vid_out(file, fh, fmt); in zoran_g_fmt_vid_cap()
1599 fmt->fmt.pix.width = fh->v4l_settings.width; in zoran_g_fmt_vid_cap()
1600 fmt->fmt.pix.height = fh->v4l_settings.height; in zoran_g_fmt_vid_cap()
1601 fmt->fmt.pix.sizeimage = fh->v4l_settings.bytesperline * in zoran_g_fmt_vid_cap()
1602 fh->v4l_settings.height; in zoran_g_fmt_vid_cap()
1603 fmt->fmt.pix.pixelformat = fh->v4l_settings.format->fourcc; in zoran_g_fmt_vid_cap()
1604 fmt->fmt.pix.colorspace = fh->v4l_settings.format->colorspace; in zoran_g_fmt_vid_cap()
1605 fmt->fmt.pix.bytesperline = fh->v4l_settings.bytesperline; in zoran_g_fmt_vid_cap()
1606 if (BUZ_MAX_HEIGHT < (fh->v4l_settings.height * 2)) in zoran_g_fmt_vid_cap()
1616 struct zoran_fh *fh = __fh; in zoran_g_fmt_vid_overlay() local
1617 struct zoran *zr = fh->zr; in zoran_g_fmt_vid_overlay()
1619 fmt->fmt.win.w.left = fh->overlay_settings.x; in zoran_g_fmt_vid_overlay()
1620 fmt->fmt.win.w.top = fh->overlay_settings.y; in zoran_g_fmt_vid_overlay()
1621 fmt->fmt.win.w.width = fh->overlay_settings.width; in zoran_g_fmt_vid_overlay()
1622 fmt->fmt.win.w.height = fh->overlay_settings.height; in zoran_g_fmt_vid_overlay()
1623 if (fh->overlay_settings.width * 2 > BUZ_MAX_HEIGHT) in zoran_g_fmt_vid_overlay()
1634 struct zoran_fh *fh = __fh; in zoran_try_fmt_vid_overlay() local
1635 struct zoran *zr = fh->zr; in zoran_try_fmt_vid_overlay()
1652 struct zoran_fh *fh = __fh; in zoran_try_fmt_vid_out() local
1653 struct zoran *zr = fh->zr; in zoran_try_fmt_vid_out()
1660 settings = fh->jpg_settings; in zoran_try_fmt_vid_out()
1668 if (fmt->fmt.pix.height <= fh->jpg_settings.img_height / 2) in zoran_try_fmt_vid_out()
1672 if (fmt->fmt.pix.width <= fh->jpg_settings.img_width / 4) in zoran_try_fmt_vid_out()
1674 else if (fmt->fmt.pix.width <= fh->jpg_settings.img_width / 2) in zoran_try_fmt_vid_out()
1701 fmt->fmt.pix.field = (fh->jpg_settings.odd_even ? in zoran_try_fmt_vid_out()
1704 fmt->fmt.pix.field = (fh->jpg_settings.odd_even ? in zoran_try_fmt_vid_out()
1716 struct zoran_fh *fh = __fh; in zoran_try_fmt_vid_cap() local
1717 struct zoran *zr = fh->zr; in zoran_try_fmt_vid_cap()
1722 return zoran_try_fmt_vid_out(file, fh, fmt); in zoran_try_fmt_vid_cap()
1741 struct zoran_fh *fh = __fh; in zoran_s_fmt_vid_overlay() local
1750 res = setup_window(fh, fmt->fmt.win.w.left, fmt->fmt.win.w.top, in zoran_s_fmt_vid_overlay()
1760 struct zoran_fh *fh = __fh; in zoran_s_fmt_vid_out() local
1761 struct zoran *zr = fh->zr; in zoran_s_fmt_vid_out()
1773 if (fh->buffers.allocated) { in zoran_s_fmt_vid_out()
1780 settings = fh->jpg_settings; in zoran_s_fmt_vid_out()
1788 if (fmt->fmt.pix.height <= fh->jpg_settings.img_height / 2) in zoran_s_fmt_vid_out()
1792 if (fmt->fmt.pix.width <= fh->jpg_settings.img_width / 4) in zoran_s_fmt_vid_out()
1794 else if (fmt->fmt.pix.width <= fh->jpg_settings.img_width / 2) in zoran_s_fmt_vid_out()
1817 fh->jpg_settings = settings; in zoran_s_fmt_vid_out()
1819 map_mode_jpg(fh, fmt->type == V4L2_BUF_TYPE_VIDEO_OUTPUT); in zoran_s_fmt_vid_out()
1820 fh->buffers.buffer_size = zoran_v4l2_calc_bufsize(&fh->jpg_settings); in zoran_s_fmt_vid_out()
1827 fmt->fmt.pix.field = (fh->jpg_settings.odd_even ? in zoran_s_fmt_vid_out()
1830 fmt->fmt.pix.field = (fh->jpg_settings.odd_even ? in zoran_s_fmt_vid_out()
1833 fmt->fmt.pix.sizeimage = fh->buffers.buffer_size; in zoran_s_fmt_vid_out()
1841 struct zoran_fh *fh = __fh; in zoran_s_fmt_vid_cap() local
1842 struct zoran *zr = fh->zr; in zoran_s_fmt_vid_cap()
1847 return zoran_s_fmt_vid_out(file, fh, fmt); in zoran_s_fmt_vid_cap()
1858 if ((fh->map_mode != ZORAN_MAP_MODE_RAW && fh->buffers.allocated) || in zoran_s_fmt_vid_cap()
1859 fh->buffers.active != ZORAN_FREE) { in zoran_s_fmt_vid_cap()
1870 map_mode_raw(fh); in zoran_s_fmt_vid_cap()
1872 res = zoran_v4l_set_format(fh, fmt->fmt.pix.width, fmt->fmt.pix.height, in zoran_s_fmt_vid_cap()
1878 fmt->fmt.pix.bytesperline = fh->v4l_settings.bytesperline; in zoran_s_fmt_vid_cap()
1879 fmt->fmt.pix.sizeimage = fh->v4l_settings.height * fh->v4l_settings.bytesperline; in zoran_s_fmt_vid_cap()
1880 fmt->fmt.pix.colorspace = fh->v4l_settings.format->colorspace; in zoran_s_fmt_vid_cap()
1881 if (BUZ_MAX_HEIGHT < (fh->v4l_settings.height * 2)) in zoran_s_fmt_vid_cap()
1891 struct zoran_fh *fh = __fh; in zoran_g_fbuf() local
1892 struct zoran *zr = fh->zr; in zoran_g_fbuf()
1899 fb->fmt.pixelformat = fh->overlay_settings.format->fourcc; in zoran_g_fbuf()
1911 struct zoran_fh *fh = __fh; in zoran_s_fbuf() local
1912 struct zoran *zr = fh->zr; in zoran_s_fbuf()
1926 res = setup_fbuffer(fh, fb->base, &zoran_formats[i], fb->fmt.width, in zoran_s_fbuf()
1934 struct zoran_fh *fh = __fh; in zoran_overlay() local
1937 res = setup_overlay(fh, on); in zoran_overlay()
1946 struct zoran_fh *fh = __fh; in zoran_reqbufs() local
1947 struct zoran *zr = fh->zr; in zoran_reqbufs()
1959 return zoran_streamoff(file, fh, req->type); in zoran_reqbufs()
1961 if (fh->buffers.allocated) { in zoran_reqbufs()
1970 if (fh->map_mode == ZORAN_MAP_MODE_RAW && in zoran_reqbufs()
1979 map_mode_raw(fh); in zoran_reqbufs()
1980 fh->buffers.num_buffers = req->count; in zoran_reqbufs()
1982 if (v4l_fbuffer_alloc(fh)) { in zoran_reqbufs()
1986 } else if (fh->map_mode == ZORAN_MAP_MODE_JPG_REC || in zoran_reqbufs()
1987 fh->map_mode == ZORAN_MAP_MODE_JPG_PLAY) { in zoran_reqbufs()
1995 map_mode_jpg(fh, req->type == V4L2_BUF_TYPE_VIDEO_OUTPUT); in zoran_reqbufs()
1996 fh->buffers.num_buffers = req->count; in zoran_reqbufs()
1997 fh->buffers.buffer_size = zoran_v4l2_calc_bufsize(&fh->jpg_settings); in zoran_reqbufs()
1999 if (jpg_fbuffer_alloc(fh)) { in zoran_reqbufs()
2016 struct zoran_fh *fh = __fh; in zoran_querybuf() local
2019 res = zoran_v4l2_buffer_status(fh, buf, buf->index); in zoran_querybuf()
2026 struct zoran_fh *fh = __fh; in zoran_qbuf() local
2027 struct zoran *zr = fh->zr; in zoran_qbuf()
2030 switch (fh->map_mode) { in zoran_qbuf()
2035 ZR_DEVNAME(zr), buf->type, fh->map_mode); in zoran_qbuf()
2040 res = zoran_v4l_queue_frame(fh, buf->index); in zoran_qbuf()
2043 if (!zr->v4l_memgrab_active && fh->buffers.active == ZORAN_LOCKED) in zoran_qbuf()
2049 if (fh->map_mode == ZORAN_MAP_MODE_JPG_PLAY) { in zoran_qbuf()
2060 ZR_DEVNAME(zr), buf->type, fh->map_mode); in zoran_qbuf()
2065 res = zoran_jpg_queue_frame(fh, buf->index, codec_mode); in zoran_qbuf()
2069 fh->buffers.active == ZORAN_LOCKED) in zoran_qbuf()
2086 struct zoran_fh *fh = __fh; in zoran_dqbuf() local
2087 struct zoran *zr = fh->zr; in zoran_dqbuf()
2090 switch (fh->map_mode) { in zoran_dqbuf()
2095 ZR_DEVNAME(zr), buf->type, fh->map_mode); in zoran_dqbuf()
2106 res = v4l_sync(fh, num); in zoran_dqbuf()
2110 res = zoran_v4l2_buffer_status(fh, buf, num); in zoran_dqbuf()
2118 if (fh->map_mode == ZORAN_MAP_MODE_JPG_PLAY) in zoran_dqbuf()
2126 ZR_DEVNAME(zr), buf->type, fh->map_mode); in zoran_dqbuf()
2139 res = jpg_sync(fh, &bs); in zoran_dqbuf()
2142 res = zoran_v4l2_buffer_status(fh, buf, bs.frame); in zoran_dqbuf()
2158 struct zoran_fh *fh = __fh; in zoran_streamon() local
2159 struct zoran *zr = fh->zr; in zoran_streamon()
2162 switch (fh->map_mode) { in zoran_streamon()
2165 fh->buffers.active != ZORAN_ACTIVE) { in zoran_streamon()
2170 zr->v4l_buffers.active = fh->buffers.active = ZORAN_LOCKED; in zoran_streamon()
2171 zr->v4l_settings = fh->v4l_settings; in zoran_streamon()
2184 fh->buffers.active != ZORAN_ACTIVE) { in zoran_streamon()
2189 zr->jpg_buffers.active = fh->buffers.active = ZORAN_LOCKED; in zoran_streamon()
2201 ZR_DEVNAME(zr), fh->map_mode); in zoran_streamon()
2210 struct zoran_fh *fh = __fh; in zoran_streamoff() local
2211 struct zoran *zr = fh->zr; in zoran_streamoff()
2215 switch (fh->map_mode) { in zoran_streamoff()
2217 if (fh->buffers.active == ZORAN_FREE && in zoran_streamoff()
2232 for (i = 0; i < fh->buffers.num_buffers; i++) in zoran_streamoff()
2234 fh->buffers = zr->v4l_buffers; in zoran_streamoff()
2236 zr->v4l_buffers.active = fh->buffers.active = ZORAN_FREE; in zoran_streamoff()
2248 if (fh->buffers.active == ZORAN_FREE && in zoran_streamoff()
2256 res = jpg_qbuf(fh, -1, in zoran_streamoff()
2257 (fh->map_mode == ZORAN_MAP_MODE_JPG_REC) ? in zoran_streamoff()
2266 ZR_DEVNAME(zr), fh->map_mode); in zoran_streamoff()
2274 struct zoran_fh *fh = __fh; in zoran_g_std() local
2275 struct zoran *zr = fh->zr; in zoran_g_std()
2283 struct zoran_fh *fh = __fh; in zoran_s_std() local
2284 struct zoran *zr = fh->zr; in zoran_s_std()
2298 struct zoran_fh *fh = __fh; in zoran_enum_input() local
2299 struct zoran *zr = fh->zr; in zoran_enum_input()
2316 struct zoran_fh *fh = __fh; in zoran_g_input() local
2317 struct zoran *zr = fh->zr; in zoran_g_input()
2326 struct zoran_fh *fh = __fh; in zoran_s_input() local
2327 struct zoran *zr = fh->zr; in zoran_s_input()
2371 struct zoran_fh *fh = __fh; in zoran_cropcap() local
2372 struct zoran *zr = fh->zr; in zoran_cropcap()
2380 fh->map_mode == ZORAN_MAP_MODE_RAW)) { in zoran_cropcap()
2399 struct zoran_fh *fh = __fh; in zoran_g_crop() local
2400 struct zoran *zr = fh->zr; in zoran_g_crop()
2408 fh->map_mode == ZORAN_MAP_MODE_RAW)) { in zoran_g_crop()
2417 crop->c.top = fh->jpg_settings.img_y; in zoran_g_crop()
2418 crop->c.left = fh->jpg_settings.img_x; in zoran_g_crop()
2419 crop->c.width = fh->jpg_settings.img_width; in zoran_g_crop()
2420 crop->c.height = fh->jpg_settings.img_height; in zoran_g_crop()
2426 struct zoran_fh *fh = __fh; in zoran_s_crop() local
2427 struct zoran *zr = fh->zr; in zoran_s_crop()
2431 settings = fh->jpg_settings; in zoran_s_crop()
2433 if (fh->buffers.allocated) { in zoran_s_crop()
2443 fh->map_mode == ZORAN_MAP_MODE_RAW)) { in zoran_s_crop()
2463 fh->jpg_settings = settings; in zoran_s_crop()
2470 struct zoran_fh *fh = __fh; in zoran_g_jpegcomp() local
2473 params->quality = fh->jpg_settings.jpg_comp.quality; in zoran_g_jpegcomp()
2474 params->APPn = fh->jpg_settings.jpg_comp.APPn; in zoran_g_jpegcomp()
2476 fh->jpg_settings.jpg_comp.APP_data, in zoran_g_jpegcomp()
2477 fh->jpg_settings.jpg_comp.APP_len); in zoran_g_jpegcomp()
2478 params->APP_len = fh->jpg_settings.jpg_comp.APP_len; in zoran_g_jpegcomp()
2480 fh->jpg_settings.jpg_comp.COM_data, in zoran_g_jpegcomp()
2481 fh->jpg_settings.jpg_comp.COM_len); in zoran_g_jpegcomp()
2482 params->COM_len = fh->jpg_settings.jpg_comp.COM_len; in zoran_g_jpegcomp()
2484 fh->jpg_settings.jpg_comp.jpeg_markers; in zoran_g_jpegcomp()
2492 struct zoran_fh *fh = __fh; in zoran_s_jpegcomp() local
2493 struct zoran *zr = fh->zr; in zoran_s_jpegcomp()
2497 settings = fh->jpg_settings; in zoran_s_jpegcomp()
2501 if (fh->buffers.active != ZORAN_FREE) { in zoran_s_jpegcomp()
2512 if (!fh->buffers.allocated) in zoran_s_jpegcomp()
2513 fh->buffers.buffer_size = in zoran_s_jpegcomp()
2514 zoran_v4l2_calc_bufsize(&fh->jpg_settings); in zoran_s_jpegcomp()
2515 fh->jpg_settings.jpg_comp = settings.jpg_comp; in zoran_s_jpegcomp()
2523 struct zoran_fh *fh = file->private_data; in zoran_poll() local
2524 struct zoran *zr = fh->zr; in zoran_poll()
2537 switch (fh->map_mode) { in zoran_poll()
2547 "FAL"[fh->buffers.active], zr->v4l_sync_tail, in zoran_poll()
2551 if (fh->buffers.active != ZORAN_FREE && in zoran_poll()
2569 "FAL"[fh->buffers.active], zr->jpg_que_tail, in zoran_poll()
2572 if (fh->buffers.active != ZORAN_FREE && in zoran_poll()
2574 if (fh->map_mode == ZORAN_MAP_MODE_JPG_REC) in zoran_poll()
2587 ZR_DEVNAME(zr), __func__, fh->map_mode); in zoran_poll()
2618 struct zoran_fh *fh = map->fh; in zoran_vm_close() local
2619 struct zoran *zr = fh->zr; in zoran_vm_close()
2623 __func__, mode_name(fh->map_mode)); in zoran_vm_close()
2625 for (i = 0; i < fh->buffers.num_buffers; i++) { in zoran_vm_close()
2626 if (fh->buffers.buffer[i].map == map) in zoran_vm_close()
2627 fh->buffers.buffer[i].map = NULL; in zoran_vm_close()
2632 for (i = 0; i < fh->buffers.num_buffers; i++) { in zoran_vm_close()
2633 if (fh->buffers.buffer[i].map) { in zoran_vm_close()
2639 __func__, mode_name(fh->map_mode)); in zoran_vm_close()
2641 if (fh->map_mode == ZORAN_MAP_MODE_RAW) { in zoran_vm_close()
2642 if (fh->buffers.active != ZORAN_FREE) { in zoran_vm_close()
2648 zr->v4l_buffers.active = fh->buffers.active = ZORAN_FREE; in zoran_vm_close()
2651 v4l_fbuffer_free(fh); in zoran_vm_close()
2653 if (fh->buffers.active != ZORAN_FREE) { in zoran_vm_close()
2654 jpg_qbuf(fh, -1, zr->codec_mode); in zoran_vm_close()
2656 zr->jpg_buffers.active = fh->buffers.active = ZORAN_FREE; in zoran_vm_close()
2658 jpg_fbuffer_free(fh); in zoran_vm_close()
2671 struct zoran_fh *fh = file->private_data; in zoran_mmap() local
2672 struct zoran *zr = fh->zr; in zoran_mmap()
2684 mode_name(fh->map_mode), vma->vm_start, vma->vm_end, size); in zoran_mmap()
2695 if (!fh->buffers.allocated) { in zoran_mmap()
2699 ZR_DEVNAME(zr), __func__, mode_name(fh->map_mode)); in zoran_mmap()
2704 first = offset / fh->buffers.buffer_size; in zoran_mmap()
2705 last = first - 1 + size / fh->buffers.buffer_size; in zoran_mmap()
2706 if (offset % fh->buffers.buffer_size != 0 || in zoran_mmap()
2707 size % fh->buffers.buffer_size != 0 || first < 0 || in zoran_mmap()
2708 last < 0 || first >= fh->buffers.num_buffers || in zoran_mmap()
2709 last >= fh->buffers.buffer_size) { in zoran_mmap()
2713 ZR_DEVNAME(zr), __func__, mode_name(fh->map_mode), offset, size, in zoran_mmap()
2714 fh->buffers.buffer_size, in zoran_mmap()
2715 fh->buffers.num_buffers); in zoran_mmap()
2722 if (fh->buffers.buffer[i].map) { in zoran_mmap()
2726 ZR_DEVNAME(zr), __func__, mode_name(fh->map_mode), i); in zoran_mmap()
2738 map->fh = fh; in zoran_mmap()
2745 if (fh->map_mode == ZORAN_MAP_MODE_RAW) { in zoran_mmap()
2748 if (todo > fh->buffers.buffer_size) in zoran_mmap()
2749 todo = fh->buffers.buffer_size; in zoran_mmap()
2750 page = fh->buffers.buffer[i].v4l.fbuffer_phys; in zoran_mmap()
2762 fh->buffers.buffer[i].map = map; in zoran_mmap()
2769 j < fh->buffers.buffer_size / PAGE_SIZE; in zoran_mmap()
2772 (le32_to_cpu(fh->buffers.buffer[i].jpg. in zoran_mmap()
2778 le32_to_cpu(fh->buffers. in zoran_mmap()
2796 if (le32_to_cpu(fh->buffers.buffer[i].jpg. in zoran_mmap()
2800 fh->buffers.buffer[i].map = map; in zoran_mmap()